diff --git a/.changeset/config.json b/.changeset/config.json index ae64b266f5..bb4bda9fd5 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -10,6 +10,9 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", + "snapshot": { + "useCalculatedVersion": true + }, "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true }, diff --git a/.github/actions/install-dependencies/action.yml b/.github/actions/install-dependencies/action.yml index dd069f0fb4..91e4a484e4 100644 --- a/.github/actions/install-dependencies/action.yml +++ b/.github/actions/install-dependencies/action.yml @@ -7,7 +7,7 @@ runs: - name: Set up foundry uses: foundry-rs/foundry-toolchain@v1 with: - version: nightly + version: nightly-2564718bbbddb59cd07fc3b9ffc775dff548c558 - name: Set up pnpm uses: wevm/actions/.github/actions/pnpm@main diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 980a3b58fd..8d1e978f21 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -22,15 +22,7 @@ jobs: run: pnpm check:repo - name: Check code - run: pnpm check - - - uses: stefanzweifel/git-auto-commit-action@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - commit_message: 'chore: format' - commit_user_name: 'github-actions[bot]' - commit_user_email: 'github-actions[bot]@users.noreply.github.com' + run: pnpm biome check build: name: Build diff --git a/.gitmodules b/.gitmodules index 18b462b652..1ba997f9a7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,4 +15,7 @@ url = git@github.com:OpenZeppelin/openzeppelin-contracts.git [submodule "contracts/lib/solady-6c2d0da"] path = contracts/lib/solady-6c2d0da - url = https://github.com/Vectorized/solady + url = git@github.com:Vectorized/solady.git +[submodule "contracts/lib/account-abstraction-v07"] + path = contracts/lib/account-abstraction-v07 + url = git@github.com:eth-infinitism/account-abstraction.git diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 7331fb1cf8..9523207777 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -2,10 +2,12 @@ libs = ["lib"] remappings = [ "@openzeppelin/=lib/openzeppelin/", + "@account-abstraction/=lib/account-abstraction/", "account-abstraction/=lib/account-abstraction/contracts/", + "account-abstraction-v07/=lib/account-abstraction-v07/contracts/", "solady/=lib/solady/src/", "solady-dc09481/=lib/solady-dc09481/src/", - "solady-6c2d0da/=lib/solady-6c2d0da/src/", + "solady-6c2d0da/=lib/solady-6c2d0da/src/" ] src = "src" out = "out" diff --git a/contracts/lib/account-abstraction b/contracts/lib/account-abstraction index f1c5c11b27..4cbc06072c 160000 --- a/contracts/lib/account-abstraction +++ b/contracts/lib/account-abstraction @@ -1 +1 @@ -Subproject commit f1c5c11b273b7ddae26bb20809419b33ccb8f043 +Subproject commit 4cbc06072cdc19fd60f285c5997f4f7f57a588de diff --git a/contracts/lib/account-abstraction-v07 b/contracts/lib/account-abstraction-v07 new file mode 160000 index 0000000000..f1c5c11b27 --- /dev/null +++ b/contracts/lib/account-abstraction-v07 @@ -0,0 +1 @@ +Subproject commit f1c5c11b273b7ddae26bb20809419b33ccb8f043 diff --git a/contracts/src/accounts/Simple7702Account_08.sol b/contracts/src/accounts/Simple7702Account_08.sol new file mode 100644 index 0000000000..6b5c257d82 --- /dev/null +++ b/contracts/src/accounts/Simple7702Account_08.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity ^0.8.28; + +import {Simple7702Account} from "account-abstraction/accounts/Simple7702Account.sol"; + +contract Simple7702AccountV08 is Simple7702Account {} diff --git a/contracts/src/accounts/SoladyAccountFactory_06.sol b/contracts/src/accounts/SoladyAccountFactory_06.sol index ba884d27da..fbd1a5c789 100644 --- a/contracts/src/accounts/SoladyAccountFactory_06.sol +++ b/contracts/src/accounts/SoladyAccountFactory_06.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337Factory} from "solady-dc09481/accounts/ERC4337Factory.sol"; diff --git a/contracts/src/accounts/SoladyAccountFactory_07.sol b/contracts/src/accounts/SoladyAccountFactory_07.sol index 5d77782664..451a240de2 100644 --- a/contracts/src/accounts/SoladyAccountFactory_07.sol +++ b/contracts/src/accounts/SoladyAccountFactory_07.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337Factory} from "solady-6c2d0da/accounts/ERC4337Factory.sol"; diff --git a/contracts/src/accounts/SoladyAccount_06.sol b/contracts/src/accounts/SoladyAccount_06.sol index 2b89a855ef..a75a1858ae 100644 --- a/contracts/src/accounts/SoladyAccount_06.sol +++ b/contracts/src/accounts/SoladyAccount_06.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337} from "solady-dc09481/accounts/ERC4337.sol"; diff --git a/contracts/src/accounts/SoladyAccount_07.sol b/contracts/src/accounts/SoladyAccount_07.sol index 70f2a4be58..be6a31b79f 100644 --- a/contracts/src/accounts/SoladyAccount_07.sol +++ b/contracts/src/accounts/SoladyAccount_07.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; import {ERC4337} from "solady-6c2d0da/accounts/ERC4337.sol"; diff --git a/contracts/src/paymasters/VerifyingPaymaster.sol b/contracts/src/paymasters/VerifyingPaymaster_07.sol similarity index 53% rename from contracts/src/paymasters/VerifyingPaymaster.sol rename to contracts/src/paymasters/VerifyingPaymaster_07.sol index 10415e6f81..957787a61c 100644 --- a/contracts/src/paymasters/VerifyingPaymaster.sol +++ b/contracts/src/paymasters/VerifyingPaymaster_07.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; -import {IEntryPoint} from "account-abstraction/interfaces/IEntryPoint.sol"; -import {VerifyingPaymaster as VerifyingPaymaster_} from "account-abstraction/samples/VerifyingPaymaster.sol"; +import {IEntryPoint} from "account-abstraction-v07/interfaces/IEntryPoint.sol"; +import {VerifyingPaymaster as VerifyingPaymaster_} from "account-abstraction-v07/samples/VerifyingPaymaster.sol"; -contract VerifyingPaymaster is VerifyingPaymaster_ { +contract VerifyingPaymaster_07 is VerifyingPaymaster_ { constructor( IEntryPoint entryPoint, address verifyingSigner diff --git a/contracts/src/paymasters/VerifyingPaymaster_08.sol b/contracts/src/paymasters/VerifyingPaymaster_08.sol new file mode 100644 index 0000000000..e9e78b0267 --- /dev/null +++ b/contracts/src/paymasters/VerifyingPaymaster_08.sol @@ -0,0 +1,132 @@ +// https://github.com/eth-infinitism/account-abstraction-samples/blob/master/contracts/VerifyingPaymaster.sol + +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.28; + +import "account-abstraction/core/BasePaymaster.sol"; +import "account-abstraction/core/UserOperationLib.sol"; +import "account-abstraction/core/Helpers.sol"; + +import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; + +/** + * A sample paymaster that uses external service to decide whether to pay for the UserOp. + * The paymaster trusts an external signer to sign the transaction. + * The calling user must pass the UserOp to that external signer first, which performs + * whatever off-chain verification before signing the UserOp. + * Note that this signature is NOT a replacement for the account-specific signature: + * - the paymaster checks a signature to agree to PAY for GAS. + * - the account checks a signature to prove identity and account ownership. + */ +contract VerifyingPaymaster_08 is BasePaymaster { + using UserOperationLib for PackedUserOperation; + + address public immutable verifyingSigner; + + uint256 private constant VALID_TIMESTAMP_OFFSET = PAYMASTER_DATA_OFFSET; + + uint256 private constant SIGNATURE_OFFSET = VALID_TIMESTAMP_OFFSET + 64; + + constructor( + IEntryPoint _entryPoint, + address _verifyingSigner + ) BasePaymaster(_entryPoint) { + verifyingSigner = _verifyingSigner; + } + + /** + * return the hash we're going to sign off-chain (and validate on-chain) + * this method is called by the off-chain service, to sign the request. + * it is called on-chain from the validatePaymasterUserOp, to validate the signature. + * note that this signature covers all fields of the UserOperation, except the "paymasterAndData", + * which will carry the signature itself. + */ + function getHash( + PackedUserOperation calldata userOp, + uint48 validUntil, + uint48 validAfter + ) public view returns (bytes32) { + //can't use userOp.hash(), since it contains also the paymasterAndData itself. + return + keccak256( + abi.encode( + userOp.sender, + userOp.nonce, + keccak256(userOp.initCode), + keccak256(userOp.callData), + userOp.accountGasLimits, + uint256( + bytes32( + userOp + .paymasterAndData[PAYMASTER_VALIDATION_GAS_OFFSET:PAYMASTER_DATA_OFFSET] + ) + ), + userOp.preVerificationGas, + userOp.gasFees, + block.chainid, + address(this), + validUntil, + validAfter + ) + ); + } + + /** + * verify our external signer signed this request. + * the "paymasterAndData" is expected to be the paymaster and a signature over the entire request params + * paymasterAndData[:20] : address(this) + * paymasterAndData[20:84] : abi.encode(validUntil, validAfter) + * paymasterAndData[84:] : signature + */ + function _validatePaymasterUserOp( + PackedUserOperation calldata userOp, + bytes32 /*userOpHash*/, + uint256 requiredPreFund + ) + internal + view + override + returns (bytes memory context, uint256 validationData) + { + (requiredPreFund); + + ( + uint48 validUntil, + uint48 validAfter, + bytes calldata signature + ) = parsePaymasterAndData(userOp.paymasterAndData); + //ECDSA library supports both 64 and 65-byte long signatures. + // we only "require" it here so that the revert reason on invalid signature will be of "VerifyingPaymaster", and not "ECDSA" + require( + signature.length == 64 || signature.length == 65, + "VerifyingPaymaster: invalid signature length in paymasterAndData" + ); + bytes32 hash = MessageHashUtils.toEthSignedMessageHash( + getHash(userOp, validUntil, validAfter) + ); + + //don't revert on signature failure: return SIG_VALIDATION_FAILED + if (verifyingSigner != ECDSA.recover(hash, signature)) { + return ("", _packValidationData(true, validUntil, validAfter)); + } + + //no need for other on-chain validation: entire UserOp should have been checked + // by the external service prior to signing it. + return ("", _packValidationData(false, validUntil, validAfter)); + } + + function parsePaymasterAndData( + bytes calldata paymasterAndData + ) + public + pure + returns (uint48 validUntil, uint48 validAfter, bytes calldata signature) + { + (validUntil, validAfter) = abi.decode( + paymasterAndData[VALID_TIMESTAMP_OFFSET:], + (uint48, uint48) + ); + signature = paymasterAndData[SIGNATURE_OFFSET:]; + } +} diff --git a/contracts/src/test/BatchCallDelegation.sol b/contracts/src/test/BatchCallDelegation.sol index 86c71036a3..92e44b9e03 100644 --- a/contracts/src/test/BatchCallDelegation.sol +++ b/contracts/src/test/BatchCallDelegation.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract BatchCallDelegation { struct Call { diff --git a/contracts/src/test/ERC20InvalidTransferEvent.sol b/contracts/src/test/ERC20InvalidTransferEvent.sol index 370ee5fd36..83a0845b99 100644 --- a/contracts/src/test/ERC20InvalidTransferEvent.sol +++ b/contracts/src/test/ERC20InvalidTransferEvent.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract ERC20InvalidTransferEvent { // Non-conforming `to` parameter (not indexed). diff --git a/contracts/src/test/EnsAvatarTokenUri.sol b/contracts/src/test/EnsAvatarTokenUri.sol index dabe989a4b..5554a236e2 100644 --- a/contracts/src/test/EnsAvatarTokenUri.sol +++ b/contracts/src/test/EnsAvatarTokenUri.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract EnsAvatarTokenUri { function ownerOf(uint256 tokenId) public view returns (address) { diff --git a/contracts/src/test/ErrorsExample.sol b/contracts/src/test/ErrorsExample.sol index e2f09be1a1..d47deadd7e 100644 --- a/contracts/src/test/ErrorsExample.sol +++ b/contracts/src/test/ErrorsExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract ErrorsExample { struct Foo { diff --git a/contracts/src/test/Event.sol b/contracts/src/test/Event.sol index 627cd250c1..f4da40addc 100644 --- a/contracts/src/test/Event.sol +++ b/contracts/src/test/Event.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract Event { event MessageEmitted(address indexed to, uint256 value, bytes data); diff --git a/contracts/src/test/GH434.sol b/contracts/src/test/GH434.sol index b8bcbe172e..6af3389bda 100644 --- a/contracts/src/test/GH434.sol +++ b/contracts/src/test/GH434.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract GH434 { function foo() public pure returns (uint256 a, bool b) { diff --git a/contracts/src/test/OffchainLookupExample.sol b/contracts/src/test/OffchainLookupExample.sol index b99a829514..3df5eb84ca 100644 --- a/contracts/src/test/OffchainLookupExample.sol +++ b/contracts/src/test/OffchainLookupExample.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract OffchainLookupExample { error OffchainLookup( @@ -30,7 +30,10 @@ contract OffchainLookupExample { bytes calldata result, bytes calldata extraData ) external view returns (address) { - (address owner, bytes32 hash, bytes memory sig) = abi.decode(result, (address, bytes32, bytes)); + (address owner, bytes32 hash, bytes memory sig) = abi.decode( + result, + (address, bytes32, bytes) + ); address signer = recoverSigner(hash, sig); require(signer == owner, "invalid signature"); return signer; diff --git a/contracts/src/test/Payable.sol b/contracts/src/test/Payable.sol index b5a6b3e0ba..f97e03b778 100644 --- a/contracts/src/test/Payable.sol +++ b/contracts/src/test/Payable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: Unlicense -pragma solidity ^0.8.13; +pragma solidity ^0.8.28; contract Payable { function pay() public payable {} diff --git a/environments/bun/index.ts b/environments/bun/index.ts index 373c6bcdc3..31783b79c7 100644 --- a/environments/bun/index.ts +++ b/environments/bun/index.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/next/src/app/client.tsx b/environments/next/src/app/client.tsx index b76553e047..1639aaaac4 100644 --- a/environments/next/src/app/client.tsx +++ b/environments/next/src/app/client.tsx @@ -10,7 +10,7 @@ export function Client() { ;(async () => { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/next/src/app/page.tsx b/environments/next/src/app/page.tsx index 7b7dce472e..85a1c5d274 100644 --- a/environments/next/src/app/page.tsx +++ b/environments/next/src/app/page.tsx @@ -5,7 +5,7 @@ import { Client } from './client' export default async function Home() { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/node/index.js b/environments/node/index.js index d263df4930..c290d3b6ec 100644 --- a/environments/node/index.js +++ b/environments/node/index.js @@ -3,7 +3,7 @@ const { mainnet } = require('viem/chains') const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/node/index.mjs b/environments/node/index.mjs index 373c6bcdc3..31783b79c7 100644 --- a/environments/node/index.mjs +++ b/environments/node/index.mjs @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/tsc/index.ts b/environments/tsc/index.ts index 9f37f5e838..950ad1f779 100644 --- a/environments/tsc/index.ts +++ b/environments/tsc/index.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' ;(async () => { const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/environments/vite/src/main.ts b/environments/vite/src/main.ts index ba6da3ed8d..2000313fe5 100644 --- a/environments/vite/src/main.ts +++ b/environments/vite/src/main.ts @@ -3,7 +3,7 @@ import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, - transport: http('https://eth.drpc.org'), + transport: http(), }) const webSocketClient = createPublicClient({ diff --git a/package.json b/package.json index 59809bf93f..844ca6769f 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,12 @@ "devDependencies": { "@arethetypeswrong/cli": "^0.15.4", "@ark/attest": "^0.10.2", - "@biomejs/biome": "^1.9.3", + "@biomejs/biome": "^1.9.4", "@changesets/changelog-github": "^0.4.8", "@changesets/cli": "^2.27.9", "@ethereumjs/rlp": "^5.0.2", "@paulmillr/trusted-setups": "^0.1.2", - "@pimlico/alto": "0.0.15", + "@pimlico/alto": "0.0.18", "@size-limit/preset-big-lib": "^11.1.6", "@types/bun": "^1.1.11", "@types/node": "^22.13.13", @@ -96,7 +96,7 @@ "src": { "entry": [ "index.ts!", - "{account-abstraction,accounts,actions,celo,chains,ens,experimental,experimental/erc7739,experimental/erc7821,linea,node,nonce,op-stack,siwe,utils,window,zksync}/index.ts!", + "{account-abstraction,accounts,actions,celo,chains,ens,experimental,experimental/erc7739,experimental/erc7821,experimental/erc7846,experimental/erc7895,linea,node,nonce,op-stack,siwe,utils,window,zksync}/index.ts!", "chains/utils.ts!" ], "ignore": ["node/trustedSetups_cjs.ts"] @@ -110,13 +110,13 @@ { "name": "import * from 'viem' (esm)", "path": "./src/_esm/index.js", - "limit": "69 kB", + "limit": "71 kB", "import": "*" }, { "name": "const viem = require('viem') (cjs)", "path": "./src/_cjs/index.js", - "limit": "84 kB" + "limit": "88 kB" }, { "name": "import { createClient, http } from 'viem'", @@ -127,7 +127,7 @@ { "name": "import * from 'viem/account-abstraction'", "path": "./src/_esm/account-abstraction/index.js", - "limit": "50 kB", + "limit": "55 kB", "import": "*" }, { @@ -151,7 +151,7 @@ { "name": "import * from 'viem/actions'", "path": "./src/_esm/actions/index.js", - "limit": "54 kB", + "limit": "56 kB", "import": "*" }, { @@ -181,25 +181,25 @@ { "name": "import * from 'viem/ens'", "path": "./src/_esm/ens/index.js", - "limit": "48.5 kB", + "limit": "49 kB", "import": "*" }, { "name": "import { getEnsAvatar } from 'viem/ens'", "path": "./src/_esm/ens/index.js", - "limit": "24 kB", + "limit": "25 kB", "import": "{ getEnsAvatar }" }, { "name": "import * from 'viem/siwe'", "path": "./src/_esm/siwe/index.js", - "limit": "33 kB", + "limit": "34 kB", "import": "*" }, { "name": "import { verifySiweMessage } from 'viem/siwe'", "path": "./src/_esm/siwe/index.js", - "limit": "32 kB", + "limit": "34 kB", "import": "{ verifySiweMessage }" } ], @@ -211,7 +211,7 @@ "ws@>=7.0.0 <7.5.10": "^7.5.10", "hono@<4.5.8": "^4.5.8", "micromatch@<4.0.8": "^4.0.8", - "permissionless>viem": "workspace:*", + "permissionless>zkr-viem": "workspace:*", "send@<0.19.0": "^0.19.0", "serve-static@<1.16.0": "^1.16.0", "cookie@<0.7.0": "^0.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7080b8500d..3d9f038ccc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ overrides: ws@>=7.0.0 <7.5.10: ^7.5.10 hono@<4.5.8: ^4.5.8 micromatch@<4.0.8: ^4.0.8 - permissionless>viem: workspace:* + permissionless>zkr-viem: workspace:* send@<0.19.0: ^0.19.0 serve-static@<1.16.0: ^1.16.0 cookie@<0.7.0: ^0.7.0 @@ -31,8 +31,8 @@ importers: specifier: ^0.10.2 version: 0.10.2(typescript@5.8.2) '@biomejs/biome': - specifier: ^1.9.3 - version: 1.9.3 + specifier: ^1.9.4 + version: 1.9.4 '@changesets/changelog-github': specifier: ^0.4.8 version: 0.4.8 @@ -46,8 +46,8 @@ importers: specifier: ^0.1.2 version: 0.1.2 '@pimlico/alto': - specifier: 0.0.15 - version: 0.0.15(typescript@5.8.2) + specifier: 0.0.18 + version: 0.0.18(typescript@5.8.2) '@size-limit/preset-big-lib': specifier: ^11.1.6 version: 11.1.6(size-limit@11.1.6) @@ -80,10 +80,10 @@ importers: version: 0.14.0 permissionless: specifier: ^0.2.14 - version: 0.2.14 + version: 0.2.14(viem@2.29.1(typescript@5.8.2)) prool: specifier: 0.0.24 - version: 0.0.24(@pimlico/alto@0.0.15(typescript@5.8.2)) + version: 0.0.24(@pimlico/alto@0.0.18(typescript@5.8.2)) publint: specifier: ^0.2.11 version: 0.2.11 @@ -122,7 +122,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: file:../../src/ - version: file:src(typescript@5.6.2)(zod@3.23.8) + version: zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8) devDependencies: '@playwright/test': specifier: 1.49.1 @@ -159,7 +159,7 @@ importers: dependencies: viem: specifier: file:../../src/ - version: file:src(typescript@5.6.2)(zod@3.23.8) + version: zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8) devDependencies: '@playwright/test': specifier: 1.49.1 @@ -178,7 +178,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -191,7 +191,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -204,7 +204,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -217,7 +217,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -230,7 +230,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -249,7 +249,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -277,7 +277,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -299,7 +299,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -312,7 +312,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -331,7 +331,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -353,7 +353,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -366,7 +366,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -379,7 +379,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -392,7 +392,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -409,7 +409,7 @@ importers: react-dom: specifier: ^19 version: 19.0.0(react@19.0.0) - viem: + zkr-viem: specifier: workspace:* version: link:../../src devDependencies: @@ -439,7 +439,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -467,7 +467,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -489,7 +489,7 @@ importers: dependencies: viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: typescript: specifier: ^5.0.3 @@ -508,7 +508,7 @@ importers: version: 19.0.0(react@19.0.0) viem: specifier: latest - version: 2.27.0(typescript@5.6.2)(zod@3.23.8) + version: 2.29.0(typescript@5.6.2)(zod@3.23.8) devDependencies: '@types/react': specifier: ^19 @@ -537,21 +537,21 @@ importers: tailwindcss: specifier: ^4.0.6 version: 4.0.6 - viem: - specifier: workspace:* - version: link:../src vocs: specifier: ^1.0.11 version: 1.0.11(@types/node@22.13.13)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(acorn@8.14.0)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.34.8)(terser@5.36.0)(typescript@5.8.3)(yaml@2.7.0) + zkr-viem: + specifier: workspace:* + version: link:../src src: dependencies: '@noble/curves': - specifier: 1.8.1 - version: 1.8.1 + specifier: 1.8.2 + version: 1.8.2 '@noble/hashes': - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.7.2 + version: 1.7.2 '@scure/bip32': specifier: 1.6.2 version: 1.6.2 @@ -749,55 +749,55 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@biomejs/biome@1.9.3': - resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.9.3': - resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.9.3': - resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==} + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.9.3': - resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==} + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.9.3': - resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==} + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.9.3': - resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==} + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.9.3': - resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==} + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.9.3': - resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==} + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.9.3': - resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==} + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -1484,8 +1484,8 @@ packages: '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.8.1': - resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + '@noble/curves@1.8.2': + resolution: {integrity: sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==} engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.3.2': @@ -1496,6 +1496,10 @@ packages: resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.2': + resolution: {integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1743,8 +1747,8 @@ packages: '@paulmillr/trusted-setups@0.1.2': resolution: {integrity: sha512-NKpT0G4Blj+Vp9lbfczb7iPJm3B4njpzX8NXiQs8G51N4CLndCvLqEvksFlTJbNLwl3iwsGZHSvJRdfhfOHLwQ==} - '@pimlico/alto@0.0.15': - resolution: {integrity: sha512-OfcxPQdm7MSRwiwELVVSCGII0fWtR19e7BG4VUjqYysfzvNmuErxyErx7hCmPFWUZtf1FyjgaB6UXwc23gEx0A==} + '@pimlico/alto@0.0.18': + resolution: {integrity: sha512-JIDEEYgdnkT7+wdxk0OBLSVwhm2CaLSbCw4474C9ZFmBggKBOByzaYCeIAJPb+Tag3WVBDXrXb2lYi2aRT9phQ==} hasBin: true '@pimlico/opentelemetry-instrumentation-viem@0.0.4': @@ -5203,7 +5207,7 @@ packages: permissionless@0.2.14: resolution: {integrity: sha512-4/r4gf6uGE7WfFaE4tVBxNd+QSLh0cVMkhC6yHzPUBBBLgrPf+gcUZjLsTamSLFm81K+m13jq3IQ3J0ooenWhg==} peerDependencies: - viem: workspace:* + viem: ^2.21.22 picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -6220,16 +6224,16 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - viem@2.27.0: - resolution: {integrity: sha512-pKw2dcwDi6TaWlTzLHYazOgjO1GgbUpE1zdLsLNSiCjHNrMTpL/teL0wVHnJDLiB2tR5CL19LBqefYNtRUkH5Q==} + viem@2.29.0: + resolution: {integrity: sha512-N6GeIuuay/spDyw+5FbSuNIkVN0da+jGOjdlC0bdatIN+N0jtOf9Zfj0pbXgpIJGwnM9ocxzTRt0HZVbHBdL2Q==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true - viem@file:src: - resolution: {directory: src, type: directory} + viem@2.29.1: + resolution: {integrity: sha512-mhLn0vDdsxZ4taB7XYgnIVNvXASm60KyPAkvw4k8uNCQ+HLH+5jUgKvLg4AP3y6VJxsgiVPwqUt0dJANDF5DZA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -6471,6 +6475,14 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} + zkr-viem@file:src: + resolution: {directory: src, type: directory} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + zod-validation-error@1.5.0: resolution: {integrity: sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==} engines: {node: '>=16.0.0'} @@ -6761,39 +6773,39 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@biomejs/biome@1.9.3': + '@biomejs/biome@1.9.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.9.3 - '@biomejs/cli-darwin-x64': 1.9.3 - '@biomejs/cli-linux-arm64': 1.9.3 - '@biomejs/cli-linux-arm64-musl': 1.9.3 - '@biomejs/cli-linux-x64': 1.9.3 - '@biomejs/cli-linux-x64-musl': 1.9.3 - '@biomejs/cli-win32-arm64': 1.9.3 - '@biomejs/cli-win32-x64': 1.9.3 + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 - '@biomejs/cli-darwin-arm64@1.9.3': + '@biomejs/cli-darwin-arm64@1.9.4': optional: true - '@biomejs/cli-darwin-x64@1.9.3': + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@biomejs/cli-linux-arm64-musl@1.9.3': + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true - '@biomejs/cli-linux-arm64@1.9.3': + '@biomejs/cli-linux-arm64@1.9.4': optional: true - '@biomejs/cli-linux-x64-musl@1.9.3': + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.9.3': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.9.3': + '@biomejs/cli-win32-arm64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.9.3': + '@biomejs/cli-win32-x64@1.9.4': optional: true '@changesets/apply-release-plan@7.0.5': @@ -7425,14 +7437,16 @@ snapshots: dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.8.1': + '@noble/curves@1.8.2': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.7.2 '@noble/hashes@1.3.2': {} '@noble/hashes@1.7.1': {} + '@noble/hashes@1.7.2': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7720,7 +7734,7 @@ snapshots: '@paulmillr/trusted-setups@0.1.2': {} - '@pimlico/alto@0.0.15(typescript@5.8.2)': + '@pimlico/alto@0.0.18(typescript@5.8.2)': dependencies: '@fastify/websocket': 10.0.1 '@opentelemetry/api': 1.7.0 @@ -7750,7 +7764,7 @@ snapshots: pino-pretty: 10.3.1 prom-client: 14.2.0 type-fest: 4.39.0 - viem: 2.27.0(typescript@5.8.2)(zod@3.23.8) + viem: 2.29.1(typescript@5.8.2)(zod@3.23.8) yargs: 17.7.2 zod: 3.23.8 zod-validation-error: 1.5.0(zod@3.23.8) @@ -8654,13 +8668,13 @@ snapshots: '@scure/bip32@1.6.2': dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.7.2 '@scure/base': 1.2.4 '@sec-ant/readable-stream@0.4.1': {} @@ -9273,6 +9287,10 @@ snapshots: typescript: 5.6.2 zod: 3.23.8 + abitype@1.0.8(typescript@5.8.2): + optionalDependencies: + typescript: 5.8.2 + abitype@1.0.8(typescript@5.8.2)(zod@3.23.8): optionalDependencies: typescript: 5.8.2 @@ -11119,8 +11137,8 @@ snapshots: micro-eth-signer@0.14.0: dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 micro-packed: 0.7.2 micro-packed@0.7.2: @@ -11656,8 +11674,8 @@ snapshots: ox@0.6.9(typescript@5.6.2)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) @@ -11667,11 +11685,25 @@ snapshots: transitivePeerDependencies: - zod + ox@0.6.9(typescript@5.8.2): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.8.2) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - zod + ox@0.6.9(typescript@5.8.2)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) @@ -11684,8 +11716,8 @@ snapshots: ox@0.6.9(typescript@5.8.3)(zod@3.23.8): dependencies: '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.8.3)(zod@3.23.8) @@ -11798,7 +11830,9 @@ snapshots: pend@1.2.0: {} - permissionless@0.2.14: {} + permissionless@0.2.14(viem@2.29.1(typescript@5.8.2)): + dependencies: + viem: 2.29.1(typescript@5.8.2) picocolors@1.1.1: {} @@ -11939,7 +11973,7 @@ snapshots: dependencies: tdigest: 0.1.2 - prool@0.0.24(@pimlico/alto@0.0.15(typescript@5.8.2)): + prool@0.0.24(@pimlico/alto@0.0.18(typescript@5.8.2)): dependencies: change-case: 5.4.4 eventemitter3: 5.0.1 @@ -11948,7 +11982,7 @@ snapshots: http-proxy: 1.18.1 tar: 7.2.0 optionalDependencies: - '@pimlico/alto': 0.0.15(typescript@5.8.2) + '@pimlico/alto': 0.0.18(typescript@5.8.2) transitivePeerDependencies: - debug @@ -13012,10 +13046,10 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - viem@2.27.0(typescript@5.6.2)(zod@3.23.8): + viem@2.29.0(typescript@5.6.2)(zod@3.23.8): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) @@ -13029,15 +13063,15 @@ snapshots: - utf-8-validate - zod - viem@2.27.0(typescript@5.8.2)(zod@3.23.8): + viem@2.29.1(typescript@5.8.2): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) + abitype: 1.0.8(typescript@5.8.2) isows: 1.0.6(ws@8.18.1) - ox: 0.6.9(typescript@5.8.2)(zod@3.23.8) + ox: 0.6.9(typescript@5.8.2) ws: 8.18.1 optionalDependencies: typescript: 5.8.2 @@ -13046,18 +13080,18 @@ snapshots: - utf-8-validate - zod - viem@file:src(typescript@5.6.2)(zod@3.23.8): + viem@2.29.1(typescript@5.8.2)(zod@3.23.8): dependencies: - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 '@scure/bip32': 1.6.2 '@scure/bip39': 1.5.4 - abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) + abitype: 1.0.8(typescript@5.8.2)(zod@3.23.8) isows: 1.0.6(ws@8.18.1) - ox: 0.6.9(typescript@5.6.2)(zod@3.23.8) + ox: 0.6.9(typescript@5.8.2)(zod@3.23.8) ws: 8.18.1 optionalDependencies: - typescript: 5.6.2 + typescript: 5.8.2 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -13381,6 +13415,23 @@ snapshots: yoctocolors@2.1.1: {} + zkr-viem@file:src(typescript@5.6.2)(zod@3.23.8): + dependencies: + '@noble/curves': 1.8.2 + '@noble/hashes': 1.7.2 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.6.2)(zod@3.23.8) + isows: 1.0.6(ws@8.18.1) + ox: 0.6.9(typescript@5.6.2)(zod@3.23.8) + ws: 8.18.1 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + zod-validation-error@1.5.0(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/site/.cache/search.hash.json b/site/.cache/search.hash.json index d080168a94..fb4b92657c 100644 --- a/site/.cache/search.hash.json +++ b/site/.cache/search.hash.json @@ -1 +1 @@ -"{\"value\":\"585aeb21\"}" +"{\"value\":\"8156042d\"}" diff --git a/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json b/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json index 8b3e286693..f879959393 100644 --- a/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json +++ b/site/.cache/search.index.0dbd7a5fdd82feb3f31c2ace91bd6bb611a801c87b68bc957bb9e0774f779edd.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Creates, signs, and sends a new transaction to the network.\\n---\\n\\n# sendTransaction\\n\\nCreates, signs, and sends a new transaction to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendTransaction`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `sendTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\\n## Tips\\n\\n- For dapps: When using this action, it is assumed that the user has connected to their wallet (e.g. given permission for the dapp to access their accounts via [`requestAddresses`](/docs/actions/wallet/requestAddresses)). You can also check if the user has granted access to their accounts via [`getAddresses`](/docs/actions/wallet/getAddresses)\\n\\n## Live Example\\n\\nCheck out the usage of `sendTransaction` in the live [Sending Transactions Example](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions) below.\\n\\n\\n\\n## JSON-RPC Methods\\n\\n- JSON-RPC Accounts:\\n - [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n- Local Accounts:\\n - [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/sendTransaction#sendtransaction\",\"html\":\"\\n

Creates, signs, and sends a new transaction to the network.

\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#sendtransaction\",\"isPage\":true,\"text\":\"\\nCreates, signs, and sends a new transaction to the network.\\n\",\"title\":\"sendTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendTransaction#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// '0x...'
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\",\"title\":\"Usage\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// '0x...'
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"sendTransaction\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#returns\",\"html\":\"\\n

Hash

\\n

The Transaction hash.

\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#to\",\"html\":\"\\n\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#authorizationlist-optional\",\"html\":\"\\n\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#blobs-optional\",\"html\":\"\\n\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#chain-optional\",\"html\":\"\\n\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#data-optional\",\"html\":\"\\n\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gasprice-optional\",\"html\":\"\\n\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#kzg-optional\",\"html\":\"\\n\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#value-optional\",\"html\":\"\\n\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#tips\",\"html\":\"\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#tips\",\"isPage\":false,\"text\":\"\\n\\nFor dapps: When using this action, it is assumed that the user has connected to their wallet (e.g. given permission for the dapp to access their accounts via requestAddresses). You can also check if the user has granted access to their accounts via getAddresses\\n\\n\",\"title\":\"Tips\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#live-example\",\"html\":\"\\n

Check out the usage of sendTransaction in the live Sending Transactions Example below.

\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#live-example\",\"isPage\":false,\"text\":\"\\nCheck out the usage of sendTransaction in the live Sending Transactions Example below.\\n\\n\",\"title\":\"Live Example\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\n\\nJSON-RPC Accounts:\\n\\neth_sendTransaction\\n\\n\\nLocal Accounts:\\n\\neth_sendRawTransaction\\n\\n\\n\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"sendTransaction\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Creates, signs, and sends a new transaction to the network.\\n---\\n\\n# sendTransaction\\n\\nCreates, signs, and sends a new transaction to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendTransaction`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `sendTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\\n## Tips\\n\\n- For dapps: When using this action, it is assumed that the user has connected to their wallet (e.g. given permission for the dapp to access their accounts via [`requestAddresses`](/docs/actions/wallet/requestAddresses)). You can also check if the user has granted access to their accounts via [`getAddresses`](/docs/actions/wallet/getAddresses)\\n\\n## Live Example\\n\\nCheck out the usage of `sendTransaction` in the live [Sending Transactions Example](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions) below.\\n\\n\\n\\n## JSON-RPC Methods\\n\\n- JSON-RPC Accounts:\\n - [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n- Local Accounts:\\n - [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/sendTransaction#sendtransaction\",\"html\":\"\\n

Creates, signs, and sends a new transaction to the network.

\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#sendtransaction\",\"isPage\":true,\"text\":\"\\nCreates, signs, and sends a new transaction to the network.\\n\",\"title\":\"sendTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendTransaction#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// '0x...'
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\",\"title\":\"Usage\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// '0x...'
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendTransaction, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"sendTransaction\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#returns\",\"html\":\"\\n

Hash

\\n

The Transaction hash.

\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#to\",\"html\":\"\\n\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#authorizationlist-optional\",\"html\":\"\\n\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#blobs-optional\",\"html\":\"\\n\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#chain-optional\",\"html\":\"\\n\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to sendTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#data-optional\",\"html\":\"\\n\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gas-optional\",\"html\":\"\\n\\n

The gas limit of the transaction. If missing, it will be estimated.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  gas: 21000n, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#gasprice-optional\",\"html\":\"\\n\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#kzg-optional\",\"html\":\"\\n\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.sendTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#value-optional\",\"html\":\"\\n\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"sendTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#tips\",\"html\":\"\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#tips\",\"isPage\":false,\"text\":\"\\n\\nFor dapps: When using this action, it is assumed that the user has connected to their wallet (e.g. given permission for the dapp to access their accounts via requestAddresses). You can also check if the user has granted access to their accounts via getAddresses\\n\\n\",\"title\":\"Tips\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#live-example\",\"html\":\"\\n

Check out the usage of sendTransaction in the live Sending Transactions Example below.

\\n\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#live-example\",\"isPage\":false,\"text\":\"\\nCheck out the usage of sendTransaction in the live Sending Transactions Example below.\\n\\n\",\"title\":\"Live Example\",\"titles\":[\"sendTransaction\"]},{\"href\":\"/docs/actions/wallet/sendTransaction#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendTransaction.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\n\\nJSON-RPC Accounts:\\n\\neth_sendTransaction\\n\\n\\nLocal Accounts:\\n\\neth_sendRawTransaction\\n\\n\\n\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"sendTransaction\"]}]}}" diff --git a/site/.cache/search.index.1ffd9e88c74ee09cf30cbc08fccd48f722fab0a608e391a6f32d6485471edf7b.json b/site/.cache/search.index.1ffd9e88c74ee09cf30cbc08fccd48f722fab0a608e391a6f32d6485471edf7b.json index 5714b5f475..9fcb1edbb1 100644 --- a/site/.cache/search.index.1ffd9e88c74ee09cf30cbc08fccd48f722fab0a608e391a6f32d6485471edf7b.json +++ b/site/.cache/search.index.1ffd9e88c74ee09cf30cbc08fccd48f722fab0a608e391a6f32d6485471edf7b.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Initiates a withdrawal on an L2 to the L1.\\n---\\n\\n# initiateWithdrawal\\n\\nInitiates a [withdrawal](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) on an L2 to the L1. \\n\\nInternally performs a contract write to the [`initiateWithdrawal` function](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol#L73) on the [Optimism L2ToL1MessagePasser predeploy contract](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n```ts [config.ts]\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n\\n:::warning\\n\\nYou must [build the parameters](#building-parameters) on the L1 before calling this function. If the gas is too low, transaction execution will fail on the L1.\\n\\n:::\\n\\n### Building Parameters\\n\\nThe [`buildInitiateWithdrawal` Action](/op-stack/actions/buildInitiateWithdrawal) builds & prepares the initiate withdrawal transaction parameters. \\n\\nWe can use the resulting `args` to initiate the withdrawal transaction on the L2.\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ // [!code hl]\\n account, // [!code hl]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code hl]\\n value: parseEther('1'), // [!code hl]\\n}) // [!code hl]\\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n[See more on the `buildInitiateWithdrawal` Action.](/op-stack/actions/buildInitiateWithdrawal)\\n\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `proveWithdrawal`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more.](/docs/clients/wallet#account)\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, // [!code --]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\n// Retrieve Account from an EIP-1193 Provider. // [!code hl]\\nconst [account] = await window.ethereum.request({ // [!code hl]\\n method: 'eth_requestAccounts' // [!code hl]\\n}) // [!code hl]\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account, // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n```ts [config.ts (Local Account)]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [L2 Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n```\\n\\n### args.data (optional)\\n\\n- **Type:** `Hex`\\n\\nEncoded contract method & arguments.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', // [!code focus]\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.gas\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.to\\n\\n- **Type:** `Address`\\n\\nL1 Transaction recipient.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n },\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { optimism } from 'viem/chains'\\n\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/op-stack/actions/initiateWithdrawal#initiatewithdrawal\",\"html\":\"\\n

Initiates a withdrawal on an L2 to the L1.

\\n

Internally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#initiatewithdrawal\",\"isPage\":true,\"text\":\"\\nInitiates a withdrawal on an L2 to the L1.\\nInternally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.\\n\",\"title\":\"initiateWithdrawal\",\"titles\":[]},{\"href\":\"/op-stack/actions/initiateWithdrawal#usage\",\"html\":\"\\n
import { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n  account,\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n})
import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#usage\",\"isPage\":false,\"text\":\"\\nimport { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\nYou must build the parameters on the L1 before calling this function. If the gas is too low, transaction execution will fail on the L1.\\n\",\"title\":\"Usage\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#building-parameters\",\"html\":\"\\n

The buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.

\\n

We can use the resulting args to initiate the withdrawal transaction on the L2.

\\n
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n  account, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n

See more on the buildInitiateWithdrawal Action.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#building-parameters\",\"isPage\":false,\"text\":\"\\nThe buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.\\nWe can use the resulting args to initiate the withdrawal transaction on the L2.\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\nSee more on the buildInitiateWithdrawal Action.\\n\",\"title\":\"Building Parameters\",\"titles\":[\"initiateWithdrawal\",\"Usage\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n  account, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)
import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  account, \\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  account: privateKeyToAccount('0x...'), \\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account, \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"initiateWithdrawal\",\"Usage\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#returns\",\"html\":\"\\n

Hash

\\n

The L2 Transaction hash.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe L2 Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n  targetChain: base,\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"title\":\"account\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsdata-optional\",\"html\":\"\\n\\n

Encoded contract method & arguments.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    data: '0x...', \\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nEncoded contract method & arguments.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.data (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsgas\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n, \\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsgas\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.gas\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsto\",\"html\":\"\\n\\n

L1 Transaction recipient.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',  \\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nL1 Transaction recipient.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.to\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsvalue-optional\",\"html\":\"\\n\\n

Value in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1') \\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsvalue-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"title\":\"args.value (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#chain-optional\",\"html\":\"\\n\\n

The L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  maxFeePerGas: parseGwei('20'),  \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  nonce: 69, \\n})
\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"title\":\"nonce (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Initiates a withdrawal on an L2 to the L1.\\n---\\n\\n# initiateWithdrawal\\n\\nInitiates a [withdrawal](https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md) on an L2 to the L1. \\n\\nInternally performs a contract write to the [`initiateWithdrawal` function](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol#L73) on the [Optimism L2ToL1MessagePasser predeploy contract](https://github.com/ethereum-optimism/optimism/blob/283f0aa2e3358ced30ff7cbd4028c0c0c3faa140/packages/contracts-bedrock/src/L2/L2ToL1MessagePasser.sol).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n```ts [config.ts]\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { optimism } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n\\n:::warning\\n\\nYou must [build the parameters](#building-parameters) on the L1 before calling this function. If the gas is too low, transaction execution will fail on the L1.\\n\\n:::\\n\\n### Building Parameters\\n\\nThe [`buildInitiateWithdrawal` Action](/op-stack/actions/buildInitiateWithdrawal) builds & prepares the initiate withdrawal transaction parameters. \\n\\nWe can use the resulting `args` to initiate the withdrawal transaction on the L2.\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ // [!code hl]\\n account, // [!code hl]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code hl]\\n value: parseEther('1'), // [!code hl]\\n}) // [!code hl]\\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n[See more on the `buildInitiateWithdrawal` Action.](/op-stack/actions/buildInitiateWithdrawal)\\n\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `proveWithdrawal`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more.](/docs/clients/wallet#account)\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n\\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, // [!code --]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\n// Retrieve Account from an EIP-1193 Provider. // [!code hl]\\nconst [account] = await window.ethereum.request({ // [!code hl]\\n method: 'eth_requestAccounts' // [!code hl]\\n}) // [!code hl]\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account, // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n```ts [config.ts (Local Account)]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), // [!code hl]\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe [L2 Transaction](/docs/glossary/terms#transaction) hash.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n```\\n\\n### args.data (optional)\\n\\n- **Type:** `Hex`\\n\\nEncoded contract method & arguments.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', // [!code focus]\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.gas\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.to\\n\\n- **Type:** `Address`\\n\\nL1 Transaction recipient.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n },\\n})\\n```\\n\\n### args.value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n },\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { optimism } from 'viem/chains'\\n\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/op-stack/actions/initiateWithdrawal#initiatewithdrawal\",\"html\":\"\\n

Initiates a withdrawal on an L2 to the L1.

\\n

Internally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#initiatewithdrawal\",\"isPage\":true,\"text\":\"\\nInitiates a withdrawal on an L2 to the L1.\\nInternally performs a contract write to the initiateWithdrawal function on the Optimism L2ToL1MessagePasser predeploy contract.\\n\",\"title\":\"initiateWithdrawal\",\"titles\":[]},{\"href\":\"/op-stack/actions/initiateWithdrawal#usage\",\"html\":\"\\n
import { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n  account,\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n})
import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { optimism } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#usage\",\"isPage\":false,\"text\":\"\\nimport { base } from 'viem/chains'\\nimport { account, walletClientL2 } from './config'\\n \\nconst hash = await walletClientL2.initiateWithdrawal({\\n account,\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { optimism } from 'viem/chains'\\nimport { walletActionsL2 } from 'viem/op-stack'\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL2.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\nYou must build the parameters on the L1 before calling this function. If the gas is too low, transaction execution will fail on the L1.\\n\",\"title\":\"Usage\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#building-parameters\",\"html\":\"\\n

The buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.

\\n

We can use the resulting args to initiate the withdrawal transaction on the L2.

\\n
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n  account, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n

See more on the buildInitiateWithdrawal Action.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#building-parameters\",\"isPage\":false,\"text\":\"\\nThe buildInitiateWithdrawal Action builds & prepares the initiate withdrawal transaction parameters.\\nWe can use the resulting args to initiate the withdrawal transaction on the L2.\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\nSee more on the buildInitiateWithdrawal Action.\\n\",\"title\":\"Building Parameters\",\"titles\":[\"initiateWithdrawal\",\"Usage\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
import { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n  account, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)
import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  account, \\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n  account: privateKeyToAccount('0x...'), \\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n}).extend(walletActionsL2())
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every proveWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\nimport { account, publicClientL1, walletClientL2 } from './config'\\n \\nconst args = await publicClientL1.buildInitiateWithdrawal({ \\n account, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n}) \\n \\nconst hash = await walletClientL2.initiateWithdrawal(args)import { createWalletClient, createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\n// Retrieve Account from an EIP-1193 Provider. \\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts'\\n}) \\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account, \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1, walletActionsL2 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const walletClientL2 = createWalletClient({\\n account: privateKeyToAccount('0x...'), \\n chain: optimism,\\n transport: custom(window.ethereum)\\n}).extend(walletActionsL2())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"initiateWithdrawal\",\"Usage\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#returns\",\"html\":\"\\n

Hash

\\n

The L2 Transaction hash.

\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe L2 Transaction hash.\\n\",\"title\":\"Returns\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"initiateWithdrawal\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n  targetChain: base,\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n targetChain: base,\\n})\\n\",\"title\":\"account\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsdata-optional\",\"html\":\"\\n\\n

Encoded contract method & arguments.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    data: '0x...', \\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nEncoded contract method & arguments.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n data: '0x...', \\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.data (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsgas\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n, \\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsgas\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.gas\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsto\",\"html\":\"\\n\\n

L1 Transaction recipient.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',  \\n    value: parseEther('1')\\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nL1 Transaction recipient.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n})\\n\",\"title\":\"args.to\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#argsvalue-optional\",\"html\":\"\\n\\n

Value in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1') \\n  },\\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#argsvalue-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n },\\n})\\n\",\"title\":\"args.value (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#chain-optional\",\"html\":\"\\n\\n

The L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L2 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  maxFeePerGas: parseGwei('20'),  \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n})
\\n\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]},{\"href\":\"/op-stack/actions/initiateWithdrawal#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.initiateWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  request: {\\n    gas: 21_000n,\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n    value: parseEther('1')\\n  },\\n  nonce: 69, \\n})
\",\"id\":\"pages/op-stack/actions/initiateWithdrawal.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.initiateWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n request: {\\n gas: 21_000n,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n },\\n nonce: 69, \\n})\",\"title\":\"nonce (optional)\",\"titles\":[\"initiateWithdrawal\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json b/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json index c66f32c4d8..f9173eb59c 100644 --- a/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json +++ b/site/.cache/search.index.2aced625a37ea51502d09628816ef8a78cb5fd4ce4c622b113a2719bebc35fbf.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Parses a hex-formatted ERC-6492 flavoured signature.\\n---\\n\\n# parseErc6492Signature\\n\\nParses a hex-formatted [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature.\\n\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\\n## Import\\n\\n```ts\\nimport { parseErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { parseErc6492Signature } from 'viem/experimental'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n```\\n\\n## Returns\\n\\n`ParseErc6492SignatureReturnType`\\n\\nThe ERC-6492 signature components.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ERC-6492 signature in hex format.\",\"document\":[{\"href\":\"/docs/utilities/parseErc6492Signature#parseerc6492signature\",\"html\":\"\\n

Parses a hex-formatted ERC-6492 flavoured signature.

\\n

If the signature is not in ERC-6492 format, then the underlying (original) signature is returned.

\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parseerc6492signature\",\"isPage\":true,\"text\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\",\"title\":\"parseErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/parseErc6492Signature#import\",\"html\":\"\\n
import { parseErc6492Signature } from 'viem/experimental'
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#usage\",\"html\":\"\\n
import { parseErc6492Signature } from 'viem/experimental'\\n \\nconst { \\n  address,\\n  data,\\n  signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n *   address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n *   data: '0xdeadbeef',\\n *   signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/experimental'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"title\":\"Usage\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#returns\",\"html\":\"\\n

ParseErc6492SignatureReturnType

\\n

The ERC-6492 signature components.

\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nParseErc6492SignatureReturnType\\nThe ERC-6492 signature components.\\n\",\"title\":\"Returns\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#signature\",\"html\":\"\\n\\n

The ERC-6492 signature in hex format.

\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ERC-6492 signature in hex format.\",\"title\":\"signature\",\"titles\":[\"parseErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Parses a hex-formatted ERC-6492 flavoured signature.\\n---\\n\\n# parseErc6492Signature\\n\\nParses a hex-formatted [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature.\\n\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\\n## Import\\n\\n```ts\\nimport { parseErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { parseErc6492Signature } from 'viem/utils'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n```\\n\\n## Returns\\n\\n`ParseErc6492SignatureReturnType`\\n\\nThe ERC-6492 signature components.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ERC-6492 signature in hex format.\",\"document\":[{\"href\":\"/docs/utilities/parseErc6492Signature#parseerc6492signature\",\"html\":\"\\n

Parses a hex-formatted ERC-6492 flavoured signature.

\\n

If the signature is not in ERC-6492 format, then the underlying (original) signature is returned.

\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parseerc6492signature\",\"isPage\":true,\"text\":\"\\nParses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\\n\",\"title\":\"parseErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/parseErc6492Signature#import\",\"html\":\"\\n
import { parseErc6492Signature } from 'viem/utils'
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#usage\",\"html\":\"\\n
import { parseErc6492Signature } from 'viem/utils'\\n \\nconst { \\n  address,\\n  data,\\n  signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n *   address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n *   data: '0xdeadbeef',\\n *   signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */
\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { parseErc6492Signature } from 'viem/utils'\\n \\nconst { \\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\\n\",\"title\":\"Usage\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#returns\",\"html\":\"\\n

ParseErc6492SignatureReturnType

\\n

The ERC-6492 signature components.

\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nParseErc6492SignatureReturnType\\nThe ERC-6492 signature components.\\n\",\"title\":\"Returns\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"parseErc6492Signature\"]},{\"href\":\"/docs/utilities/parseErc6492Signature#signature\",\"html\":\"\\n\\n

The ERC-6492 signature in hex format.

\",\"id\":\"pages/docs/utilities/parseErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ERC-6492 signature in hex format.\",\"title\":\"signature\",\"titles\":[\"parseErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json b/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json new file mode 100644 index 0000000000..622a7e1d4f --- /dev/null +++ b/site/.cache/search.index.2c0e12b5b728915a8f3b4e3a2e9810ed94405106c8f117d2c1e82f94565c0abe.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Requests to connect Account(s).\\n---\\n\\n# connect\\n\\nRequests to connect Account(s) with optional [capabilities](#capabilities).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\nList of connected accounts.\\n\\n```ts\\ntype ReturnType = {\\n accounts: readonly {\\n address: Address\\n capabilities: Record\\n }[]\\n}\\n```\\n\\n## Parameters\\n\\n### `capabilities`\\n\\n- **Type:** `Record`\\n\\nKey-value pairs of [capabilities](#capabilities).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { // [!code focus]\\n unstable_signInWithEthereum: { // [!code focus]\\n chainId: 1, // [!code focus]\\n nonce: 'abcd1234', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\\n## Capabilities\\n\\n### `unstable_addSubAccount`\\n\\nAdds a Sub Account to the connected Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { // [!code focus]\\n account: { // [!code focus]\\n keys: [{ // [!code focus]\\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n type: 'address', // [!code focus]\\n }], // [!code focus]\\n type: 'create', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n }\\n})\\n// @log: [{\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n// @log: capabilities: {\\n// @log: unstable_subAccounts: [{\\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n// @log: }],\\n// @log: },\\n// @log: }]\\n```\\n\\n### `unstable_subAccounts`\\n\\nReturns all Sub Accounts of the connected Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n// @log: capabilities: {\\n// @log: unstable_subAccounts: [{\\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n// @log: }],\\n// @log: },\\n// @log: }]\\n```\\n\\n\\n### `unstable_signInWithEthereum`\\n\\nAuthenticate offchain using Sign-In with Ethereum. [See more](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md#signinwithethereum)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n// @log: [{\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n// @log: capabilities: {\\n// @log: unstable_signInWithEthereum: {\\n// @log: message: 'example.com wants you to sign in with your Ethereum account...',\\n// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n// @log: },\\n// @log: },\\n// @log: }]\\n```\\n\\n## JSON-RPC Methods\\n\\n- [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\\n- Falls back to [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\\n\",\"document\":[{\"href\":\"/experimental/erc7846/connect#connect\",\"html\":\"\\n

Requests to connect Account(s) with optional capabilities.

\\n\",\"id\":\"pages/experimental/erc7846/connect.md#connect\",\"isPage\":true,\"text\":\"\\nRequests to connect Account(s) with optional capabilities.\\n\",\"title\":\"connect\",\"titles\":[]},{\"href\":\"/experimental/erc7846/connect#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() 
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#returns\",\"html\":\"\\n

List of connected accounts.

\\n
type ReturnType = {\\n  accounts: readonly {\\n    address: Address\\n    capabilities: Record<string, unknown>\\n  }[]\\n}
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#returns\",\"isPage\":false,\"text\":\"\\nList of connected accounts.\\ntype ReturnType = {\\n accounts: readonly {\\n address: Address\\n capabilities: Record<string, unknown>\\n }[]\\n}\\n\",\"title\":\"Returns\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7846/connect.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#capabilities\",\"html\":\"\\n\\n

Key-value pairs of capabilities.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n  capabilities: { \\n    unstable_signInWithEthereum: { \\n      chainId: 1, \\n      nonce: 'abcd1234', \\n    } \\n  } \\n})
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: Record<string, unknown>\\n\\nKey-value pairs of capabilities.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { \\n unstable_signInWithEthereum: { \\n chainId: 1, \\n nonce: 'abcd1234', \\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"connect\",\"Parameters\"]},{\"href\":\"/experimental/erc7846/connect#capabilities-1\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7846/connect.md#capabilities-1\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Capabilities\",\"titles\":[\"connect\"]},{\"href\":\"/experimental/erc7846/connect#unstable_addsubaccount\",\"html\":\"\\n

Adds a Sub Account to the connected Account. See more

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n  capabilities: {\\n    unstable_addSubAccount: { \\n      account: { \\n        keys: [{ \\n          key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n          type: 'address', \\n        }], \\n        type: 'create', \\n      } \\n    } \\n  }\\n})\\n// @log: [{\\n \\n// @log:   address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log:   capabilities: {\\n \\n// @log:     unstable_subAccounts: [{\\n \\n// @log:       address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log:     }],\\n \\n// @log:   },\\n \\n// @log: }]
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_addsubaccount\",\"isPage\":false,\"text\":\"\\nAdds a Sub Account to the connected Account. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { \\n account: { \\n keys: [{ \\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n type: 'address', \\n }], \\n type: 'create', \\n } \\n } \\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_addSubAccount\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#unstable_subaccounts\",\"html\":\"\\n

Returns all Sub Accounts of the connected Account. See more

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n \\n// @log:   address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log:   capabilities: {\\n \\n// @log:     unstable_subAccounts: [{\\n \\n// @log:       address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log:     }],\\n \\n// @log:   },\\n \\n// @log: }]
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_subaccounts\",\"isPage\":false,\"text\":\"\\nReturns all Sub Accounts of the connected Account. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_subAccounts: [{\\n \\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n \\n// @log: }],\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_subAccounts\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#unstable_signinwithethereum\",\"html\":\"\\n

Authenticate offchain using Sign-In with Ethereum. See more

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n  capabilities: {\\n    unstable_signInWithEthereum: {\\n      chainId: 1,\\n      nonce: 'abcd1234',\\n    }\\n  }\\n})\\n// @log: [{\\n \\n// @log:   address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log:   capabilities: {\\n \\n// @log:     unstable_signInWithEthereum: {\\n \\n// @log:       message: 'example.com wants you to sign in with your Ethereum account...',\\n \\n// @log:       signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n \\n// @log:     },\\n \\n// @log:   },\\n \\n// @log: }]
\\n\",\"id\":\"pages/experimental/erc7846/connect.md#unstable_signinwithethereum\",\"isPage\":false,\"text\":\"\\nAuthenticate offchain using Sign-In with Ethereum. See more\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n// @log: [{\\n \\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n \\n// @log: capabilities: {\\n \\n// @log: unstable_signInWithEthereum: {\\n \\n// @log: message: 'example.com wants you to sign in with your Ethereum account...',\\n \\n// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }]\\n\",\"title\":\"unstable_signInWithEthereum\",\"titles\":[\"connect\",\"Capabilities\"]},{\"href\":\"/experimental/erc7846/connect#json-rpc-methods\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7846/connect.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\n\\nwallet_connect\\nFalls back to eth_requestAccounts\\n\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"connect\"]}]}}" diff --git a/site/.cache/search.index.2fac0b4589eea70fa9d2ded9b7b3fdba835eb8b11443700fc25f5bc0827b2ae3.json b/site/.cache/search.index.2fac0b4589eea70fa9d2ded9b7b3fdba835eb8b11443700fc25f5bc0827b2ae3.json new file mode 100644 index 0000000000..3f021abf3e --- /dev/null +++ b/site/.cache/search.index.2fac0b4589eea70fa9d2ded9b7b3fdba835eb8b11443700fc25f5bc0827b2ae3.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Returns the status of a call batch.\\n---\\n\\n# getCallsStatus\\n\\nReturns the status of a call batch that was sent via `sendCalls`.\\n\\n[Read more](https://eips.ethereum.org/EIPS/eip-5792#wallet_getcallsstatus)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletGetCallsStatusReturnType`\\n\\nStatus of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/getCallsStatus#getcallsstatus\",\"html\":\"\\n

Returns the status of a call batch that was sent via sendCalls.

\\n

Read more

\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#getcallsstatus\",\"isPage\":true,\"text\":\"\\nReturns the status of a call batch that was sent via sendCalls.\\nRead more\\n\",\"title\":\"getCallsStatus\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/getCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n  id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log:   atomic: false,\\n \\n// @log:   chainId: 1,\\n \\n// @log:   id: '0x1234567890abcdef',\\n \\n// @log:   statusCode: 200,\\n \\n// @log:   status: 'success',\\n \\n// @log:   receipts: [{ ... }],\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/docs/actions/wallet/getCallsStatus#returns\",\"html\":\"\\n

WalletGetCallsStatusReturnType

\\n

Status of the calls.

\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/docs/actions/wallet/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/docs/actions/wallet/getCallsStatus#id\",\"html\":\"\\n\\n

Identifier of the call batch.

\",\"id\":\"pages/docs/actions/wallet/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json b/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json index d0e548df58..79d90373e0 100644 --- a/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json +++ b/site/.cache/search.index.31551efd7ca7af4115644d544abf8390a77c92babfe8c9a42dac4825cd56cf91.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to finalize a withdrawal that occurred on an L2.\\n---\\n\\n# estimateFinalizeWithdrawalGas\\n\\nEstimates gas required to finalize a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### proofSubmitter (optional)\\n\\n- **Type:** `Address`\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\n\\nIf unspecified, the sending account is the proof submitter.\\n\\n```ts\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#estimatefinalizewithdrawalgas\",\"html\":\"\\n

Estimates gas required to finalize a withdrawal that occurred on an L2.

\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#estimatefinalizewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateFinalizeWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n  account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n  targetChain: optimism, \\n  withdrawal: { ... }, \\n}) 
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n targetChain: optimism, \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#returns\",\"html\":\"\\n

bigint

\\n

The estimated gas.

\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#chain-optional\",\"html\":\"\\n\\n

The L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chain: mainnet, \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#gas-optional\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n,  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#proofsubmitter-optional\",\"html\":\"\\n\\n

The address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.

\\n

If unspecified, the sending account is the proof submitter.

\\n
const hash = await client.finalizeWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#proofsubmitter-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\nIf unspecified, the sending account is the proof submitter.\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"proofSubmitter (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  withdrawal: { /* ... */ },\\n  nonce: 69, \\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  targetChain: optimism,\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#targetchain\",\"html\":\"\\n\\n

The L2 chain to execute the transaction on.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#withdrawal\",\"html\":\"\\n\\n

The withdrawal.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ }, \\n  targetChain: optimism,\\n})
\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to finalize a withdrawal that occurred on an L2.\\n---\\n\\n# estimateFinalizeWithdrawalGas\\n\\nEstimates gas required to finalize a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### proofSubmitter (optional)\\n\\n- **Type:** `Address`\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\n\\nIf unspecified, the sending account is the proof submitter.\\n\\n```ts\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal.\\n\\n```ts\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#estimatefinalizewithdrawalgas\",\"html\":\"\\n

Estimates gas required to finalize a withdrawal that occurred on an L2.

\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#estimatefinalizewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to finalize a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateFinalizeWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n  account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n  targetChain: optimism, \\n  withdrawal: { ... }, \\n}) 
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateFinalizeWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n targetChain: optimism, \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#returns\",\"html\":\"\\n

bigint

\\n

The estimated gas.

\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateFinalizeWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#chain-optional\",\"html\":\"\\n\\n

The L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chain: mainnet, \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#gas-optional\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n,  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#proofsubmitter-optional\",\"html\":\"\\n\\n

The address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.

\\n

If unspecified, the sending account is the proof submitter.

\\n
const hash = await client.finalizeWithdrawal({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#proofsubmitter-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address of the proof submitter to use when finalizing the withdrawal. No-op when the OptimismPortal contract version is less than v3.\\nIf unspecified, the sending account is the proof submitter.\\nconst hash = await client.finalizeWithdrawal({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n proofSubmitter: '0xD15F47c16BD277ff2dee6a0bD4e418165231CB69', \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"proofSubmitter (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  withdrawal: { /* ... */ },\\n  nonce: 69, \\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  targetChain: optimism,\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#targetchain\",\"html\":\"\\n\\n

The L2 chain to execute the transaction on.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateFinalizeWithdrawalGas#withdrawal\",\"html\":\"\\n\\n

The withdrawal.

\\n
const hash = await client.estimateFinalizeWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ }, \\n  targetChain: optimism,\\n})
\",\"id\":\"pages/op-stack/actions/estimateFinalizeWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal.\\nconst hash = await client.estimateFinalizeWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateFinalizeWithdrawalGas\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json b/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json index 40b351192e..a977c6783e 100644 --- a/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json +++ b/site/.cache/search.index.3405278da4cf98f4440f2bbe61f787f95833831a2cc98ffed8dae4ed329c0166.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Switch the target chain in a wallet.\\n---\\n\\n# switchChain\\n\\nSwitch the target chain in a wallet.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n```\\n\\n:::\\n\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `number`\\n\\nThe Chain ID.\\n\\n## JSON-RPC Methods\\n\\n[`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"document\":[{\"href\":\"/docs/actions/wallet/switchChain#switchchain\",\"html\":\"\\n

Switch the target chain in a wallet.

\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#switchchain\",\"isPage\":true,\"text\":\"\\nSwitch the target chain in a wallet.\\n\",\"title\":\"switchChain\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/switchChain#usage\",\"html\":\"\\n
// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) 
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"switchChain\"]},{\"href\":\"/docs/actions/wallet/switchChain#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"switchChain\"]},{\"href\":\"/docs/actions/wallet/switchChain#id\",\"html\":\"\\n\\n

The Chain ID.

\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#id\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe Chain ID.\\n\",\"title\":\"id\",\"titles\":[\"switchChain\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/switchChain#json-rpc-methods\",\"html\":\"\\n

eth_switchEthereumChain

\",\"id\":\"pages/docs/actions/wallet/switchChain.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_switchEthereumChain\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"switchChain\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Switch the target chain in a wallet.\\n---\\n\\n# switchChain\\n\\nSwitch the target chain in a wallet.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n```\\n\\n:::\\n\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `number`\\n\\nThe Chain ID.\\n\\n## JSON-RPC Methods\\n\\n[`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/switchChain#switchchain\",\"html\":\"\\n

Switch the target chain in a wallet.

\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#switchchain\",\"isPage\":true,\"text\":\"\\nSwitch the target chain in a wallet.\\n\",\"title\":\"switchChain\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/switchChain#usage\",\"html\":\"\\n
// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) 
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: client.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"switchChain\"]},{\"href\":\"/docs/actions/wallet/switchChain#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"switchChain\"]},{\"href\":\"/docs/actions/wallet/switchChain#id\",\"html\":\"\\n\\n

The Chain ID.

\\n\",\"id\":\"pages/docs/actions/wallet/switchChain.md#id\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe Chain ID.\\n\",\"title\":\"id\",\"titles\":[\"switchChain\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/switchChain#json-rpc-methods\",\"html\":\"\\n

wallet_switchEthereumChain

\",\"id\":\"pages/docs/actions/wallet/switchChain.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\nwallet_switchEthereumChain\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"switchChain\"]}]}}" diff --git a/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json b/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json deleted file mode 100644 index 5b4a778b83..0000000000 --- a/site/.cache/search.index.3521fabc8f61e98e35413fdece97ff7c3be0f7ec507b450c8e06881f85a404c0.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Verifies that an Authorization object was signed by the provided address.\\n---\\n\\n# verifyAuthorization\\n\\nVerifies that an Authorization object was signed by the provided address.\\n\\n## Import\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { verifyAuthorization } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is valid for the provided Authorization object.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe address that signed the Authorization object.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \\n```\\n\\n### authorization\\n\\n- **Type:** `Authorization | SignedAuthorization`\\n\\nThe Authorization object to be verified.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \\n```\\n\\n### signature\\n\\n- **Type:** `Hex | ByteArray | Signature | SignedAuthorization`\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n\\n```ts twoslash\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/verifyAuthorization#verifyauthorization\",\"html\":\"\\n

Verifies that an Authorization object was signed by the provided address.

\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#verifyauthorization\",\"isPage\":true,\"text\":\"\\nVerifies that an Authorization object was signed by the provided address.\\n\",\"title\":\"verifyAuthorization\",\"titles\":[]},{\"href\":\"/experimental/eip7702/verifyAuthorization#import\",\"html\":\"\\n
import { verifyAuthorization } from 'viem/experimental'
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#import\",\"isPage\":false,\"text\":\"\\nimport { verifyAuthorization } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#usage\",\"html\":\"\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({ \\n  address: walletClient.account.address, \\n  authorization, \\n}) 
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({ \\n address: walletClient.account.address, \\n authorization, \\n}) import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#returns\",\"html\":\"\\n

boolean

\\n

Whether the signature is valid for the provided Authorization object.

\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is valid for the provided Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"verifyAuthorization\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#address\",\"html\":\"\\n\\n

The address that signed the Authorization object.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n  address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', \\n  authorization,\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe address that signed the Authorization object.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', \\n authorization,\\n}) \\n\",\"title\":\"address\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#authorization\",\"html\":\"\\n\\n

The Authorization object to be verified.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n  authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({\\n  address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n  authorization, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#authorization\",\"isPage\":false,\"text\":\"\\n\\nType: Authorization | SignedAuthorization\\n\\nThe Authorization object to be verified.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, \\n}) \\n\",\"title\":\"authorization\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/verifyAuthorization#signature\",\"html\":\"\\n\\n

The signature that was generated by signing the Authorization object with the address's private key.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n  authorization: {\\n    address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n    chainId: 1,\\n    nonce: 0,\\n  }\\n})\\n \\nconst valid = await verifyAuthorization({\\n  address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n  authorization: {\\n    address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n    chainId: 1,\\n    nonce: 0,\\n  },\\n  signature, \\n}) 
\",\"id\":\"pages/experimental/eip7702/verifyAuthorization.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex | ByteArray | Signature | SignedAuthorization\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n \\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"title\":\"signature\",\"titles\":[\"verifyAuthorization\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json b/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json index 129af5a7d9..77ff40f80a 100644 --- a/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json +++ b/site/.cache/search.index.36c6228ead52dd33d6c906a122785970cf25589be9b8a7bf8f0ea1c51642ca0f.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to prove a withdrawal that occurred on an L2.\\n---\\n\\n# estimateProveWithdrawalGas\\n\\nEstimates gas required to prove a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n l2OutputIndex: 4529n, // [!code hl]\\n outputRootProof: { ... }, // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawalProof: [ ... ], // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### l2OutputIndex \\n\\n- **Type:** `bigint`\\n\\nThe index of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, // [!code focus]\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### outputRootProof (optional)\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, // [!code focus]\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalProof\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#estimateprovewithdrawalgas\",\"html\":\"\\n

Estimates gas required to prove a withdrawal that occurred on an L2.

\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#estimateprovewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateProveWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n  account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n  l2OutputIndex: 4529n, \\n  outputRootProof: { ... }, \\n  targetChain: optimism, \\n  withdrawalProof: [ ... ], \\n  withdrawal: { ... }, \\n}) 
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n l2OutputIndex: 4529n, \\n outputRootProof: { ... }, \\n targetChain: optimism, \\n withdrawalProof: [ ... ], \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#returns\",\"html\":\"\\n

bigint

\\n

The estimated gas.

\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#chain-optional\",\"html\":\"\\n\\n

The L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chain: mainnet, \\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#gas-optional\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n,  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#l2outputindex\",\"html\":\"\\n\\n

The index of the L2 output. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n, \\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#l2outputindex\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"l2OutputIndex\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  nonce: 69, \\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#outputrootproof-optional\",\"html\":\"\\n\\n

The proof of the L2 output. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ }, \\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#outputrootproof-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"outputRootProof (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  targetChain: optimism,\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#targetchain\",\"html\":\"\\n\\n

The L2 chain to execute the transaction on.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawalproof\",\"html\":\"\\n\\n

The proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ], \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawalproof\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"withdrawalProof\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawal\",\"html\":\"\\n\\n

The withdrawal. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ }, \\n  targetChain: optimism,\\n})
\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Estimates gas required to prove a withdrawal that occurred on an L2.\\n---\\n\\n# estimateProveWithdrawalGas\\n\\nEstimates gas required to prove a withdrawal that occurred on an L2. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n\\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ // [!code hl]\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', // [!code hl]\\n l2OutputIndex: 4529n, // [!code hl]\\n outputRootProof: { ... }, // [!code hl]\\n targetChain: optimism, // [!code hl]\\n withdrawalProof: [ ... ], // [!code hl]\\n withdrawal: { ... }, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe estimated gas.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, // [!code focus]\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nGas limit for transaction execution on the L1. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### l2OutputIndex \\n\\n- **Type:** `bigint`\\n\\nThe index of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, // [!code focus]\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\\n### outputRootProof (optional)\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 output. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, // [!code focus]\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain to execute the transaction on.\\n\\n```ts\\nimport { mainnet } from 'viem/chains'\\n\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalProof\\n\\n- **Type:** `bigint`\\n\\nThe proof of the L2 withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], // [!code focus]\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n```\\n\\n### withdrawal\\n\\n- **Type:** `bigint`\\n\\nThe withdrawal. Typically derived from the [`buildProveWithdrawal` Action](/op-stack/actions/buildProveWithdrawal).\\n\\n```ts\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, // [!code focus]\\n targetChain: optimism,\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#estimateprovewithdrawalgas\",\"html\":\"\\n

Estimates gas required to prove a withdrawal that occurred on an L2.

\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#estimateprovewithdrawalgas\",\"isPage\":true,\"text\":\"\\nEstimates gas required to prove a withdrawal that occurred on an L2.\\n\",\"title\":\"estimateProveWithdrawalGas\",\"titles\":[]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n  account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n  l2OutputIndex: 4529n, \\n  outputRootProof: { ... }, \\n  targetChain: optimism, \\n  withdrawalProof: [ ... ], \\n  withdrawal: { ... }, \\n}) 
import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1 } from './config'\\n \\nconst gas = await publicClientL1.estimateProveWithdrawalGas({ \\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', \\n l2OutputIndex: 4529n, \\n outputRootProof: { ... }, \\n targetChain: optimism, \\n withdrawalProof: [ ... ], \\n withdrawal: { ... }, \\n}) import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\n// JSON-RPC Account\\nexport const [account] = await walletClientL1.getAddresses()\\n// Local Account\\nexport const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#returns\",\"html\":\"\\n

bigint

\\n

The estimated gas.

\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe estimated gas.\\n\",\"title\":\"Returns\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateProveWithdrawalGas\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#chain-optional\",\"html\":\"\\n\\n

The L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chain: mainnet, \\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nThe L1 chain. If there is a mismatch between the wallet's current chain & this chain, an error will be thrown.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chain: mainnet, \\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#gas-optional\",\"html\":\"\\n\\n

Gas limit for transaction execution on the L1.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n,  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nGas limit for transaction execution on the L1.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#l2outputindex\",\"html\":\"\\n\\n

The index of the L2 output. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n, \\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#l2outputindex\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe index of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n, \\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"l2OutputIndex\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  maxFeePerGas: parseGwei('20'), \\n  maxPriorityFeePerGas: parseGwei('2'),  \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n maxFeePerGas: parseGwei('20'), \\n maxPriorityFeePerGas: parseGwei('2'), \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  nonce: 69, \\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n nonce: 69, \\n targetChain: optimism,\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#outputrootproof-optional\",\"html\":\"\\n\\n

The proof of the L2 output. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ }, \\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#outputrootproof-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 output. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ }, \\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"outputRootProof (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  targetChain: optimism,\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Optimism Portal contract. Defaults to the Optimism Portal contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n targetChain: optimism,\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n})\\n\",\"title\":\"portalAddress (optional)\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#targetchain\",\"html\":\"\\n\\n

The L2 chain to execute the transaction on.

\\n
import { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ },\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain to execute the transaction on.\\nimport { mainnet } from 'viem/chains'\\n \\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ },\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawalproof\",\"html\":\"\\n\\n

The proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ], \\n  withdrawal: { /* ... */ },\\n  targetChain: optimism,\\n})
\\n\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawalproof\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe proof of the L2 withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ], \\n withdrawal: { /* ... */ },\\n targetChain: optimism,\\n})\\n\",\"title\":\"withdrawalProof\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]},{\"href\":\"/op-stack/actions/estimateProveWithdrawalGas#withdrawal\",\"html\":\"\\n\\n

The withdrawal. Typically derived from the buildProveWithdrawal Action.

\\n
const hash = await client.estimateProveWithdrawalGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  l2OutputIndex: 4529n,\\n  gas: 420_000n, \\n  outputRootProof: { /* ... */ },\\n  withdrawalProof: [ /* ... */ ],\\n  withdrawal: { /* ... */ }, \\n  targetChain: optimism,\\n})
\",\"id\":\"pages/op-stack/actions/estimateProveWithdrawalGas.md#withdrawal\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe withdrawal. Typically derived from the buildProveWithdrawal Action.\\nconst hash = await client.estimateProveWithdrawalGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n l2OutputIndex: 4529n,\\n gas: 420_000n, \\n outputRootProof: { /* ... */ },\\n withdrawalProof: [ /* ... */ ],\\n withdrawal: { /* ... */ }, \\n targetChain: optimism,\\n})\",\"title\":\"withdrawal\",\"titles\":[\"estimateProveWithdrawalGas\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json b/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json new file mode 100644 index 0000000000..7cc12a704a --- /dev/null +++ b/site/.cache/search.index.37ae70f10327a1a76161429d5289c7fe476ad23d0abc1e45e8555fe482780f38.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Requests to disconnect account(s).\\n---\\n\\n# disconnect\\n\\nRequests to disconnect account(s).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n```\\n\\n:::\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7846/disconnect#disconnect\",\"html\":\"\\n

Requests to disconnect account(s).

\\n\",\"id\":\"pages/experimental/erc7846/disconnect.md#disconnect\",\"isPage\":true,\"text\":\"\\nRequests to disconnect account(s).\\n\",\"title\":\"disconnect\",\"titles\":[]},{\"href\":\"/experimental/erc7846/disconnect#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() 
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())
\",\"id\":\"pages/experimental/erc7846/disconnect.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\",\"title\":\"Usage\",\"titles\":[\"disconnect\"]}]}}" diff --git a/site/.cache/search.index.3a31e6dc4b015681a4a104c699cc17bf3709db223b6b90f0e42a939b8e030cb9.json b/site/.cache/search.index.3a31e6dc4b015681a4a104c699cc17bf3709db223b6b90f0e42a939b8e030cb9.json deleted file mode 100644 index 212d25a51e..0000000000 --- a/site/.cache/search.index.3a31e6dc4b015681a4a104c699cc17bf3709db223b6b90f0e42a939b8e030cb9.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"# Contract Writes with EIP-7702\\n\\nThe guide below demonstrates how to perform Contract Writes with EIP-7702 to invoke Contract functions on an Externally Owned Account.\\n\\n## Overview\\n\\nHere is an end-to-end overview of how to perform a Contract Write to send a batch of Calls. We will break it down into [Steps](#steps) below.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as an option.\\n})\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::\\n\\n:::warning\\nEIP-7702 is currently not supported on Ethereum anvil or Testnets. For this example, we are using the `anvil` chain which interfaces with an [Anvil node](https://book.getfoundry.sh/anvil/) (a local Ethereum network).\\n:::\\n\\n## Steps\\n\\n### 0. Install & Run Anvil\\n\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an [Anvil node](https://book.getfoundry.sh/anvil/) for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\n\\n```bash\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n```\\n\\n### 1. Set up Smart Contract\\n\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will [create](https://book.getfoundry.sh/reference/forge/forge-init) and [deploy](https://book.getfoundry.sh/forge/deploying) a `BatchCallDelegation.sol` contract, however, you can use any existing deployed contract.\\n\\nFirstly, [deploy a Contract](https://book.getfoundry.sh/forge/deploying) to the Network with the following source:\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::warning\\n\\n**DO NOT USE IN PRODUCTION**\\n\\nThis contract is for demonstration purposes only to show how EIP-7702 works. If [someone else (Sponsor Account) is executing calls](#5-optional-use-a-sponsor) on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\\n:::\\n\\n### 2. Set up Client & Account\\n\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\n\\nThis code snippet uses the [Extending Client](/experimental/eip7702/client) guide.\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n### 3. Authorize Contract Designation\\n\\nWe will need to sign an Authorization to designate the Contract to the Account.\\n\\nIn the example below, we are using the `account` attached to the `walletClient` to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 4. Invoke Contract Function\\n\\nUsing our [Contract Instance](/docs/contract/getContract), we can now call the `execute` function on it to perform batch calls.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [[ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n } // [!code focus]\\n ]], // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 5. Optional: Use a Sponsor\\n\\nWe can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to \\\"sponsor\\\" the Transaction for the user (i.e. pay for their gas fees).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n account: sponsor, // [!code ++]\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n})\\n```\\n\\n```ts twoslash [config.ts]\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n:::\\n\",\"document\":[{\"href\":\"/experimental/eip7702/contract-writes#contract-writes-with-eip-7702\",\"html\":\"\\n

The guide below demonstrates how to perform Contract Writes with EIP-7702 to invoke Contract functions on an Externally Owned Account.

\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#contract-writes-with-eip-7702\",\"isPage\":true,\"text\":\"\\nThe guide below demonstrates how to perform Contract Writes with EIP-7702 to invoke Contract functions on an Externally Owned Account.\\n\",\"title\":\"Contract Writes with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/contract-writes#overview\",\"html\":\"\\n

Here is an end-to-end overview of how to perform a Contract Write to send a batch of Calls. We will break it down into Steps below.

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n  abi,\\n  address: walletClient.account.address,\\n  functionName: 'execute',\\n  args: [[\\n    {\\n      data: '0x',\\n      to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n      value: parseEther('0.001'), \\n    }, {\\n      data: '0x',\\n      to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n      value: parseEther('0.002'), \\n    }\\n  ]],\\n  authorizationList: [authorization],\\n  //                  ↑ 3. Pass the Authorization as an option.\\n})
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n  struct Call {\\n    bytes data;\\n    address to;\\n    uint256 value;\\n  }\\n \\n  function execute(Call[] calldata calls) external payable {\\n    for (uint256 i = 0; i < calls.length; i++) {\\n      Call memory call = calls[i];\\n      (bool success, ) = call.to.call{value: call.value}(call.data);\\n      require(success, "call reverted");\\n    }\\n  }\\n}
\\n\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#overview\",\"isPage\":false,\"text\":\"\\nHere is an end-to-end overview of how to perform a Contract Write to send a batch of Calls. We will break it down into Steps below.\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as an option.\\n})export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nEIP-7702 is currently not supported on Ethereum anvil or Testnets. For this example, we are using the anvil chain which interfaces with an Anvil node (a local Ethereum network).\\n\",\"title\":\"Overview\",\"titles\":[\"Contract Writes with EIP-7702\"]},{\"href\":\"/experimental/eip7702/contract-writes#steps\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#steps\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Steps\",\"titles\":[\"Contract Writes with EIP-7702\"]},{\"href\":\"/experimental/eip7702/contract-writes#0-install--run-anvil\",\"html\":\"\\n

EIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.

\\n
curl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague
\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#1-set-up-smart-contract\",\"html\":\"\\n

We will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.

\\n

Firstly, deploy a Contract to the Network with the following source:

\\n
pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n  struct Call {\\n    bytes data;\\n    address to;\\n    uint256 value;\\n  }\\n \\n  function execute(Call[] calldata calls) external payable {\\n    for (uint256 i = 0; i < calls.length; i++) {\\n      Call memory call = calls[i];\\n      (bool success, ) = call.to.call{value: call.value}(call.data);\\n      require(success, "call reverted");\\n    }\\n  }\\n}
\\n\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#1-set-up-smart-contract\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.\\nFirstly, deploy a Contract to the Network with the following source:\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nDO NOT USE IN PRODUCTIONThis contract is for demonstration purposes only to show how EIP-7702 works. If someone else (Sponsor Account) is executing calls on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\",\"title\":\"1. Set up Smart Contract\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#2-set-up-client--account\",\"html\":\"\\n

Next, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.

\\n

This code snippet uses the Extending Client guide.

\\n
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#2-set-up-client--account\",\"isPage\":false,\"text\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\nThis code snippet uses the Extending Client guide.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"2. Set up Client & Account\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#3-authorize-contract-designation\",\"html\":\"\\n

We will need to sign an Authorization to designate the Contract to the Account.

\\n

In the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n  contractAddress, \\n}) 
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#3-authorize-contract-designation\",\"isPage\":false,\"text\":\"\\nWe will need to sign an Authorization to designate the Contract to the Account.\\nIn the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"3. Authorize Contract Designation\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#4-invoke-contract-function\",\"html\":\"\\n

Using our Contract Instance, we can now call the execute function on it to perform batch calls.

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n})\\n \\nconst hash = await walletClient.writeContract({ \\n  abi, \\n  address: walletClient.account.address, \\n  functionName: 'execute', \\n  args: [[ \\n    { \\n      data: '0x', \\n      to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',  \\n      value: parseEther('0.001'),  \\n    }, { \\n      data: '0x', \\n      to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',  \\n      value: parseEther('0.002'),  \\n    } \\n  ]], \\n  authorizationList: [authorization], \\n}) 
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/contract-writes.md#4-invoke-contract-function\",\"isPage\":false,\"text\":\"\\nUsing our Contract Instance, we can now call the execute function on it to perform batch calls.\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\nconst hash = await walletClient.writeContract({ \\n abi, \\n address: walletClient.account.address, \\n functionName: 'execute', \\n args: [[ \\n { \\n data: '0x', \\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, { \\n data: '0x', \\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n } \\n ]], \\n authorizationList: [authorization], \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"4. Invoke Contract Function\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/contract-writes#5-optional-use-a-sponsor\",\"html\":\"\\n

We can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n  sponsor, \\n})\\n \\nconst hash = await walletClient.writeContract({\\n  account: sponsor, \\n  abi,\\n  address: walletClient.account.address,\\n  functionName: 'execute',\\n  args: [[\\n    {\\n      data: '0x',\\n      to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n      value: parseEther('0.001'), \\n    }, {\\n      data: '0x',\\n      to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n      value: parseEther('0.002'), \\n    }\\n  ]],\\n  authorizationList: [authorization],\\n})
// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
\",\"id\":\"pages/experimental/eip7702/contract-writes.md#5-optional-use-a-sponsor\",\"isPage\":false,\"text\":\"\\nWe can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, \\n})\\n \\nconst hash = await walletClient.writeContract({\\n account: sponsor, \\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n})// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\",\"title\":\"5. Optional: Use a Sponsor\",\"titles\":[\"Contract Writes with EIP-7702\",\"Steps\"]}]}}" diff --git a/site/.cache/search.index.3fbf30068515ecaffaf2755a133a35ccee70d681820c75181241bef4a38405cf.json b/site/.cache/search.index.3fbf30068515ecaffaf2755a133a35ccee70d681820c75181241bef4a38405cf.json new file mode 100644 index 0000000000..294e1cde93 --- /dev/null +++ b/site/.cache/search.index.3fbf30068515ecaffaf2755a133a35ccee70d681820c75181241bef4a38405cf.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Requests to add a Sub Account.\\n---\\n\\n# addSubAccount\\n\\nRequests to add a Sub Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md)\\n\\n[What is a Sub Account?](https://blog.base.dev/subaccounts)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\nThe created Sub Account.\\n\\n```ts\\ntype ReturnType = {\\n address: Address\\n factory?: Address | undefined\\n factoryData?: Hex | undefined\\n}\\n```\\n\\n## Parameters\\n\\n### New Accounts\\n\\nAllows the wallet to create a Sub Account with a set of known signing keys. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#createaccount)\\n\\n#### `keys`\\n\\nSet of signing keys that will belong to the Sub Account.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ // [!code focus]\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256' // [!code focus]\\n }], // [!code focus]\\n type: 'create',\\n})\\n```\\n\\n#### `keys.publicKey`\\n\\n- **Type:** `Hex`\\n\\nThe public key of the signing key. \\n\\n- This is a 32-byte hexadecimal string.\\n- For `type: \\\"address\\\"`, this is a 20-byte address.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n```\\n\\n#### `keys.type`\\n\\n- **Type:** `'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'`\\n\\nThe type of signing key.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256' // [!code focus]\\n }],\\n type: 'create',\\n})\\n```\\n\\n\\n### Deployed Accounts\\n\\nAn existing account that the user wants to link to their global account. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#deployedaccount)\\n\\n#### `address`\\n\\nAddress of the deployed account.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n type: 'deployed',\\n})\\n```\\n\\n#### `chainId`\\n\\nThe chain ID of the deployed account.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n type: 'deployed',\\n})\\n```\\n\\n### Undeployed Accounts\\n\\nAn account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#undeployedaccount)\\n\\n#### `address`\\n\\nAddress of the undeployed account.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n```\\n\\n#### `chainId`\\n\\nThe chain ID the account will be deployed on.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n```\\n\\n#### `factory`\\n\\nThe address of the factory contract.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', // [!code focus]\\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n```\\n\\n#### `factoryData`\\n\\nThe data to be passed to the factory contract.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', // [!code focus]\\n type: 'undeployed',\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7895/addSubAccount#addsubaccount\",\"html\":\"\\n

Requests to add a Sub Account. See more

\\n

What is a Sub Account?

\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#addsubaccount\",\"isPage\":true,\"text\":\"\\nRequests to add a Sub Account. See more\\nWhat is a Sub Account?\\n\",\"title\":\"addSubAccount\",\"titles\":[]},{\"href\":\"/experimental/erc7895/addSubAccount#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  keys: [{ \\n    publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n    type: 'address' \\n  }],\\n  type: 'create',\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"addSubAccount\"]},{\"href\":\"/experimental/erc7895/addSubAccount#returns\",\"html\":\"\\n

The created Sub Account.

\\n
type ReturnType = {\\n  address: Address\\n  factory?: Address | undefined\\n  factoryData?: Hex | undefined\\n}
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#returns\",\"isPage\":false,\"text\":\"\\nThe created Sub Account.\\ntype ReturnType = {\\n address: Address\\n factory?: Address | undefined\\n factoryData?: Hex | undefined\\n}\\n\",\"title\":\"Returns\",\"titles\":[\"addSubAccount\"]},{\"href\":\"/experimental/erc7895/addSubAccount#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"addSubAccount\"]},{\"href\":\"/experimental/erc7895/addSubAccount#new-accounts\",\"html\":\"\\n

Allows the wallet to create a Sub Account with a set of known signing keys. Learn more

\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#new-accounts\",\"isPage\":false,\"text\":\"\\nAllows the wallet to create a Sub Account with a set of known signing keys. Learn more\\n\",\"title\":\"New Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keys\",\"html\":\"\\n

Set of signing keys that will belong to the Sub Account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  keys: [{ \\n    publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n    type: 'p256'\\n  }], \\n  type: 'create',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keys\",\"isPage\":false,\"text\":\"\\nSet of signing keys that will belong to the Sub Account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }], \\n type: 'create',\\n})\\n\",\"title\":\"keys\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keyspublickey\",\"html\":\"\\n\\n

The public key of the signing key.

\\n\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  keys: [{\\n    publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n    type: 'p256'\\n  }],\\n  type: 'create',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keyspublickey\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe public key of the signing key.\\n\\nThis is a 32-byte hexadecimal string.\\nFor type: "address", this is a 20-byte address.\\n\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', \\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"title\":\"keys.publicKey\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#keystype\",\"html\":\"\\n\\n

The type of signing key.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  keys: [{\\n    publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n    type: 'p256'\\n  }],\\n  type: 'create',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#keystype\",\"isPage\":false,\"text\":\"\\n\\nType: 'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'\\n\\nThe type of signing key.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256'\\n }],\\n type: 'create',\\n})\\n\",\"title\":\"keys.type\",\"titles\":[\"addSubAccount\",\"Parameters\",\"New Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#deployed-accounts\",\"html\":\"\\n

An existing account that the user wants to link to their global account. Learn more

\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#deployed-accounts\",\"isPage\":false,\"text\":\"\\nAn existing account that the user wants to link to their global account. Learn more\\n\",\"title\":\"Deployed Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#address\",\"html\":\"\\n

Address of the deployed account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000', \\n  type: 'deployed',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#address\",\"isPage\":false,\"text\":\"\\nAddress of the deployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n type: 'deployed',\\n})\\n\",\"title\":\"address\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Deployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#chainid\",\"html\":\"\\n

The chain ID of the deployed account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000',\\n  chainId: 1, \\n  type: 'deployed',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#chainid\",\"isPage\":false,\"text\":\"\\nThe chain ID of the deployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n type: 'deployed',\\n})\\n\",\"title\":\"chainId\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Deployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#undeployed-accounts\",\"html\":\"\\n

An account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. Learn more

\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#undeployed-accounts\",\"isPage\":false,\"text\":\"\\nAn account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. Learn more\\n\",\"title\":\"Undeployed Accounts\",\"titles\":[\"addSubAccount\",\"Parameters\"]},{\"href\":\"/experimental/erc7895/addSubAccount#address-1\",\"html\":\"\\n

Address of the undeployed account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000', \\n  factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n  factoryData: '0xdeadbeef',\\n  type: 'undeployed',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#address-1\",\"isPage\":false,\"text\":\"\\nAddress of the undeployed account.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"address\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#chainid-1\",\"html\":\"\\n

The chain ID the account will be deployed on.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000',\\n  chainId: 1, \\n  factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n  factoryData: '0xdeadbeef',\\n  type: 'undeployed',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#chainid-1\",\"isPage\":false,\"text\":\"\\nThe chain ID the account will be deployed on.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, \\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"chainId\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#factory\",\"html\":\"\\n

The address of the factory contract.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000',\\n  factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n  factoryData: '0xdeadbeef',\\n  type: 'undeployed',\\n})
\\n\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#factory\",\"isPage\":false,\"text\":\"\\nThe address of the factory contract.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\\n\",\"title\":\"factory\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]},{\"href\":\"/experimental/erc7895/addSubAccount#factorydata\",\"html\":\"\\n

The data to be passed to the factory contract.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n  address: '0x0000000000000000000000000000000000000000',\\n  factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n  factoryData: '0xdeadbeef', \\n  type: 'undeployed',\\n})
\",\"id\":\"pages/experimental/erc7895/addSubAccount.md#factorydata\",\"isPage\":false,\"text\":\"\\nThe data to be passed to the factory contract.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', \\n type: 'undeployed',\\n})\",\"title\":\"factoryData\",\"titles\":[\"addSubAccount\",\"Parameters\",\"Undeployed Accounts\"]}]}}" diff --git a/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json b/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json index ec71e8cfa8..f770eb1ef6 100644 --- a/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json +++ b/site/.cache/search.index.4354998f49313748d674a7f74132135e5f9169a1153e99ccb73c45c4e1b4694b.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Returns the status and receipts of a call batch.\\n---\\n\\n# getCallsStatus\\n\\nReturns the status and receipts of a call batch that was sent via `sendCalls`.\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/1663ea2e7a683285f977eda51c32cec86553f585/EIPS/eip-5792.md#wallet_getcallsstatus)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletGetCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/experimental/eip5792/getCallsStatus#getcallsstatus\",\"html\":\"\\n

Returns the status and receipts of a call batch that was sent via sendCalls.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#getcallsstatus\",\"isPage\":true,\"text\":\"\\nReturns the status and receipts of a call batch that was sent via sendCalls.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ \\n  id: '0x1234567890abcdef',\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#returns\",\"html\":\"\\n

WalletGetCallsStatusReturnType

\\n

Status and receipts of the calls.

\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#id\",\"html\":\"\\n\\n

Identifier of the call batch.

\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Returns the status of a call batch.\\n---\\n\\n# getCallsStatus\\n\\nReturns the status of a call batch that was sent via `sendCalls`.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-5792#wallet_getcallsstatus)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletGetCallsStatusReturnType`\\n\\nStatus of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/experimental/eip5792/getCallsStatus#getcallsstatus\",\"html\":\"\\n

Returns the status of a call batch that was sent via sendCalls.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#getcallsstatus\",\"isPage\":true,\"text\":\"\\nReturns the status of a call batch that was sent via sendCalls.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n  id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log:   atomic: false,\\n \\n// @log:   chainId: 1,\\n \\n// @log:   id: '0x1234567890abcdef',\\n \\n// @log:   statusCode: 200,\\n \\n// @log:   status: 'success',\\n \\n// @log:   receipts: [{ ... }],\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ \\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#returns\",\"html\":\"\\n

WalletGetCallsStatusReturnType

\\n

Status of the calls.

\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletGetCallsStatusReturnType\\nStatus of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCallsStatus\"]},{\"href\":\"/experimental/eip5792/getCallsStatus#id\",\"html\":\"\\n\\n

Identifier of the call batch.

\",\"id\":\"pages/experimental/eip5792/getCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"getCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json b/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json index f1aaf73ec2..8e79e89d37 100644 --- a/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json +++ b/site/.cache/search.index.4799726544640763e588b9dc4a0711f5993750aa369b23d10c0f9eb3ff90eab2.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Serializes a ERC-6492 flavoured signature into hex format.\\n---\\n\\n# serializeErc6492Signature\\n\\nSerializes a [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature into hex format.\\n\\n## Import\\n\\n```ts\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex formatted signature.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\\n### data\\n\\n- **Type:** `Hex`\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\\n### signature\\n\\n- **Type:** `Hex`\\n\\nThe original signature.\",\"document\":[{\"href\":\"/docs/utilities/serializeErc6492Signature#serializeerc6492signature\",\"html\":\"\\n

Serializes a ERC-6492 flavoured signature into hex format.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#serializeerc6492signature\",\"isPage\":true,\"text\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.\\n\",\"title\":\"serializeErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/serializeErc6492Signature#import\",\"html\":\"\\n
import { serializeErc6492Signature } from 'viem/experimental'
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#usage\",\"html\":\"\\n
import { serializeErc6492Signature } from 'viem/experimental'\\n \\nserializeErc6492Signature({ \\n  address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n  data: '0xdeadbeef',\\n  signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/experimental'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"title\":\"Usage\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#returns\",\"html\":\"\\n

Hex

\\n

The hex formatted signature.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex formatted signature.\\n\",\"title\":\"Returns\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#address\",\"html\":\"\\n\\n

The ERC-4337 Account Factory or preparation address to use for counterfactual verification.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\",\"title\":\"address\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#data\",\"html\":\"\\n\\n

Calldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\",\"title\":\"data\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#signature\",\"html\":\"\\n\\n

The original signature.

\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe original signature.\",\"title\":\"signature\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Serializes a ERC-6492 flavoured signature into hex format.\\n---\\n\\n# serializeErc6492Signature\\n\\nSerializes a [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signature into hex format.\\n\\n## Import\\n\\n```ts\\nimport { serializeErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { serializeErc6492Signature } from 'viem/utils'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex formatted signature.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\\n### data\\n\\n- **Type:** `Hex`\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\\n### signature\\n\\n- **Type:** `Hex`\\n\\nThe original signature.\",\"document\":[{\"href\":\"/docs/utilities/serializeErc6492Signature#serializeerc6492signature\",\"html\":\"\\n

Serializes a ERC-6492 flavoured signature into hex format.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#serializeerc6492signature\",\"isPage\":true,\"text\":\"\\nSerializes a ERC-6492 flavoured signature into hex format.\\n\",\"title\":\"serializeErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/serializeErc6492Signature#import\",\"html\":\"\\n
import { serializeErc6492Signature } from 'viem/utils'
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#usage\",\"html\":\"\\n
import { serializeErc6492Signature } from 'viem/utils'\\n \\nserializeErc6492Signature({ \\n  address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n  data: '0xdeadbeef',\\n  signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"
\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { serializeErc6492Signature } from 'viem/utils'\\n \\nserializeErc6492Signature({ \\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// "0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492"\\n\",\"title\":\"Usage\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#returns\",\"html\":\"\\n

Hex

\\n

The hex formatted signature.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex formatted signature.\\n\",\"title\":\"Returns\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"serializeErc6492Signature\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#address\",\"html\":\"\\n\\n

The ERC-4337 Account Factory or preparation address to use for counterfactual verification.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n\",\"title\":\"address\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#data\",\"html\":\"\\n\\n

Calldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.

\\n\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to pass to deploy the ERC-4337 Account (if not deployed) for counterfactual verification.\\n\",\"title\":\"data\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]},{\"href\":\"/docs/utilities/serializeErc6492Signature#signature\",\"html\":\"\\n\\n

The original signature.

\",\"id\":\"pages/docs/utilities/serializeErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe original signature.\",\"title\":\"signature\",\"titles\":[\"serializeErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json b/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json new file mode 100644 index 0000000000..49c96af69a --- /dev/null +++ b/site/.cache/search.index.53a0c823bd426c844452a6c3437186ecdde21abea2145f9e955b8e44ac5d9fa3.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: atomic: {\\n// @log: status: 'supported',\\n// @log: },\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: atomic: {\\n// @log: status: 'supported',\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nThe chain ID to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/docs/actions/wallet/getCapabilities#getcapabilities\",\"html\":\"\\n

Extract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).

\\n

Read more

\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/getCapabilities#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n  account,\\n})\\n// @log: {\\n \\n// @log:   8453: {\\n \\n// @log:      atomic: {\\n \\n// @log:        status: 'supported',\\n \\n// @log:      },\\n \\n// @log:      paymasterService: {\\n \\n// @log:        supported: true,\\n \\n// @log:      },\\n \\n// @log:    },\\n \\n// @log:    84532: {\\n \\n// @log:      atomic: {\\n \\n// @log:        status: 'supported',\\n \\n// @log:      },\\n \\n// @log:    },\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: atomic: {\\n \\n// @log: status: 'supported',\\n \\n// @log: },\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: atomic: {\\n \\n// @log: status: 'supported',\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"getCapabilities\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#returns\",\"html\":\"\\n

WalletCapabilities

\\n

Capabilities of the wallet.

\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#account\",\"html\":\"\\n\\n

The account to get capabilities for.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/getCapabilities#chainid\",\"html\":\"\\n\\n

The chain ID to get capabilities for.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chainId: 8453, \\n})
\",\"id\":\"pages/docs/actions/wallet/getCapabilities.mdx#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe chain ID to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"title\":\"chainId\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json b/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json index d7928bfbc1..0776e1e944 100644 --- a/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json +++ b/site/.cache/search.index.55c1e9f27c243f681ad14bf92012b42203b29cfa1b684d3c1b3ce96b9f1cac98.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the current status of a withdrawal. \\n---\\n\\n# getWithdrawalStatus\\n\\nReturns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst status = await publicClientL1.getWithdrawalStatus({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n// \\\"ready-to-prove\\\" // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`\\\"waiting-to-prove\\\" | \\\"ready-to-prove\\\" | \\\"waiting-to-finalize\\\" | \\\"ready-to-finalize\\\" | \\\"finalized\\\"`\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getWithdrawalStatus#getwithdrawalstatus\",\"html\":\"\\n

Returns the current status of a withdrawal. Used for the Withdrawal flow.

\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#getwithdrawalstatus\",\"isPage\":true,\"text\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.\\n\",\"title\":\"getWithdrawalStatus\",\"titles\":[]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#usage\",\"html\":\"\\n
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n  receipt, \\n  targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#usage\",\"isPage\":false,\"text\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#returns\",\"html\":\"\\n

"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"

\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#returns\",\"isPage\":false,\"text\":\"\\n"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"\\n\",\"title\":\"Returns\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#receipt\",\"html\":\"\\n\\n

The transaction receipt.

\\n
const status = await publicClientL1.getWithdrawalStatus({ \\n  receipt, \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#l2outputoracleaddress-optional\",\"html\":\"\\n\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the current status of a withdrawal. \\n---\\n\\n# getWithdrawalStatus\\n\\nReturns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow. \\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst status = await publicClientL1.getWithdrawalStatus({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n// \\\"ready-to-prove\\\" // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`\\\"waiting-to-prove\\\" | \\\"ready-to-prove\\\" | \\\"waiting-to-finalize\\\" | \\\"ready-to-finalize\\\" | \\\"finalized\\\"`\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getWithdrawalStatus#getwithdrawalstatus\",\"html\":\"\\n

Returns the current status of a withdrawal. Used for the Withdrawal flow.

\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#getwithdrawalstatus\",\"isPage\":true,\"text\":\"\\nReturns the current status of a withdrawal. Used for the Withdrawal flow.\\n\",\"title\":\"getWithdrawalStatus\",\"titles\":[]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#usage\",\"html\":\"\\n
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n  receipt, \\n  targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#usage\",\"isPage\":false,\"text\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) \\n// "ready-to-prove" //import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#returns\",\"html\":\"\\n

"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"

\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#returns\",\"isPage\":false,\"text\":\"\\n"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"\\n\",\"title\":\"Returns\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getWithdrawalStatus\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#receipt\",\"html\":\"\\n\\n

The transaction receipt.

\\n
const status = await publicClientL1.getWithdrawalStatus({ \\n  receipt, \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst status = await publicClientL1.getWithdrawalStatus({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#l2outputoracleaddress-optional\",\"html\":\"\\n\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\\n\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getWithdrawalStatus#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const status = await publicClientL1.getWithdrawalStatus({\\n  receipt,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getWithdrawalStatus.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst status = await publicClientL1.getWithdrawalStatus({\\n receipt,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getWithdrawalStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json b/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json index ae3bd0d33f..934f90742a 100644 --- a/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json +++ b/site/.cache/search.index.5f136b1bcef80d0939b973ae4b2d2b99f7d60e561282ba22329cebb25dd9c42c.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Encodes a string, number, boolean or byte array to a hex value value.\\n---\\n\\n# toHex\\n\\nEncodes a string, number, boolean or byte array to a hex value value.\\n\\nShortcut Functions: \\n\\n- [numberToHex](#numbertohex)\\n- [stringToHex](#stringtohex)\\n- [bytesToHex](#bytestohex)\\n- [boolToHex](#booltohex)\\n\\n## Import\\n\\n```ts\\nimport { toHex } from 'viem'\\n```\\n\\n## Usage\\n\\n```ts\\nimport { toHex } from 'viem'\\n\\ntoHex(420)\\n// \\\"0x1a4\\\"\\n\\ntoHex('Hello world')\\n// \\\"0x48656c6c6f20776f726c642e\\\"\\n\\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\ntoHex(true)\\n// \\\"0x1\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex value.\\n\\n## Parameters\\n\\n### value\\n\\n- **Type:** `string | number | bigint | ByteArray`\\n\\nThe value to hex encode.\\n\\n```ts \\ntoHex(\\n 'Hello world' // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e'\\n```\\n\\n### options\\n\\n```ts \\ntoHex(\\n 'Hello world', \\n { size: 32 } // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n```\\n\\n## Shortcut Functions\\n\\n### numberToHex\\n\\n- **Type:** `number | bigint`\\n\\nEncodes a number value to a hex value.\\n\\n```ts\\nimport { numberToHex } from 'viem'\\n\\nnumberToHex(420)\\n// \\\"0x1a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n)\\n// \\\"0xc5cf39211876fb5e5884327fa56fc0b75\\\"\\n\\nnumberToHex(420, { size: 32 })\\n// \\\"0x00000000000000000000000000000000000000000000000000000000000001a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// \\\"0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75\\\"\\n```\\n\\n### stringToHex\\n\\n- **Type:** `string`\\n\\nEncodes a UTF-8 string value to a hex value.\\n\\n```ts\\nimport { stringToHex } from 'viem'\\n\\nstringToHex('Hello World!')\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nstringToHex('Hello World!', { size: 32 })\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### bytesToHex\\n\\n- **Type:** `ByteArray`\\n\\nEncodes a byte array to a hex value.\\n\\n```ts\\nimport { bytesToHex } from 'viem'\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### boolToHex\\n\\n- **Type:** `boolean`\\n\\nEncodes a boolean to a hex value.\\n\\n```ts\\nimport { boolToHex } from 'viem'\\n\\nboolToHex(true)\\n// \\\"0x1\\\"\\n\\nboolToHex(true, { size: 32 })\\n// \\\"0x0000000000000000000000000000000000000000000000000000000000000001\\\"\\n```\\n\",\"document\":[{\"href\":\"/docs/utilities/toHex#tohex\",\"html\":\"\\n

Encodes a string, number, boolean or byte array to a hex value value.

\\n

Shortcut Functions:

\\n\\n\",\"id\":\"pages/docs/utilities/toHex.md#tohex\",\"isPage\":true,\"text\":\"\\nEncodes a string, number, boolean or byte array to a hex value value.\\nShortcut Functions:\\n\\nnumberToHex\\nstringToHex\\nbytesToHex\\nboolToHex\\n\\n\",\"title\":\"toHex\",\"titles\":[]},{\"href\":\"/docs/utilities/toHex#import\",\"html\":\"\\n
import { toHex } from 'viem'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#import\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n\",\"title\":\"Import\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#usage\",\"html\":\"\\n
import { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#usage\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"title\":\"Usage\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#returns\",\"html\":\"\\n

Hex

\\n

The hex value.

\\n\",\"id\":\"pages/docs/utilities/toHex.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex value.\\n\",\"title\":\"Returns\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#value\",\"html\":\"\\n\\n

The value to hex encode.

\\n
toHex(\\n  'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#value\",\"isPage\":false,\"text\":\"\\n\\nType: string | number | bigint | ByteArray\\n\\nThe value to hex encode.\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"title\":\"value\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#options\",\"html\":\"\\n
toHex(\\n  'Hello world', \\n  { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#options\",\"isPage\":false,\"text\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"title\":\"options\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#shortcut-functions\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#shortcut-functions\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Shortcut Functions\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#numbertohex\",\"html\":\"\\n\\n

Encodes a number value to a hex value.

\\n
import { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#numbertohex\",\"isPage\":false,\"text\":\"\\n\\nType: number | bigint\\n\\nEncodes a number value to a hex value.\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"title\":\"numberToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#stringtohex\",\"html\":\"\\n\\n

Encodes a UTF-8 string value to a hex value.

\\n
import { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#stringtohex\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nEncodes a UTF-8 string value to a hex value.\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"stringToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#bytestohex\",\"html\":\"\\n\\n

Encodes a byte array to a hex value.

\\n
import { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n  { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#bytestohex\",\"isPage\":false,\"text\":\"\\n\\nType: ByteArray\\n\\nEncodes a byte array to a hex value.\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"bytesToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#booltohex\",\"html\":\"\\n\\n

Encodes a boolean to a hex value.

\\n
import { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"
\",\"id\":\"pages/docs/utilities/toHex.md#booltohex\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\n\\nEncodes a boolean to a hex value.\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"title\":\"boolToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Encodes a string, number, boolean or byte array to a hex value.\\n---\\n\\n# toHex\\n\\nEncodes a string, number, boolean or byte array to a hex value value.\\n\\nShortcut Functions: \\n\\n- [numberToHex](#numbertohex)\\n- [stringToHex](#stringtohex)\\n- [bytesToHex](#bytestohex)\\n- [boolToHex](#booltohex)\\n\\n## Import\\n\\n```ts\\nimport { toHex } from 'viem'\\n```\\n\\n## Usage\\n\\n```ts\\nimport { toHex } from 'viem'\\n\\ntoHex(420)\\n// \\\"0x1a4\\\"\\n\\ntoHex('Hello world')\\n// \\\"0x48656c6c6f20776f726c642e\\\"\\n\\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\ntoHex(true)\\n// \\\"0x1\\\"\\n```\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe hex value.\\n\\n## Parameters\\n\\n### value\\n\\n- **Type:** `string | number | bigint | ByteArray`\\n\\nThe value to hex encode.\\n\\n```ts \\ntoHex(\\n 'Hello world' // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e'\\n```\\n\\n### options\\n\\n```ts \\ntoHex(\\n 'Hello world', \\n { size: 32 } // [!code focus]\\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n```\\n\\n## Shortcut Functions\\n\\n### numberToHex\\n\\n- **Type:** `number | bigint`\\n\\nEncodes a number value to a hex value.\\n\\n```ts\\nimport { numberToHex } from 'viem'\\n\\nnumberToHex(420)\\n// \\\"0x1a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n)\\n// \\\"0xc5cf39211876fb5e5884327fa56fc0b75\\\"\\n\\nnumberToHex(420, { size: 32 })\\n// \\\"0x00000000000000000000000000000000000000000000000000000000000001a4\\\"\\n\\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// \\\"0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75\\\"\\n```\\n\\n### stringToHex\\n\\n- **Type:** `string`\\n\\nEncodes a UTF-8 string value to a hex value.\\n\\n```ts\\nimport { stringToHex } from 'viem'\\n\\nstringToHex('Hello World!')\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nstringToHex('Hello World!', { size: 32 })\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### bytesToHex\\n\\n- **Type:** `ByteArray`\\n\\nEncodes a byte array to a hex value.\\n\\n```ts\\nimport { bytesToHex } from 'viem'\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// \\\"0x48656c6c6f20576f726c6421\\\"\\n\\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// \\\"0x48656c6c6f20576f726c64210000000000000000000000000000000000000000\\\"\\n```\\n\\n### boolToHex\\n\\n- **Type:** `boolean`\\n\\nEncodes a boolean to a hex value.\\n\\n```ts\\nimport { boolToHex } from 'viem'\\n\\nboolToHex(true)\\n// \\\"0x1\\\"\\n\\nboolToHex(true, { size: 32 })\\n// \\\"0x0000000000000000000000000000000000000000000000000000000000000001\\\"\\n```\\n\",\"document\":[{\"href\":\"/docs/utilities/toHex#tohex\",\"html\":\"\\n

Encodes a string, number, boolean or byte array to a hex value value.

\\n

Shortcut Functions:

\\n\\n\",\"id\":\"pages/docs/utilities/toHex.md#tohex\",\"isPage\":true,\"text\":\"\\nEncodes a string, number, boolean or byte array to a hex value value.\\nShortcut Functions:\\n\\nnumberToHex\\nstringToHex\\nbytesToHex\\nboolToHex\\n\\n\",\"title\":\"toHex\",\"titles\":[]},{\"href\":\"/docs/utilities/toHex#import\",\"html\":\"\\n
import { toHex } from 'viem'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#import\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n\",\"title\":\"Import\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#usage\",\"html\":\"\\n
import { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#usage\",\"isPage\":false,\"text\":\"\\nimport { toHex } from 'viem'\\n \\ntoHex(420)\\n// "0x1a4"\\n \\ntoHex('Hello world')\\n// "0x48656c6c6f20776f726c642e"\\n \\ntoHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\ntoHex(true)\\n// "0x1"\\n\",\"title\":\"Usage\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#returns\",\"html\":\"\\n

Hex

\\n

The hex value.

\\n\",\"id\":\"pages/docs/utilities/toHex.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe hex value.\\n\",\"title\":\"Returns\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#value\",\"html\":\"\\n\\n

The value to hex encode.

\\n
toHex(\\n  'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#value\",\"isPage\":false,\"text\":\"\\n\\nType: string | number | bigint | ByteArray\\n\\nThe value to hex encode.\\ntoHex(\\n 'Hello world'\\n)\\n// '0x48656c6c6f20776f726c642e'\\n\",\"title\":\"value\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#options\",\"html\":\"\\n
toHex(\\n  'Hello world', \\n  { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'
\\n\",\"id\":\"pages/docs/utilities/toHex.md#options\",\"isPage\":false,\"text\":\"\\ntoHex(\\n 'Hello world', \\n { size: 32 } \\n)\\n// '0x48656c6c6f20776f726c642e0000000000000000000000000000000000000000'\\n\",\"title\":\"options\",\"titles\":[\"toHex\",\"Parameters\"]},{\"href\":\"/docs/utilities/toHex#shortcut-functions\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/toHex.md#shortcut-functions\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Shortcut Functions\",\"titles\":[\"toHex\"]},{\"href\":\"/docs/utilities/toHex#numbertohex\",\"html\":\"\\n\\n

Encodes a number value to a hex value.

\\n
import { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#numbertohex\",\"isPage\":false,\"text\":\"\\n\\nType: number | bigint\\n\\nEncodes a number value to a hex value.\\nimport { numberToHex } from 'viem'\\n \\nnumberToHex(420)\\n// "0x1a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n)\\n// "0xc5cf39211876fb5e5884327fa56fc0b75"\\n \\nnumberToHex(420, { size: 32 })\\n// "0x00000000000000000000000000000000000000000000000000000000000001a4"\\n \\nnumberToHex(4206942069420694206942069420694206942069n, { size: 32 })\\n// "0x0000000000000000000000000000000c5cf39211876fb5e5884327fa56fc0b75"\\n\",\"title\":\"numberToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#stringtohex\",\"html\":\"\\n\\n

Encodes a UTF-8 string value to a hex value.

\\n
import { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#stringtohex\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nEncodes a UTF-8 string value to a hex value.\\nimport { stringToHex } from 'viem'\\n \\nstringToHex('Hello World!')\\n// "0x48656c6c6f20576f726c6421"\\n \\nstringToHex('Hello World!', { size: 32 })\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"stringToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#bytestohex\",\"html\":\"\\n\\n

Encodes a byte array to a hex value.

\\n
import { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n  new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n  { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"
\\n\",\"id\":\"pages/docs/utilities/toHex.md#bytestohex\",\"isPage\":false,\"text\":\"\\n\\nType: ByteArray\\n\\nEncodes a byte array to a hex value.\\nimport { bytesToHex } from 'viem'\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n)\\n// "0x48656c6c6f20576f726c6421"\\n \\nbytesToHex(\\n new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]),\\n { size: 32 }\\n)\\n// "0x48656c6c6f20576f726c64210000000000000000000000000000000000000000"\\n\",\"title\":\"bytesToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]},{\"href\":\"/docs/utilities/toHex#booltohex\",\"html\":\"\\n\\n

Encodes a boolean to a hex value.

\\n
import { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"
\",\"id\":\"pages/docs/utilities/toHex.md#booltohex\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\n\\nEncodes a boolean to a hex value.\\nimport { boolToHex } from 'viem'\\n \\nboolToHex(true)\\n// "0x1"\\n \\nboolToHex(true, { size: 32 })\\n// "0x0000000000000000000000000000000000000000000000000000000000000001"\",\"title\":\"boolToHex\",\"titles\":[\"toHex\",\"Shortcut Functions\"]}]}}" diff --git a/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json b/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json deleted file mode 100644 index 3604dc284f..0000000000 --- a/site/.cache/search.index.628039001724442e7990dfee6f1399131e8692aac07ade9bf94d66702fd94b92.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Prepares an EIP-7702 Authorization for signing.\\n---\\n\\n# prepareAuthorization\\n\\nPrepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) for signing. \\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](/experimental/eip7702/signAuthorization) to sign over it.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: chainId: 1,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 1,\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### Explicit Scoping\\n\\nWe can explicitly set a `nonce` and/or `chainId` by supplying them as parameters:\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n// @log: {\\n// @log: chainId: 10,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 420,\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`Authorization`\\n\\nA prepared & unsigned Authorization object.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account`\\n\\nAccount to use to prepare the Authorization object. \\n\\nAccepts a [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n```\\n\\n### chainId (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `client.chain.id` or Network chain ID\\n\\nThe Chain ID to scope the Authorization to. If set to zero (`0`), then the Authorization will\\nbe valid on all chains.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \\n```\\n\\n### contractAddress\\n\\n- **Type:** `Address`\\n\\nThe target Contract to designate onto the Account.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \\n```\\n\\n### sponsor (optional)\\n\\n- **Type:** `true | Address | Account`\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `Address`\\n- **Default:** Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/prepareAuthorization#prepareauthorization\",\"html\":\"\\n

Prepares an EIP-7702 Authorization for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. nonce and chainId).

\\n

With the prepared Authorization object, you can use signAuthorization to sign over it.

\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#prepareauthorization\",\"isPage\":true,\"text\":\"\\nPrepares an EIP-7702 Authorization for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. nonce and chainId).\\nWith the prepared Authorization object, you can use signAuthorization to sign over it.\\n\",\"title\":\"prepareAuthorization\",\"titles\":[]},{\"href\":\"/experimental/eip7702/prepareAuthorization#usage\",\"html\":\"\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log:   chainId: 1,\\n \\n// @log:   contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log:   nonce: 1,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log: chainId: 1,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 1,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"prepareAuthorization\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#explicit-scoping\",\"html\":\"\\n

We can explicitly set a nonce and/or chainId by supplying them as parameters:

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  chainId: 10, \\n})\\n// @log: {\\n \\n// @log:   chainId: 10,\\n \\n// @log:   contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log:   nonce: 420,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#explicit-scoping\",\"isPage\":false,\"text\":\"\\nWe can explicitly set a nonce and/or chainId by supplying them as parameters:\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, \\n})\\n// @log: {\\n \\n// @log: chainId: 10,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 420,\\n \\n// @log: }\\n \\nconst signedAuthorization = await walletClient.signAuthorization(authorization)import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Explicit Scoping\",\"titles\":[\"prepareAuthorization\",\"Usage\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#returns\",\"html\":\"\\n

Authorization

\\n

A prepared & unsigned Authorization object.

\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nAuthorization\\nA prepared & unsigned Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareAuthorization\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareAuthorization\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#account\",\"html\":\"\\n\\n

Account to use to prepare the Authorization object.

\\n

Accepts a Local Account (Private Key, etc).

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  account: privateKeyToAccount('0x...'), \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account\\n\\nAccount to use to prepare the Authorization object.\\nAccepts a Local Account (Private Key, etc).\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"account\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#chainid-optional\",\"html\":\"\\n\\n

The Chain ID to scope the Authorization to. If set to zero (0), then the Authorization will\\nbe valid on all chains.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  chainId: 1, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#chainid-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: client.chain.id or Network chain ID\\n\\nThe Chain ID to scope the Authorization to. If set to zero (0), then the Authorization will\\nbe valid on all chains.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"title\":\"chainId (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#contractaddress\",\"html\":\"\\n\\n

The target Contract to designate onto the Account.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#contractaddress\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe target Contract to designate onto the Account.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"contractAddress\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#sponsor-optional\",\"html\":\"\\n\\n

Whether the EIP-7702 Transaction will be executed by another Account.

\\n

If not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  sponsor: true, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#sponsor-optional\",\"isPage\":false,\"text\":\"\\n\\nType: true | Address | Account\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"title\":\"sponsor (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/prepareAuthorization#nonce-optional\",\"html\":\"\\n\\n

The nonce to scope the Authorization to.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  nonce: 69, \\n}) 
\",\"id\":\"pages/experimental/eip7702/prepareAuthorization.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"title\":\"nonce (optional)\",\"titles\":[\"prepareAuthorization\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json b/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json index 57c0345579..2da613cbca 100644 --- a/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json +++ b/site/.cache/search.index.634ab4e65c52be00b794124ca577c79b287ec30e0af93915dd8f941b4f3c4da3.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Getting started with experimental features in Viem\\n---\\n\\n# Getting Started\\n\\nViem provides a set of experimental features through the `viem/experimental` entrypoint. Such features could include: \\n\\n- implementation of non-finalized EIP proposals.\\n- features that have not been adopted by the wider ecosystem.\\n- features that are not considered stable.\\n\\n:::warning[Warning]\\nIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\\n:::\\n\\n## Quick Start\\n\\n### 1. Set up your Client & Transport\\n\\nFirstly, set up your [Client](/docs/clients/intro) with a desired [Transport](/docs/clients/intro) & [Chain](/docs/chains/introduction).\\n\\n```ts\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!), // [!code focus]\\n}) // [!code focus]\\n```\\n\\n:::info\\nIn a production app, it is highly recommended to pass through your authenticated RPC provider URL (Infura, thirdweb, etc). If no URL is provided, viem will default to a public RPC provider. [Read more](/docs/clients/transports/http#usage).\\n:::\\n\\n### 2. Extend Client with Experimental Actions\\n\\nNow that you have a Client set up, you can extend it with Experimental Actions! [Read more.](/experimental/client)\\n\\n```ts\\nimport { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createWalletClient({\\n chain: base,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) // [!code focus]\\n```\\n\\n### 3. Consume Experimental Actions\\n\\nNow that you have an Experimental Client set up, you can now and consume [Actions](/experimental/eip5792/sendCalls)!\\n\\n```tsx\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n\\nconst id = await client.sendCalls({ // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [// [!code focus]\\n {// [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1'), // [!code focus]\\n },// [!code focus]\\n {// [!code focus]\\n data: '0xdeadbeef'// [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n}) // [!code focus]\\n```\\n\",\"document\":[{\"href\":\"/experimental#getting-started\",\"html\":\"\\n

Viem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:

\\n\\n\\n\",\"id\":\"pages/experimental.mdx#getting-started\",\"isPage\":true,\"text\":\"\\nViem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:\\n\\nimplementation of non-finalized EIP proposals.\\nfeatures that have not been adopted by the wider ecosystem.\\nfeatures that are not considered stable.\\n\\nWarningIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\\n\",\"title\":\"Getting Started\",\"titles\":[]},{\"href\":\"/experimental#quick-start\",\"html\":\"\\n\",\"id\":\"pages/experimental.mdx#quick-start\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Quick Start\",\"titles\":[\"Getting Started\"]},{\"href\":\"/experimental#1-set-up-your-client--transport\",\"html\":\"\\n

Firstly, set up your Client with a desired Transport & Chain.

\\n
import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nconst client = createWalletClient({ \\n  chain: mainnet, \\n  transport: custom(window.ethereum!), \\n}) 
\\n\\n\",\"id\":\"pages/experimental.mdx#1-set-up-your-client--transport\",\"isPage\":false,\"text\":\"\\nFirstly, set up your Client with a desired Transport & Chain.\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nconst client = createWalletClient({ \\n chain: mainnet, \\n transport: custom(window.ethereum!), \\n}) \\nIn a production app, it is highly recommended to pass through your authenticated RPC provider URL (Infura, thirdweb, etc). If no URL is provided, viem will default to a public RPC provider. Read more.\\n\",\"title\":\"1. Set up your Client & Transport\",\"titles\":[\"Getting Started\",\"Quick Start\"]},{\"href\":\"/experimental#2-extend-client-with-experimental-actions\",\"html\":\"\\n

Now that you have a Client set up, you can extend it with Experimental Actions! Read more.

\\n
import { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n  chain: base,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) 
\\n\",\"id\":\"pages/experimental.mdx#2-extend-client-with-experimental-actions\",\"isPage\":false,\"text\":\"\\nNow that you have a Client set up, you can extend it with Experimental Actions! Read more.\\nimport { createWalletClient, custom } from 'viem'\\nimport { base } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: base,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n\",\"title\":\"2. Extend Client with Experimental Actions\",\"titles\":[\"Getting Started\",\"Quick Start\"]},{\"href\":\"/experimental#3-consume-experimental-actions\",\"html\":\"\\n

Now that you have an Experimental Client set up, you can now and consume Actions!

\\n
import { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n \\nconst id = await client.sendCalls({ \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1'), \\n    },\\n    {\\n      data: '0xdeadbeef'\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ] \\n}) 
\",\"id\":\"pages/experimental.mdx#3-consume-experimental-actions\",\"isPage\":false,\"text\":\"\\nNow that you have an Experimental Client set up, you can now and consume Actions!\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions()) \\n \\nconst id = await client.sendCalls({ \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1'), \\n },\\n {\\n data: '0xdeadbeef'\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ] \\n}) \",\"title\":\"3. Consume Experimental Actions\",\"titles\":[\"Getting Started\",\"Quick Start\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Getting started with experimental features in Viem\\n---\\n\\n# Getting Started\\n\\nViem provides a set of experimental features through the `viem/experimental` entrypoint. Such features could include: \\n\\n- implementation of non-finalized EIP proposals.\\n- features that have not been adopted by the wider ecosystem.\\n- features that are not considered stable.\\n\\n:::warning[Warning]\\nIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\\n:::\\n\",\"document\":[{\"href\":\"/experimental#getting-started\",\"html\":\"\\n

Viem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:

\\n\\n\",\"id\":\"pages/experimental.mdx#getting-started\",\"isPage\":true,\"text\":\"\\nViem provides a set of experimental features through the viem/experimental entrypoint. Such features could include:\\n\\nimplementation of non-finalized EIP proposals.\\nfeatures that have not been adopted by the wider ecosystem.\\nfeatures that are not considered stable.\\n\\nWarningIt is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features.\",\"title\":\"Getting Started\",\"titles\":[]}]}}" diff --git a/site/.cache/search.index.670cefc2c410ad1b45d6db0342c815bb6c8d9765a496d369fe6f4f8047589abb.json b/site/.cache/search.index.670cefc2c410ad1b45d6db0342c815bb6c8d9765a496d369fe6f4f8047589abb.json new file mode 100644 index 0000000000..b6c73b6c4d --- /dev/null +++ b/site/.cache/search.index.670cefc2c410ad1b45d6db0342c815bb6c8d9765a496d369fe6f4f8047589abb.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Requests for the wallet to show information about a call batch.\\n---\\n\\n# showCallsStatus\\n\\nRequests for the wallet to show information about a call batch that was sent via `showCalls`.\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/1663ea2e7a683285f977eda51c32cec86553f585/EIPS/eip-5792.md#wallet_showcallsstatus)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`void`\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/showCallsStatus#showcallsstatus\",\"html\":\"\\n

Requests for the wallet to show information about a call batch that was sent via showCalls.

\\n

Read more.

\\n\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#showcallsstatus\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to show information about a call batch that was sent via showCalls.\\nRead more.\\n\",\"title\":\"showCallsStatus\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/showCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ \\n  id: '0x1234567890abcdef',\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ \\n id: '0x1234567890abcdef',\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"showCallsStatus\"]},{\"href\":\"/docs/actions/wallet/showCallsStatus#returns\",\"html\":\"\\n

void

\\n\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nvoid\\n\",\"title\":\"Returns\",\"titles\":[\"showCallsStatus\"]},{\"href\":\"/docs/actions/wallet/showCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"showCallsStatus\"]},{\"href\":\"/docs/actions/wallet/showCallsStatus#id\",\"html\":\"\\n\\n

Identifier of the call batch.

\",\"id\":\"pages/docs/actions/wallet/showCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\",\"title\":\"id\",\"titles\":[\"showCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json b/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json index 846f51ff49..341232a12b 100644 --- a/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json +++ b/site/.cache/search.index.75eff5b6a5be77c948adf48bcf17caddeda4dc4a0055404de9e6b5d38ae40f6f.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the time until the withdrawal transaction can be finalized.\\n---\\n\\n# getTimeToFinalize\\n\\nReturns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n\\nconst [message] = getWithdrawals(receipt)\\n\\nconst { // [!code hl]\\n period, // [!code hl]\\n seconds, // [!code hl]\\n timestamp, // [!code hl]\\n} = await publicClientL1.getTimeToFinalize({ // [!code hl]\\n withdrawalHash: message.withdrawalHash, // [!code hl]\\n targetChain: optimism // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ period: number, seconds: number, timestamp: number }`\\n\\n- `period` in seconds of the finalization stage (max wait time).\\n- `seconds` until the transaction can be finalized.\\n- `timestamp` of when the transaction can be finalized.\\n\\n## Parameters\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalHash\\n\\n- **Type:** `Hash`\\n\\nThe withdrawal hash.\\n\\n```ts\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToFinalize#gettimetofinalize\",\"html\":\"\\n

Returns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.

\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#gettimetofinalize\",\"isPage\":true,\"text\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.\\n\",\"title\":\"getTimeToFinalize\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToFinalize#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n  period, \\n  seconds, \\n  timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n  withdrawalHash: message.withdrawalHash, \\n  targetChain: optimism \\n}) 
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n period, \\n seconds, \\n timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: message.withdrawalHash, \\n targetChain: optimism \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#returns\",\"html\":\"\\n

{ period: number, seconds: number, timestamp: number }

\\n\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#returns\",\"isPage\":false,\"text\":\"\\n{ period: number, seconds: number, timestamp: number }\\n\\nperiod in seconds of the finalization stage (max wait time).\\nseconds until the transaction can be finalized.\\ntimestamp of when the transaction can be finalized.\\n\\n\",\"title\":\"Returns\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...', \\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#withdrawalhash\",\"html\":\"\\n\\n

The withdrawal hash.

\\n
const { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n  withdrawalHash: '0x...', \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#withdrawalhash\",\"isPage\":false,\"text\":\"\\n\\nType: Hash\\n\\nThe withdrawal hash.\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"title\":\"withdrawalHash\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#l2outputoracleaddress-optional\",\"html\":\"\\n\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...',\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...',\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Returns the time until the withdrawal transaction can be finalized.\\n---\\n\\n# getTimeToFinalize\\n\\nReturns the time until the withdrawal transaction can be finalized. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n\\nconst [message] = getWithdrawals(receipt)\\n\\nconst { // [!code hl]\\n period, // [!code hl]\\n seconds, // [!code hl]\\n timestamp, // [!code hl]\\n} = await publicClientL1.getTimeToFinalize({ // [!code hl]\\n withdrawalHash: message.withdrawalHash, // [!code hl]\\n targetChain: optimism // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ period: number, seconds: number, timestamp: number }`\\n\\n- `period` in seconds of the finalization stage (max wait time).\\n- `seconds` until the transaction can be finalized.\\n- `timestamp` of when the transaction can be finalized.\\n\\n## Parameters\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### withdrawalHash\\n\\n- **Type:** `Hash`\\n\\nThe withdrawal hash.\\n\\n```ts\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n```\\n\\n### portalAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.portal[chainId].address`\\n\\nThe address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `portalAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToFinalize#gettimetofinalize\",\"html\":\"\\n

Returns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.

\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#gettimetofinalize\",\"isPage\":true,\"text\":\"\\nReturns the time until the withdrawal transaction can be finalized. Used for the Withdrawal flow.\\n\",\"title\":\"getTimeToFinalize\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToFinalize#usage\",\"html\":\"\\n
import { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n  period, \\n  seconds, \\n  timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n  withdrawalHash: message.withdrawalHash, \\n  targetChain: optimism \\n}) 
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: custom(window.ethereum)\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#usage\",\"isPage\":false,\"text\":\"\\nimport { optimism } from 'viem/chains'\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x9a2f4283636ddeb9ac32382961b22c177c9e86dd3b283735c154f897b1a7ff4a',\\n})\\n \\nconst [message] = getWithdrawals(receipt)\\n \\nconst { \\n period, \\n seconds, \\n timestamp, \\n} = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: message.withdrawalHash, \\n targetChain: optimism \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\n \\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: custom(window.ethereum)\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#returns\",\"html\":\"\\n

{ period: number, seconds: number, timestamp: number }

\\n\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#returns\",\"isPage\":false,\"text\":\"\\n{ period: number, seconds: number, timestamp: number }\\n\\nperiod in seconds of the finalization stage (max wait time).\\nseconds until the transaction can be finalized.\\ntimestamp of when the transaction can be finalized.\\n\\n\",\"title\":\"Returns\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getTimeToFinalize\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...', \\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#withdrawalhash\",\"html\":\"\\n\\n

The withdrawal hash.

\\n
const { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n  withdrawalHash: '0x...', \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#withdrawalhash\",\"isPage\":false,\"text\":\"\\n\\nType: Hash\\n\\nThe withdrawal hash.\\nconst { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ \\n withdrawalHash: '0x...', \\n targetChain: optimism, \\n}) \\n\",\"title\":\"withdrawalHash\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#l2outputoracleaddress-optional\",\"html\":\"\\n\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...',\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\\n\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToFinalize#portaladdress-optional\",\"html\":\"\\n\\n

The address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a portalAddress is provided, the targetChain parameter becomes optional.

\\n
const { seconds } = await publicClientL1.getTimeToFinalize({\\n  withdrawalHash: '0x...',\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getTimeToFinalize.md#portaladdress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.portal[chainId].address\\n\\nThe address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a portalAddress is provided, the targetChain parameter becomes optional.\\nconst { seconds } = await publicClientL1.getTimeToFinalize({\\n withdrawalHash: '0x...',\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',\\n portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"portalAddress (optional)\",\"titles\":[\"getTimeToFinalize\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json b/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json new file mode 100644 index 0000000000..1480ecaf26 --- /dev/null +++ b/site/.cache/search.index.945bcb430d679db51c5e1c08ffcee267edebcf7bc9bc3d71de1337648e42eb16.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"# Extending Client with ERC-7895 Actions [Setting up your Viem Client]\\n\\nTo use the experimental functionality of [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md), you can extend your existing (or new) Viem Client with experimental [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) Actions.\\n\\n```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions()) // [!code focus]\\n\\nconst subAccount = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7895/client#extending-client-with-erc-7895-actions\",\"html\":\"
Setting up your Viem Client
\\n

To use the experimental functionality of ERC-7895, you can extend your existing (or new) Viem Client with experimental ERC-7895 Actions.

\\n
import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7895Actions()) \\n \\nconst subAccount = await client.addSubAccount({\\n  keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n  type: 'create',\\n})
\",\"id\":\"pages/experimental/erc7895/client.md#extending-client-with-erc-7895-actions\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of ERC-7895, you can extend your existing (or new) Viem Client with experimental ERC-7895 Actions.\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions()) \\n \\nconst subAccount = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\",\"title\":\"Extending Client with ERC-7895 Actions\",\"titles\":[]}]}}" diff --git a/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json b/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json index 0bf16cdde8..ceb017a4f8 100644 --- a/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json +++ b/site/.cache/search.index.9785e8f98c10d43dca38eccde8a4632d15df5bbd245537bce37f8920fc4d50cf.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Request permissions from a wallet to perform actions on behalf of a user.\\n---\\n\\n# grantPermissions\\n\\nRequest permissions from a wallet to perform actions on behalf of a user.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-7715)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`GrantPermissionsReturnType`\\n\\nResponse from the wallet after issuing permissions.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | undefined`\\n\\nThe Account to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### expiry\\n\\n- **Type:** `number`\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### permissions\\n\\n- **Type:** `Permission[]`\\n\\nSet of Permissions & Policies to grant to the user.\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n``` \\n\\n:::tip\\nThe `type` property is constrained to the canonical set of [Permission & Policy types as \\ndefined in ERC-7715](https://github.com/pedrouid/ERCs/blob/19c16341c57f6ac8770cb778d60845dcf30f6a40/ERCS/erc-7715.md#permissions), however, consumers can utilize a `custom` property on `type` as an escape hatch to use custom Permission or Policy types:\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n``` \\n:::\\n\\n### signer\\n\\n- **Type:** `Signer | undefined`\\n\\nCustom signer type to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n``` \",\"document\":[{\"href\":\"/experimental/erc7715/grantPermissions#grantpermissions\",\"html\":\"\\n

Request permissions from a wallet to perform actions on behalf of a user.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#grantpermissions\",\"isPage\":true,\"text\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"grantPermissions\",\"titles\":[]},{\"href\":\"/experimental/erc7715/grantPermissions#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n  account,\\n  expiry: 1716846083638,\\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#returns\",\"html\":\"\\n

GrantPermissionsReturnType

\\n

Response from the wallet after issuing permissions.

\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#returns\",\"isPage\":false,\"text\":\"\\nGrantPermissionsReturnType\\nResponse from the wallet after issuing permissions.\\n\",\"title\":\"Returns\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#account\",\"html\":\"\\n\\n

The Account to scope the permissions to.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account, \\n  expiry: 1716846083638,\\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | undefined\\n\\nThe Account to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#expiry\",\"html\":\"\\n\\n

The timestamp (in seconds) when the permissions will expire.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account,\\n  expiry: 1716846083638, \\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#expiry\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"expiry\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#permissions\",\"html\":\"\\n\\n

Set of Permissions & Policies to grant to the user.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account,\\n  expiry: 1716846083638,\\n  permissions: [ \\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n    { \\n      type: '  \\n//           ^| \\n    } \\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#permissions\",\"isPage\":false,\"text\":\"\\n\\nType: Permission[]\\n\\nSet of Permissions & Policies to grant to the user.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\nThe type property is constrained to the canonical set of Permission & Policy types as\\ndefined in ERC-7715, however, consumers can utilize a custom property on type as an escape hatch to use custom Permission or Policy types:// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, \\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n\",\"title\":\"permissions\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#signer\",\"html\":\"\\n\\n

Custom signer type to scope the permissions to.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  expiry: 1716846083638,\\n  permissions: [ \\n    { \\n      type: 'native-token-limit', \\n      data: { \\n        amount: parseEther('0.5'), \\n      }, \\n      required: true, \\n    }, \\n  ], \\n  signer: { \\n    type: 'key', \\n    data: { \\n      id: '...'\\n    } \\n  } \\n})
\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#signer\",\"isPage\":false,\"text\":\"\\n\\nType: Signer | undefined\\n\\nCustom signer type to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"title\":\"signer\",\"titles\":[\"grantPermissions\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Request permissions from a wallet to perform actions on behalf of a user.\\n---\\n\\n# grantPermissions\\n\\nRequest permissions from a wallet to perform actions on behalf of a user.\\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-7715)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`GrantPermissionsReturnType`\\n\\nResponse from the wallet after issuing permissions.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | undefined`\\n\\nThe Account to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### expiry\\n\\n- **Type:** `number`\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### permissions\\n\\n- **Type:** `Permission[]`\\n\\nSet of Permissions & Policies to grant to the user.\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\n``` \\n\\n:::tip\\nThe `type` property is constrained to the canonical set of [Permission & Policy types as \\ndefined in ERC-7715](https://github.com/pedrouid/ERCs/blob/19c16341c57f6ac8770cb778d60845dcf30f6a40/ERCS/erc-7715.md#permissions), however, consumers can utilize a `custom` property on `type` as an escape hatch to use custom Permission or Policy types:\\n\\n```ts twoslash\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n``` \\n:::\\n\\n### signer\\n\\n- **Type:** `Signer | undefined`\\n\\nCustom signer type to scope the permissions to.\\n\\n```ts twoslash\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n``` \",\"document\":[{\"href\":\"/experimental/erc7715/grantPermissions#grantpermissions\",\"html\":\"\\n

Request permissions from a wallet to perform actions on behalf of a user.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#grantpermissions\",\"isPage\":true,\"text\":\"\\nRequest permissions from a wallet to perform actions on behalf of a user.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"grantPermissions\",\"titles\":[]},{\"href\":\"/experimental/erc7715/grantPermissions#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n  account,\\n  expiry: 1716846083638,\\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ \\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#returns\",\"html\":\"\\n

GrantPermissionsReturnType

\\n

Response from the wallet after issuing permissions.

\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#returns\",\"isPage\":false,\"text\":\"\\nGrantPermissionsReturnType\\nResponse from the wallet after issuing permissions.\\n\",\"title\":\"Returns\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"grantPermissions\"]},{\"href\":\"/experimental/erc7715/grantPermissions#account\",\"html\":\"\\n\\n

The Account to scope the permissions to.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account, \\n  expiry: 1716846083638,\\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | undefined\\n\\nThe Account to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, \\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#expiry\",\"html\":\"\\n\\n

The timestamp (in seconds) when the permissions will expire.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account,\\n  expiry: 1716846083638, \\n  permissions: [\\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#expiry\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe timestamp (in seconds) when the permissions will expire.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, \\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"expiry\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#permissions\",\"html\":\"\\n\\n

Set of Permissions & Policies to grant to the user.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  account,\\n  expiry: 1716846083638,\\n  permissions: [ \\n    {\\n      type: 'native-token-transfer',\\n      data: {\\n        ticker: 'ETH',\\n      },\\n      policies: [\\n        {\\n          type: 'token-allowance',\\n          data: {\\n            allowance: parseEther('1'),\\n          },\\n        },\\n      ],\\n    },\\n    { \\n      type: '  \\n//           ^| \\n    } \\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#permissions\",\"isPage\":false,\"text\":\"\\n\\nType: Permission[]\\n\\nSet of Permissions & Policies to grant to the user.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ \\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\\nThe type property is constrained to the canonical set of Permission & Policy types as\\ndefined in ERC-7715, however, consumers can utilize a custom property on type as an escape hatch to use custom Permission or Policy types:// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, \\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\\n\",\"title\":\"permissions\",\"titles\":[\"grantPermissions\",\"Parameters\"]},{\"href\":\"/experimental/erc7715/grantPermissions#signer\",\"html\":\"\\n\\n

Custom signer type to scope the permissions to.

\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n  expiry: 1716846083638,\\n  permissions: [ \\n    { \\n      type: 'native-token-limit', \\n      data: { \\n        amount: parseEther('0.5'), \\n      }, \\n      required: true, \\n    }, \\n  ], \\n  signer: { \\n    type: 'key', \\n    data: { \\n      id: '...'\\n    } \\n  } \\n})
\",\"id\":\"pages/experimental/erc7715/grantPermissions.mdx#signer\",\"isPage\":false,\"text\":\"\\n\\nType: Signer | undefined\\n\\nCustom signer type to scope the permissions to.\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { \\n type: 'key', \\n data: { \\n id: '...'\\n } \\n } \\n})\",\"title\":\"signer\",\"titles\":[\"grantPermissions\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json b/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json index 7c3c9b623a..92c0b68e19 100644 --- a/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json +++ b/site/.cache/search.index.991f5a6d98be78d85be5e104c97f6ec6c330dad71e60d5b8f0a7e4437b6d7bef.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Prepares a transaction request for signing.\\n---\\n\\n# prepareTransactionRequest\\n\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`TransactionRequest`](/docs/glossary/types#transactionrequest)\\n\\nThe transaction request.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `prepareTransactionRequest`).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### nonceManager (optional)\\n\\n- **Type:** `NonceManager | undefined`\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n\\n```ts twoslash\\n// @noErrors\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\\n```\\n\\n### parameters (optional)\\n\\n- **Type:** `(\\\"fees\\\" | \\\"gas\\\" | \\\"nonce\\\" | \\\"type\\\")[]`\\n- **Default:** `[\\\"fees\\\", \\\"gas\\\", \\\"nonce\\\", \\\"type\\\"]`\\n\\nParameters to prepare. \\n\\nFor instance, if `[\\\"gas\\\", \\\"nonce\\\"]` is provided, then only the `gas` and `nonce` parameters will be prepared.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#preparetransactionrequest\",\"html\":\"\\n

Prepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.

\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#preparetransactionrequest\",\"isPage\":true,\"text\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\",\"title\":\"prepareTransactionRequest\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log:   account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log:   to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log:   maxFeePerGas: 150000000000n,\\n \\n// @log:   maxPriorityFeePerGas: 1000000000n,\\n \\n// @log:   nonce: 69,\\n \\n// @log:   type: 'eip1559',\\n \\n// @log:   value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log:   account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log:   to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log:   maxFeePerGas: 150000000000n,\\n \\n// @log:   maxPriorityFeePerGas: 1000000000n,\\n \\n// @log:   nonce: 69,\\n \\n// @log:   type: 'eip1559',\\n \\n// @log:   value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"prepareTransactionRequest\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#returns\",\"html\":\"\\n

TransactionRequest

\\n

The transaction request.

\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#returns\",\"isPage\":false,\"text\":\"\\nTransactionRequest\\nThe transaction request.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#to\",\"html\":\"\\n\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#authorizationlist-optional\",\"html\":\"\\n\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#blobs-optional\",\"html\":\"\\n\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#chain-optional\",\"html\":\"\\n\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#data-optional\",\"html\":\"\\n\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gasprice-optional\",\"html\":\"\\n\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#kzg-optional\",\"html\":\"\\n\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#noncemanager-optional\",\"html\":\"\\n\\n

Nonce Manager to consume and increment the Account nonce for the transaction request.

\\n
// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonceManager: account.nonceManager \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#noncemanager-optional\",\"isPage\":false,\"text\":\"\\n\\nType: NonceManager | undefined\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"title\":\"nonceManager (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters-optional\",\"html\":\"\\n\\n

Parameters to prepare.

\\n

For instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters-optional\",\"isPage\":false,\"text\":\"\\n\\nType: ("fees" | "gas" | "nonce" | "type")[]\\nDefault: ["fees", "gas", "nonce", "type"]\\n\\nParameters to prepare.\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"parameters (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#value-optional\",\"html\":\"\\n\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Prepares a transaction request for signing.\\n---\\n\\n# prepareTransactionRequest\\n\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount(...)\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n// @log: maxFeePerGas: 150000000000n,\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n// @log: nonce: 69,\\n// @log: type: 'eip1559',\\n// @log: value: 1000000000000000000n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`TransactionRequest`](/docs/glossary/types#transactionrequest)\\n\\nThe transaction request.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `prepareTransactionRequest`).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### nonceManager (optional)\\n\\n- **Type:** `NonceManager | undefined`\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n\\n```ts twoslash\\n// @noErrors\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\\n```\\n\\n### parameters (optional)\\n\\n- **Type:** `(\\\"fees\\\" | \\\"gas\\\" | \\\"nonce\\\" | \\\"type\\\")[]`\\n- **Default:** `[\\\"fees\\\", \\\"gas\\\", \\\"nonce\\\", \\\"type\\\"]`\\n\\nParameters to prepare. \\n\\nFor instance, if `[\\\"gas\\\", \\\"nonce\\\"]` is provided, then only the `gas` and `nonce` parameters will be prepared.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include config.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#preparetransactionrequest\",\"html\":\"\\n

Prepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.

\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#preparetransactionrequest\",\"isPage\":true,\"text\":\"\\nPrepares a transaction request for signing by populating a nonce, gas limit, fee values, and a transaction type.\\n\",\"title\":\"prepareTransactionRequest\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log:   account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log:   to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log:   maxFeePerGas: 150000000000n,\\n \\n// @log:   maxPriorityFeePerGas: 1000000000n,\\n \\n// @log:   nonce: 69,\\n \\n// @log:   type: 'eip1559',\\n \\n// @log:   value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n\",\"title\":\"Usage\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log:   account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log:   to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log:   maxFeePerGas: 150000000000n,\\n \\n// @log:   maxPriorityFeePerGas: 1000000000n,\\n \\n// @log:   nonce: 69,\\n \\n// @log:   type: 'eip1559',\\n \\n// @log:   value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n \\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n \\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n \\n// @log: maxFeePerGas: 150000000000n,\\n \\n// @log: maxPriorityFeePerGas: 1000000000n,\\n \\n// @log: nonce: 69,\\n \\n// @log: type: 'eip1559',\\n \\n// @log: value: 1000000000000000000n\\n \\n// @log: }\\n \\n \\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"prepareTransactionRequest\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#returns\",\"html\":\"\\n

TransactionRequest

\\n

The transaction request.

\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#returns\",\"isPage\":false,\"text\":\"\\nTransactionRequest\\nThe transaction request.\\n\",\"title\":\"Returns\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"prepareTransactionRequest\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#account\",\"html\":\"\\n\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#to\",\"html\":\"\\n\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#authorizationlist-optional\",\"html\":\"\\n\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#blobs-optional\",\"html\":\"\\n\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#chain-optional\",\"html\":\"\\n\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to prepareTransactionRequest).\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#data-optional\",\"html\":\"\\n\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gas-optional\",\"html\":\"\\n\\n

The gas limit of the transaction. If missing, it will be estimated.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  gas: 21000n, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#gasprice-optional\",\"html\":\"\\n\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#kzg-optional\",\"html\":\"\\n\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxfeepergas-optional\",\"html\":\"\\n\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#maxpriorityfeepergas-optional\",\"html\":\"\\n\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#nonce-optional\",\"html\":\"\\n\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#noncemanager-optional\",\"html\":\"\\n\\n

Nonce Manager to consume and increment the Account nonce for the transaction request.

\\n
// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonceManager: account.nonceManager \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#noncemanager-optional\",\"isPage\":false,\"text\":\"\\n\\nType: NonceManager | undefined\\n\\nNonce Manager to consume and increment the Account nonce for the transaction request.\\n// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager \\n})\\n\",\"title\":\"nonceManager (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#parameters-optional\",\"html\":\"\\n\\n

Parameters to prepare.

\\n

For instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#parameters-optional\",\"isPage\":false,\"text\":\"\\n\\nType: ("fees" | "gas" | "nonce" | "type")[]\\nDefault: ["fees", "gas", "nonce", "type"]\\n\\nParameters to prepare.\\nFor instance, if ["gas", "nonce"] is provided, then only the gas and nonce parameters will be prepared.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"parameters (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/prepareTransactionRequest#value-optional\",\"html\":\"\\n\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\",\"id\":\"pages/docs/actions/wallet/prepareTransactionRequest.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"prepareTransactionRequest\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json b/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json new file mode 100644 index 0000000000..5f00afb34d --- /dev/null +++ b/site/.cache/search.index.9a41434301d9178d1295f32c0d7867feeefdd01bab5466de35b81d25c697122e.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls to the network. \\n\\n[Read more](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ id: string, capabilities?: WalletCapabilities }`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\\n### forceAtomic\\n\\n- **Type:** `boolean`\\n- **Default:** `false`\\n\\nForce the calls to be executed atomically. [See more](https://eips.ethereum.org/EIPS/eip-5792#call-execution-atomicity)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\\n```\\n\\n### id\\n\\n- **Type:** `string`\\n\\nAttribute the call batch with an identifier.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/docs/actions/wallet/sendCalls#sendcalls\",\"html\":\"\\n

Requests for the wallet to sign and broadcast a batch of calls to the network.

\\n

Read more

\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls to the network.\\nRead more\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/sendCalls#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n  account,\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()
\\n

Notes:

\\n
    \\n
  • account and chain are top level properties as all calls should be sent by the same account and chain.
  • \\n
  • Properties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.
  • \\n
  • Read wallet_sendCalls on EIP-5792.
  • \\n
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\nNotes:\\n\\naccount and chain are top level properties as all calls should be sent by the same account and chain.\\nProperties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.\\nRead wallet_sendCalls on EIP-5792.\\n\\n\",\"title\":\"Usage\",\"titles\":[\"sendCalls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/sendCalls#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'approve',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        100n\\n      ],\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'transferFrom',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        '0x0000000000000000000000000000000000000000',\\n        100n\\n      ],\\n    },\\n  ],\\n})
export const wagmiAbi = [\\n  // ...\\n  {\\n    inputs: [],\\n    name: "mint",\\n    outputs: [],\\n    stateMutability: "nonpayable",\\n    type: "function",\\n  },\\n  // ...\\n] as const;
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"title\":\"Contract Calls\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/sendCalls#returns\",\"html\":\"\\n

{ id: string, capabilities?: WalletCapabilities }

\\n

The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.

\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#returns\",\"isPage\":false,\"text\":\"\\n{ id: string, capabilities?: WalletCapabilities }\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.\\n\",\"title\":\"Returns\",\"titles\":[\"sendCalls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendCalls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

The Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.

\\n

Accepts a JSON-RPC Account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#chain\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: walletClient.chain
  • \\n
\\n

The target chain to broadcast the calls.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet, \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#calls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

An array of calls to be signed and broadcasted.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsdata\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Calldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsto\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Recipient address of the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#callsvalue\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Value to send with the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/docs/actions/wallet/sendCalls#capabilities\",\"html\":\"\\n
    \\n
  • Type: WalletCapabilities
  • \\n
\\n

Capability metadata for the calls (e.g. specifying a paymaster).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  capabilities: { \\n    paymasterService: { \\n      url: 'https://...'\\n    } \\n  } \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#forceatomic\",\"html\":\"\\n
    \\n
  • Type: boolean
  • \\n
  • Default: false
  • \\n
\\n

Force the calls to be executed atomically. See more

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  forceAtomic: true, \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#forceatomic\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\nDefault: false\\n\\nForce the calls to be executed atomically. See more\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"title\":\"forceAtomic\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/sendCalls#id\",\"html\":\"\\n
    \\n
  • Type: string
  • \\n
\\n

Attribute the call batch with an identifier.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  id: '<my-batch-id>', \\n})
\",\"id\":\"pages/docs/actions/wallet/sendCalls.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nAttribute the call batch with an identifier.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"title\":\"id\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json b/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json index 1f6e27b024..2de65c3c40 100644 --- a/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json +++ b/site/.cache/search.index.a6cee08bb85ba38b95057bb460f174f4772127f6b9bb4c2a327f4b0e82e8085b.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: sessionKeys: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/getCapabilities#getcapabilities\",\"html\":\"\\n

Extract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCapabilities#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n  account,\\n})\\n// @log: {\\n \\n// @log:   8453: {\\n \\n// @log:      paymasterService: {\\n \\n// @log:        supported: true,\\n \\n// @log:      },\\n \\n// @log:      sessionKeys: {\\n \\n// @log:        supported: true,\\n \\n// @log:      },\\n \\n// @log:    },\\n \\n// @log:    84532: {\\n \\n// @log:       paymasterService: {\\n \\n// @log:         supported: true,\\n \\n// @log:       },\\n \\n// @log:    },\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: sessionKeys: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"getCapabilities\",\"Usage\"]},{\"href\":\"/experimental/eip5792/getCapabilities#returns\",\"html\":\"\\n

WalletCapabilities

\\n

Capabilities of the wallet.

\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

The account to get capabilities for.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})
\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Extract capabilities that a connected wallet supports.\\n---\\n\\n# getCapabilities\\n\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n// @log: 8453: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: sessionKeys: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: 84532: {\\n// @log: paymasterService: {\\n// @log: supported: true,\\n// @log: },\\n// @log: },\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `getCapabilities`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WalletCapabilities`\\n\\nCapabilities of the wallet.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Address`\\n\\nThe account to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nThe chain ID to get capabilities for.\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/getCapabilities#getcapabilities\",\"html\":\"\\n

Extract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#getcapabilities\",\"isPage\":true,\"text\":\"\\nExtract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc).\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"getCapabilities\",\"titles\":[]},{\"href\":\"/experimental/eip5792/getCapabilities#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n  account,\\n})\\n// @log: {\\n \\n// @log:   8453: {\\n \\n// @log:      paymasterService: {\\n \\n// @log:        supported: true,\\n \\n// @log:      },\\n \\n// @log:      sessionKeys: {\\n \\n// @log:        supported: true,\\n \\n// @log:      },\\n \\n// @log:    },\\n \\n// @log:    84532: {\\n \\n// @log:       paymasterService: {\\n \\n// @log:         supported: true,\\n \\n// @log:       },\\n \\n// @log:    },\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n \\n// @log: 8453: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: sessionKeys: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: 84532: {\\n \\n// @log: paymasterService: {\\n \\n// @log: supported: true,\\n \\n// @log: },\\n \\n// @log: },\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every getCapabilities, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"getCapabilities\",\"Usage\"]},{\"href\":\"/experimental/eip5792/getCapabilities#returns\",\"html\":\"\\n

WalletCapabilities

\\n

Capabilities of the wallet.

\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#returns\",\"isPage\":false,\"text\":\"\\nWalletCapabilities\\nCapabilities of the wallet.\\n\",\"title\":\"Returns\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getCapabilities\"]},{\"href\":\"/experimental/eip5792/getCapabilities#account\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

The account to get capabilities for.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})
\\n\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe account to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n})\\n\",\"title\":\"account\",\"titles\":[\"getCapabilities\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/getCapabilities#chainid\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

The chain ID to get capabilities for.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  chainId: 8453, \\n})
\",\"id\":\"pages/experimental/eip5792/getCapabilities.mdx#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe chain ID to get capabilities for.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, \\n})\",\"title\":\"chainId\",\"titles\":[\"getCapabilities\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json b/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json new file mode 100644 index 0000000000..252474f773 --- /dev/null +++ b/site/.cache/search.index.afc9f2d57a694d00671deb49232d80dc849c1c5ca6693193a119439075cc9089.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"# Extending Client with ERC-7846 Actions [Setting up your Viem Client]\\n\\nTo use the experimental functionality of [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846), you can extend your existing (or new) Viem Client with experimental [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846) Actions.\\n\\n```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental' // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions()) // [!code focus]\\n\\nconst hash = await client.connect()\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7846/client#extending-client-with-erc-7846-actions\",\"html\":\"
Setting up your Viem Client
\\n

To use the experimental functionality of ERC-7846, you can extend your existing (or new) Viem Client with experimental ERC-7846 Actions.

\\n
import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7846Actions()) \\n \\nconst hash = await client.connect()
\",\"id\":\"pages/experimental/erc7846/client.md#extending-client-with-erc-7846-actions\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of ERC-7846, you can extend your existing (or new) Viem Client with experimental ERC-7846 Actions.\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n \\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions()) \\n \\nconst hash = await client.connect()\",\"title\":\"Extending Client with ERC-7846 Actions\",\"titles\":[]}]}}" diff --git a/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json b/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json deleted file mode 100644 index 6c85ce238f..0000000000 --- a/site/.cache/search.index.b343ac0520aa2f6d1c551d73c10f316121186ad60a5fe2cfd9e0d4871c222d07.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: An Overview of EIP-7702\\n---\\n\\n# EIP-7702 Overview\\n\\nEIP-7702 is a proposal to add a new Transaction type to allow an EOA to designate a Smart Contract as its \\\"implementation\\\".\\n\\nThe main difference between an EIP-7702 Transaction and other transactions is the inclusion of a **\\\"authorization list\\\"** property, a set of `(chain_id, contract_address, nonce, y_parity, r, s)` tuples that depict what Contract bytecode(s) should be injected onto the Externally Owned Account during execution. \\n\\n:::note\\nIn Viem, you won't need to worry about constructing these Authorization Tuples manually as you can use [`signAuthorization`](/experimental/eip7702/signAuthorization) to generate them and use them in [Transaction APIs](/experimental/eip7702/contract-writes).\\n:::\\n\\nApplications of EIP-7702 include:\\n\\n- **Batching**: allowing multiple operations from the same user in one atomic transaction. One common example is an ERC-20 approval followed by spending that approval, a common workflow in DEXes that requires two transactions today. Advanced use cases of batching occasionally involve dependencies: the output of the first operation is part of the input to the second operation. [Example](/experimental/eip7702/contract-writes#5-invoke-contract-function)\\n- **Sponsorship**: account X pays for a transaction on behalf of account Y. Account X could be paid in some other ERC-20 for this service, or it could be an application operator including the transactions of its users for free. [Example](/experimental/eip7702/contract-writes#6-optional-use-a-sponsor)\\n- **Privilege de-escalation**: users can sign sub-keys, and give them specific permissions that are much weaker than global access to the account. For example, you could imagine a permission to spend ERC-20 tokens but not ETH, or to spend up to 1% of total balance per day, or to interact only with a specific application.\\n\\n## Next Steps\\n\\n- [Extending Client with EIP-7702](/experimental/eip7702/client)\\n- [Contract Writes](/experimental/eip7702/contract-writes)\\n- [Sending Transactions](/experimental/eip7702/sending-transactions)\",\"document\":[{\"href\":\"/experimental/eip7702#eip-7702-overview\",\"html\":\"\\n

EIP-7702 is a proposal to add a new Transaction type to allow an EOA to designate a Smart Contract as its "implementation".

\\n

The main difference between an EIP-7702 Transaction and other transactions is the inclusion of a "authorization list" property, a set of (chain_id, contract_address, nonce, y_parity, r, s) tuples that depict what Contract bytecode(s) should be injected onto the Externally Owned Account during execution.

\\n\\n

Applications of EIP-7702 include:

\\n
    \\n
  • Batching: allowing multiple operations from the same user in one atomic transaction. One common example is an ERC-20 approval followed by spending that approval, a common workflow in DEXes that requires two transactions today. Advanced use cases of batching occasionally involve dependencies: the output of the first operation is part of the input to the second operation. Example
  • \\n
  • Sponsorship: account X pays for a transaction on behalf of account Y. Account X could be paid in some other ERC-20 for this service, or it could be an application operator including the transactions of its users for free. Example
  • \\n
  • Privilege de-escalation: users can sign sub-keys, and give them specific permissions that are much weaker than global access to the account. For example, you could imagine a permission to spend ERC-20 tokens but not ETH, or to spend up to 1% of total balance per day, or to interact only with a specific application.
  • \\n
\\n\",\"id\":\"pages/experimental/eip7702.mdx#eip-7702-overview\",\"isPage\":true,\"text\":\"\\nEIP-7702 is a proposal to add a new Transaction type to allow an EOA to designate a Smart Contract as its "implementation".\\nThe main difference between an EIP-7702 Transaction and other transactions is the inclusion of a "authorization list" property, a set of (chain_id, contract_address, nonce, y_parity, r, s) tuples that depict what Contract bytecode(s) should be injected onto the Externally Owned Account during execution.\\nIn Viem, you won't need to worry about constructing these Authorization Tuples manually as you can use signAuthorization to generate them and use them in Transaction APIs.\\nApplications of EIP-7702 include:\\n\\nBatching: allowing multiple operations from the same user in one atomic transaction. One common example is an ERC-20 approval followed by spending that approval, a common workflow in DEXes that requires two transactions today. Advanced use cases of batching occasionally involve dependencies: the output of the first operation is part of the input to the second operation. Example\\nSponsorship: account X pays for a transaction on behalf of account Y. Account X could be paid in some other ERC-20 for this service, or it could be an application operator including the transactions of its users for free. Example\\nPrivilege de-escalation: users can sign sub-keys, and give them specific permissions that are much weaker than global access to the account. For example, you could imagine a permission to spend ERC-20 tokens but not ETH, or to spend up to 1% of total balance per day, or to interact only with a specific application.\\n\\n\",\"title\":\"EIP-7702 Overview\",\"titles\":[]},{\"href\":\"/experimental/eip7702#next-steps\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702.mdx#next-steps\",\"isPage\":false,\"text\":\"\\n\\nExtending Client with EIP-7702\\nContract Writes\\nSending Transactions\\n\",\"title\":\"Next Steps\",\"titles\":[\"EIP-7702 Overview\"]}]}}" diff --git a/site/.cache/search.index.b654ca18e6b4958637e7a796c30408d7e873dba362d30151d592d5193fb0e6ab.json b/site/.cache/search.index.b654ca18e6b4958637e7a796c30408d7e873dba362d30151d592d5193fb0e6ab.json index 5d42b1fb98..d4c07b0206 100644 --- a/site/.cache/search.index.b654ca18e6b4958637e7a796c30408d7e873dba362d30151d592d5193fb0e6ab.json +++ b/site/.cache/search.index.b654ca18e6b4958637e7a796c30408d7e873dba362d30151d592d5193fb0e6ab.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"# Chains\\n\\nThe following Viem chains are implemented on the OP Stack:\\n\\n```ts\\nimport {\\n base, // [!code hl]\\n baseGoerli, // [!code hl]\\n baseSepolia, // [!code hl]\\n fraxtal, // [!code hl]\\n fraxtalTestnet, // [!code hl]\\n ink, // [!code hl]\\n inkSepolia, // [!code hl]\\n optimism, // [!code hl]\\n optimismGoerli, // [!code hl]\\n optimismSepolia, // [!code hl]\\n soneium, // [!code hl]\\n soneiumMinato, // [!code hl]\\n zircuit, // [!code hl]\\n zircuitTestnet, // [!code hl]\\n zora, // [!code hl]\\n zoraSepolia, // [!code hl]\\n zoraTestnet, // [!code hl]\\n} from 'viem/chains'\\n```\\n\\n## Configuration\\n\\nViem exports OP Stack's chain [formatters](/docs/chains/formatters) & [serializers](/docs/chains/serializers) via `chainConfig`. This is useful if you need to define another chain which is implemented on the OP Stack.\\n\\n```ts\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n\\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/chains#chains\",\"html\":\"\\n

The following Viem chains are implemented on the OP Stack:

\\n
import {\\n  base, \\n  baseGoerli, \\n  baseSepolia, \\n  fraxtal, \\n  fraxtalTestnet, \\n  ink, \\n  inkSepolia, \\n  optimism, \\n  optimismGoerli, \\n  optimismSepolia, \\n  soneium, \\n  soneiumMinato, \\n  zircuit, \\n  zircuitTestnet, \\n  zora, \\n  zoraSepolia, \\n  zoraTestnet, \\n} from 'viem/chains'
\\n\",\"id\":\"pages/op-stack/chains.md#chains\",\"isPage\":true,\"text\":\"\\nThe following Viem chains are implemented on the OP Stack:\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"title\":\"Chains\",\"titles\":[]},{\"href\":\"/op-stack/chains#configuration\",\"html\":\"\\n

Viem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.

\\n
import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n  ...chainConfig,\\n  name: 'OP Stack Example',\\n  // ...\\n})
\",\"id\":\"pages/op-stack/chains.md#configuration\",\"isPage\":false,\"text\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"title\":\"Configuration\",\"titles\":[\"Chains\"]}]}}" +"{\"value\":{\"mdx\":\"# Chains\\n\\nThe following Viem chains are implemented on the OP Stack:\\n\\n```ts\\nimport {\\n base, // [!code hl]\\n baseGoerli, // [!code hl]\\n baseSepolia, // [!code hl]\\n fraxtal, // [!code hl]\\n fraxtalTestnet, // [!code hl]\\n ink, // [!code hl]\\n inkSepolia, // [!code hl]\\n optimism, // [!code hl]\\n optimismGoerli, // [!code hl]\\n optimismSepolia, // [!code hl]\\n soneium, // [!code hl]\\n soneiumMinato, // [!code hl]\\n unichain, // [!code hl]\\n unichainSepolia, // [!code hl]\\n zircuit, // [!code hl]\\n zircuitTestnet, // [!code hl]\\n zora, // [!code hl]\\n zoraSepolia, // [!code hl]\\n zoraTestnet, // [!code hl]\\n} from 'viem/chains'\\n```\\n\\n## Configuration\\n\\nViem exports OP Stack's chain [formatters](/docs/chains/formatters) & [serializers](/docs/chains/serializers) via `chainConfig`. This is useful if you need to define another chain which is implemented on the OP Stack.\\n\\n```ts\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n\\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/chains#chains\",\"html\":\"\\n

The following Viem chains are implemented on the OP Stack:

\\n
import {\\n  base, \\n  baseGoerli, \\n  baseSepolia, \\n  fraxtal, \\n  fraxtalTestnet, \\n  ink, \\n  inkSepolia, \\n  optimism, \\n  optimismGoerli, \\n  optimismSepolia, \\n  soneium, \\n  soneiumMinato, \\n  unichain, \\n  unichainSepolia, \\n  zircuit, \\n  zircuitTestnet, \\n  zora, \\n  zoraSepolia, \\n  zoraTestnet, \\n} from 'viem/chains'
\\n\",\"id\":\"pages/op-stack/chains.md#chains\",\"isPage\":true,\"text\":\"\\nThe following Viem chains are implemented on the OP Stack:\\nimport {\\n base, \\n baseGoerli, \\n baseSepolia, \\n fraxtal, \\n fraxtalTestnet, \\n ink, \\n inkSepolia, \\n optimism, \\n optimismGoerli, \\n optimismSepolia, \\n soneium, \\n soneiumMinato, \\n unichain, \\n unichainSepolia, \\n zircuit, \\n zircuitTestnet, \\n zora, \\n zoraSepolia, \\n zoraTestnet, \\n} from 'viem/chains'\\n\",\"title\":\"Chains\",\"titles\":[]},{\"href\":\"/op-stack/chains#configuration\",\"html\":\"\\n

Viem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.

\\n
import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n  ...chainConfig,\\n  name: 'OP Stack Example',\\n  // ...\\n})
\",\"id\":\"pages/op-stack/chains.md#configuration\",\"isPage\":false,\"text\":\"\\nViem exports OP Stack's chain formatters & serializers via chainConfig. This is useful if you need to define another chain which is implemented on the OP Stack.\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/op-stack'\\n \\nexport const opStackExample = defineChain({\\n ...chainConfig,\\n name: 'OP Stack Example',\\n // ...\\n})\",\"title\":\"Configuration\",\"titles\":[\"Chains\"]}]}}" diff --git a/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json b/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json deleted file mode 100644 index d792dd272c..0000000000 --- a/site/.cache/search.index.b70631e7b2e1dd809459791d27f40f96d919c40c0b29d88f733e9c87985ceeb6.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Signs an EIP-7702 Authorization object.\\n---\\n\\n# signAuthorization\\n\\nSigns an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702). The signed Authorization can be used in Transaction APIs like [`sendTransaction`](/docs/actions/wallet/sendTransaction#authorizationlist-optional) and [`writeContract`](/docs/contract/writeContract#authorizationlist-optional) to inject the authorized Contract bytecode(s) into an Account at the time of execution.\\n\\n## Usage\\n\\nA Contract can be authorized by supplying a `contractAddress`. By default, it will be signed over the Account's next available Nonce and the current Chain ID. You can also [explicitly set the `nonce` and `chainId`](#scoping).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: chainId: 1,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 1,\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n// @log: yParity: 0,\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### Explicit Scoping\\n\\nWe can explicitly sign over a provided `nonce` and/or `chainId` by supplying them as parameters:\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n// @log: {\\n// @log: chainId: 10,\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n// @log: nonce: 420,\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n// @log: yParity: 0,\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`SignedAuthorization`\\n\\nA signed Authorization object.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account`\\n\\nAccount to use to authorize injection of the [Contract (`authorization`)](#authorization) onto the Account.\\n\\nAccepts a [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n```\\n\\n### chainId (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `client.chain.id` or Network chain ID\\n\\nThe Chain ID to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \\n```\\n\\n### contractAddress\\n\\n- **Type:** `Address`\\n\\nThe target Contract to inject onto the Account.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \\n```\\n\\n### sponsor (optional)\\n\\n- **Type:** `true | Address | Account`\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `Address`\\n- **Default:** Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n\\n```ts twoslash\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/signAuthorization#signauthorization\",\"html\":\"\\n

Signs an EIP-7702 Authorization. The signed Authorization can be used in Transaction APIs like sendTransaction and writeContract to inject the authorized Contract bytecode(s) into an Account at the time of execution.

\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#signauthorization\",\"isPage\":true,\"text\":\"\\nSigns an EIP-7702 Authorization. The signed Authorization can be used in Transaction APIs like sendTransaction and writeContract to inject the authorized Contract bytecode(s) into an Account at the time of execution.\\n\",\"title\":\"signAuthorization\",\"titles\":[]},{\"href\":\"/experimental/eip7702/signAuthorization#usage\",\"html\":\"\\n

A Contract can be authorized by supplying a contractAddress. By default, it will be signed over the Account's next available Nonce and the current Chain ID. You can also explicitly set the nonce and chainId.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log:   chainId: 1,\\n \\n// @log:   contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log:   nonce: 1,\\n \\n// @log:   r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log:   s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log:   yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n  authorizationList: [authorization],\\n  data: '0xdeadbeef',\\n  to: walletClient.account.address,\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#usage\",\"isPage\":false,\"text\":\"\\nA Contract can be authorized by supplying a contractAddress. By default, it will be signed over the Account's next available Nonce and the current Chain ID. You can also explicitly set the nonce and chainId.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n// @log: {\\n \\n// @log: chainId: 1,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 1,\\n \\n// @log: r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log: s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log: yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"signAuthorization\"]},{\"href\":\"/experimental/eip7702/signAuthorization#explicit-scoping\",\"html\":\"\\n

We can explicitly sign over a provided nonce and/or chainId by supplying them as parameters:

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  chainId: 10, \\n  nonce: 420, \\n})\\n// @log: {\\n \\n// @log:   chainId: 10,\\n \\n// @log:   contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log:   nonce: 420,\\n \\n// @log:   r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log:   s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log:   yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n  authorizationList: [authorization],\\n  data: '0xdeadbeef',\\n  to: walletClient.account.address,\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#explicit-scoping\",\"isPage\":false,\"text\":\"\\nWe can explicitly sign over a provided nonce and/or chainId by supplying them as parameters:\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, \\n nonce: 420, \\n})\\n// @log: {\\n \\n// @log: chainId: 10,\\n \\n// @log: contractAddress: "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2",\\n \\n// @log: nonce: 420,\\n \\n// @log: r: "0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1",\\n \\n// @log: s: "0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08",\\n \\n// @log: yParity: 0,\\n \\n// @log: }\\n \\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Explicit Scoping\",\"titles\":[\"signAuthorization\",\"Usage\"]},{\"href\":\"/experimental/eip7702/signAuthorization#returns\",\"html\":\"\\n

SignedAuthorization

\\n

A signed Authorization object.

\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nSignedAuthorization\\nA signed Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"signAuthorization\"]},{\"href\":\"/experimental/eip7702/signAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signAuthorization\"]},{\"href\":\"/experimental/eip7702/signAuthorization#account\",\"html\":\"\\n
    \\n
  • Type: Account
  • \\n
\\n

Account to use to authorize injection of the Contract (authorization) onto the Account.

\\n

Accepts a Local Account (Private Key, etc).

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  account: privateKeyToAccount('0x...'), \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account\\n\\nAccount to use to authorize injection of the Contract (authorization) onto the Account.\\nAccepts a Local Account (Private Key, etc).\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"account\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#chainid-optional\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
  • Default: client.chain.id or Network chain ID
  • \\n
\\n

The Chain ID to scope the Authorization to.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  chainId: 1, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#chainid-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: client.chain.id or Network chain ID\\n\\nThe Chain ID to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, \\n}) \\n\",\"title\":\"chainId (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#contractaddress\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

The target Contract to inject onto the Account.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#contractaddress\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nThe target Contract to inject onto the Account.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \\n\",\"title\":\"contractAddress\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#sponsor-optional\",\"html\":\"\\n
    \\n
  • Type: true | Address | Account
  • \\n
\\n

Whether the EIP-7702 Transaction will be executed by another Account.

\\n

If not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  sponsor: true, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#sponsor-optional\",\"isPage\":false,\"text\":\"\\n\\nType: true | Address | Account\\n\\nWhether the EIP-7702 Transaction will be executed by another Account.\\nIf not specified, it will be assumed that the EIP-7702 Transaction will be executed by the Account that signed the Authorization.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, \\n}) \\n\",\"title\":\"sponsor (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/signAuthorization#nonce-optional\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
  • Default: Account's next available nonce.
  • \\n
\\n

The nonce to scope the Authorization to.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  account: privateKeyToAccount('0x...'),\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n  nonce: 69, \\n}) 
\",\"id\":\"pages/experimental/eip7702/signAuthorization.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: Account's next available nonce.\\n\\nThe nonce to scope the Authorization to.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, \\n}) \",\"title\":\"nonce (optional)\",\"titles\":[\"signAuthorization\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json b/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json index de4b532337..456ab4a922 100644 --- a/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json +++ b/site/.cache/search.index.be15d78cb36969875dbf319a555bc3c2e341c33a79ce26bf5b0954a8567d0597.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"# decodeAbiParameters [Decodes ABI encoded data.]\\n\\nDecodes ABI encoded data using the [ABI specification](https://solidity.readthedocs.io/en/latest/abi-spec), given a set of ABI parameters (`inputs`/`outputs`) and the encoded ABI data.\\n\\nThe `decodeAbiParameters` function is used by the other contract decoding utilities (ie. `decodeFunctionData`, `decodeEventLog`, etc).\\n\\n## Install\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n```\\n\\n## Usage\\n\\nThe `decodeAbiParameters` function takes in two parameters:\\n\\n- a set of ABI Parameters (`params`), that can be in the shape of the `inputs` or `outputs` attribute of an ABI Item.\\n- the ABI encoded data (`data`) that correspond to the given `params`.\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n### Human Readable\\n\\nYou can also pass in [Human Readable](/docs/glossary/terms#human-readable-abi) parameters with the [`parseAbiParameters` utility](/docs/abi/parseAbiParameters).\\n\\n```ts\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n## Return Value\\n\\nThe decoded data. Type is inferred from the ABI.\\n\\n## Parameters\\n\\n### params\\n\\n- **Type**: [`AbiParameter[]`](/docs/glossary/types#abiparameter)\\n\\nThe set of ABI parameters to decode against `data`, in the shape of the `inputs` or `outputs` attribute of an ABI event/function.\\n\\nThese parameters must include valid [ABI types](https://docs.soliditylang.org/en/develop/abi-spec#types).\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], // [!code focus]\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n```\\n\\n### data\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ABI encoded data.\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', // [!code focus]\\n)\\n```\\n\\n## More Examples\\n\\n### Simple struct\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { abi } from './abi'\\n\\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }\\n```\\n\\n```ts [abi.ts]\\nexport const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as const\\n```\\n\\n```solidity [Example.sol]\\ncontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n\\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}\\n```\\n\\n:::\",\"document\":[{\"href\":\"/docs/abi/decodeAbiParameters#decodeabiparameters\",\"html\":\"
Decodes ABI encoded data.
\\n

Decodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.

\\n

The decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).

\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#decodeabiparameters\",\"isPage\":true,\"text\":\"Decodes ABI encoded data.\\nDecodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.\\nThe decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).\\n\",\"title\":\"decodeAbiParameters\",\"titles\":[]},{\"href\":\"/docs/abi/decodeAbiParameters#install\",\"html\":\"\\n
import { decodeAbiParameters } from 'viem'
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#install\",\"isPage\":false,\"text\":\"\\nimport { decodeAbiParameters } from 'viem'\\n\",\"title\":\"Install\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#usage\",\"html\":\"\\n

The decodeAbiParameters function takes in two parameters:

\\n
    \\n
  • a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.
  • \\n
  • the ABI encoded data (data) that correspond to the given params.
  • \\n
\\n
import { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n  [\\n    { name: 'x', type: 'string' },\\n    { name: 'y', type: 'uint' },\\n    { name: 'z', type: 'bool' }\\n  ],\\n  '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#usage\",\"isPage\":false,\"text\":\"\\nThe decodeAbiParameters function takes in two parameters:\\n\\na set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\\nthe ABI encoded data (data) that correspond to the given params.\\n\\nimport { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Usage\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#human-readable\",\"html\":\"\\n

You can also pass in Human Readable parameters with the parseAbiParameters utility.

\\n
import { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n  parseAbiParameters('string x, uint y, bool z'),\\n  '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#human-readable\",\"isPage\":false,\"text\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Human Readable\",\"titles\":[\"decodeAbiParameters\",\"Usage\"]},{\"href\":\"/docs/abi/decodeAbiParameters#return-value\",\"html\":\"\\n

The decoded data. Type is inferred from the ABI.

\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#return-value\",\"isPage\":false,\"text\":\"\\nThe decoded data. Type is inferred from the ABI.\\n\",\"title\":\"Return Value\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#params\",\"html\":\"\\n\\n

The set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.

\\n

These parameters must include valid ABI types.

\\n
const values = decodeAbiParameters(\\n  [{ name: 'x', type: 'uint32' }], \\n  '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#params\",\"isPage\":false,\"text\":\"\\n\\nType: AbiParameter[]\\n\\nThe set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.\\nThese parameters must include valid ABI types.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"title\":\"params\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#data\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

The ABI encoded data.

\\n
const values = decodeAbiParameters(\\n  [{ name: 'x', type: 'uint32' }],\\n  '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ABI encoded data.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"title\":\"data\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#more-examples\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#more-examples\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"More Examples\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#simple-struct\",\"html\":\"\\n
import { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n  abi[0].outputs,\\n  '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }
export const abi = [\\n  {\\n    name: 'staticStruct',\\n    outputs: [\\n      {\\n        components: [\\n          {\\n            name: 'x',\\n            type: 'uint256',\\n          },\\n          {\\n            name: 'y',\\n            type: 'bool',\\n          },\\n          {\\n            name: 'z',\\n            type: 'address',\\n          },\\n        ],\\n        name: 'foo',\\n        type: 'tuple',\\n      },\\n    ],\\n  }\\n] as const
contract Example {\\n  struct Foo {\\n    uint256 x;\\n    bool y;\\n    address z;\\n  }\\n \\n  function staticStruct(...) returns (Foo calldata foo) { \\n    ... \\n    return foo;\\n  }\\n}
\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#simple-struct\",\"isPage\":false,\"text\":\"\\nimport { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }export const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as constcontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n \\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}\",\"title\":\"Simple struct\",\"titles\":[\"decodeAbiParameters\",\"More Examples\"]}]}}" +"{\"value\":{\"mdx\":\"# decodeAbiParameters [Decodes ABI encoded data.]\\n\\nDecodes ABI encoded data using the [ABI specification](https://solidity.readthedocs.io/en/latest/abi-spec), given a set of ABI parameters (`inputs`/`outputs`) and the encoded ABI data.\\n\\nThe `decodeAbiParameters` function is used by the other contract decoding utilities (ie. `decodeFunctionData`, `decodeEventLog`, etc).\\n\\n## Install\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n```\\n\\n## Usage\\n\\nThe `decodeAbiParameters` function takes in two parameters:\\n\\n- a set of ABI Parameters (`params`), that can be in the shape of the `inputs` or `outputs` attribute of an ABI Item.\\n- the ABI encoded data (`data`) that correspond to the given `params`.\\n\\n```ts\\nimport { decodeAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n### Human Readable\\n\\nYou can also pass in [Human Readable](/docs/glossary/terms#human-readable-abi) parameters with the [`parseAbiParameters` utility](/docs/abi/parseAbiParameters).\\n\\n```ts\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n\\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n```\\n\\n## Return Value\\n\\nThe decoded data. Type is inferred from the ABI.\\n\\n## Parameters\\n\\n### params\\n\\n- **Type**: [`AbiParameter[]`](/docs/glossary/types#abiparameter)\\n\\nThe set of ABI parameters to decode against `data`, in the shape of the `inputs` or `outputs` attribute of an ABI event/function.\\n\\nThese parameters must include valid [ABI types](https://docs.soliditylang.org/en/develop/abi-spec#types).\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], // [!code focus]\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n```\\n\\n### data\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe ABI encoded data.\\n\\n```ts\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', // [!code focus]\\n)\\n```\\n\\n## More Examples\\n\\n### Simple struct\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { abi } from './abi'\\n\\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }\\n```\\n\\n```ts [abi.ts]\\nexport const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as const\\n```\\n\\n```solidity [Example.sol]\\ncontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n\\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}\\n```\\n\\n:::\\n\\n### Simple bytes\\n\\nA simple `bytes` that contains an ABI-encoded `uint256` value.\\n\\n:::code-group\\n\\n```ts [example.ts]\\nconst values = decodeAbiParameters(\\n [\\n { name: \\\"response\\\", type: \\\"bytes\\\" },\\n ],\\n '0x' +\\n '0000000000000000000000000000000000000000000000000000000000000020' + // offset pointer\\n '0000000000000000000000000000000000000000000000000000000000000020' + // length\\n '0000000000000000000000000000000000000000000000000000000000000001', // data\\n)\\n// 0x0000000000000000000000000000000000000000000000000000000000000001\\n```\\n\\n```solidity [Example.sol]\\ncontract Example {\\n function simpleBytes() public pure returns (bytes memory) {\\n bytes memory value = abi.encode(1);\\n return abi.encode(value);\\n }\\n}\\n```\\n\\n:::\\n\",\"document\":[{\"href\":\"/docs/abi/decodeAbiParameters#decodeabiparameters\",\"html\":\"
Decodes ABI encoded data.
\\n

Decodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.

\\n

The decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).

\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#decodeabiparameters\",\"isPage\":true,\"text\":\"Decodes ABI encoded data.\\nDecodes ABI encoded data using the ABI specification, given a set of ABI parameters (inputs/outputs) and the encoded ABI data.\\nThe decodeAbiParameters function is used by the other contract decoding utilities (ie. decodeFunctionData, decodeEventLog, etc).\\n\",\"title\":\"decodeAbiParameters\",\"titles\":[]},{\"href\":\"/docs/abi/decodeAbiParameters#install\",\"html\":\"\\n
import { decodeAbiParameters } from 'viem'
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#install\",\"isPage\":false,\"text\":\"\\nimport { decodeAbiParameters } from 'viem'\\n\",\"title\":\"Install\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#usage\",\"html\":\"\\n

The decodeAbiParameters function takes in two parameters:

\\n
    \\n
  • a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.
  • \\n
  • the ABI encoded data (data) that correspond to the given params.
  • \\n
\\n
import { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n  [\\n    { name: 'x', type: 'string' },\\n    { name: 'y', type: 'uint' },\\n    { name: 'z', type: 'bool' }\\n  ],\\n  '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#usage\",\"isPage\":false,\"text\":\"\\nThe decodeAbiParameters function takes in two parameters:\\n\\na set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\\nthe ABI encoded data (data) that correspond to the given params.\\n\\nimport { decodeAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n [\\n { name: 'x', type: 'string' },\\n { name: 'y', type: 'uint' },\\n { name: 'z', type: 'bool' }\\n ],\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Usage\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#human-readable\",\"html\":\"\\n

You can also pass in Human Readable parameters with the parseAbiParameters utility.

\\n
import { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n  parseAbiParameters('string x, uint y, bool z'),\\n  '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#human-readable\",\"isPage\":false,\"text\":\"\\nYou can also pass in Human Readable parameters with the parseAbiParameters utility.\\nimport { decodeAbiParameters, parseAbiParameters } from 'viem'\\n \\nconst values = decodeAbiParameters(\\n parseAbiParameters('string x, uint y, bool z'),\\n '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000'\\n)\\n// ['wagmi', 420n, true]\\n\",\"title\":\"Human Readable\",\"titles\":[\"decodeAbiParameters\",\"Usage\"]},{\"href\":\"/docs/abi/decodeAbiParameters#return-value\",\"html\":\"\\n

The decoded data. Type is inferred from the ABI.

\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#return-value\",\"isPage\":false,\"text\":\"\\nThe decoded data. Type is inferred from the ABI.\\n\",\"title\":\"Return Value\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#params\",\"html\":\"\\n\\n

The set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.

\\n

These parameters must include valid ABI types.

\\n
const values = decodeAbiParameters(\\n  [{ name: 'x', type: 'uint32' }], \\n  '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#params\",\"isPage\":false,\"text\":\"\\n\\nType: AbiParameter[]\\n\\nThe set of ABI parameters to decode against data, in the shape of the inputs or outputs attribute of an ABI event/function.\\nThese parameters must include valid ABI types.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }], \\n '0x0000000000000000000000000000000000000000000000000000000000010f2c',\\n)\\n\",\"title\":\"params\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#data\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

The ABI encoded data.

\\n
const values = decodeAbiParameters(\\n  [{ name: 'x', type: 'uint32' }],\\n  '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#data\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe ABI encoded data.\\nconst values = decodeAbiParameters(\\n [{ name: 'x', type: 'uint32' }],\\n '0x0000000000000000000000000000000000000000000000000000000000010f2c', \\n)\\n\",\"title\":\"data\",\"titles\":[\"decodeAbiParameters\",\"Parameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#more-examples\",\"html\":\"\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#more-examples\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"More Examples\",\"titles\":[\"decodeAbiParameters\"]},{\"href\":\"/docs/abi/decodeAbiParameters#simple-struct\",\"html\":\"\\n
import { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n  abi[0].outputs,\\n  '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }
export const abi = [\\n  {\\n    name: 'staticStruct',\\n    outputs: [\\n      {\\n        components: [\\n          {\\n            name: 'x',\\n            type: 'uint256',\\n          },\\n          {\\n            name: 'y',\\n            type: 'bool',\\n          },\\n          {\\n            name: 'z',\\n            type: 'address',\\n          },\\n        ],\\n        name: 'foo',\\n        type: 'tuple',\\n      },\\n    ],\\n  }\\n] as const
contract Example {\\n  struct Foo {\\n    uint256 x;\\n    bool y;\\n    address z;\\n  }\\n \\n  function staticStruct(...) returns (Foo calldata foo) { \\n    ... \\n    return foo;\\n  }\\n}
\\n\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#simple-struct\",\"isPage\":false,\"text\":\"\\nimport { abi } from './abi'\\n \\nconst values = decodeAbiParameters(\\n abi[0].outputs,\\n '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n)\\n// { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' }export const abi = [\\n {\\n name: 'staticStruct',\\n outputs: [\\n {\\n components: [\\n {\\n name: 'x',\\n type: 'uint256',\\n },\\n {\\n name: 'y',\\n type: 'bool',\\n },\\n {\\n name: 'z',\\n type: 'address',\\n },\\n ],\\n name: 'foo',\\n type: 'tuple',\\n },\\n ],\\n }\\n] as constcontract Example {\\n struct Foo {\\n uint256 x;\\n bool y;\\n address z;\\n }\\n \\n function staticStruct(...) returns (Foo calldata foo) { \\n ... \\n return foo;\\n }\\n}\\n\",\"title\":\"Simple struct\",\"titles\":[\"decodeAbiParameters\",\"More Examples\"]},{\"href\":\"/docs/abi/decodeAbiParameters#simple-bytes\",\"html\":\"\\n

A simple bytes that contains an ABI-encoded uint256 value.

\\n
const values = decodeAbiParameters(\\n  [\\n    { name: "response", type: "bytes" },\\n  ],\\n  '0x' +\\n  '0000000000000000000000000000000000000000000000000000000000000020' + // offset pointer\\n  '0000000000000000000000000000000000000000000000000000000000000020' + // length\\n  '0000000000000000000000000000000000000000000000000000000000000001',  // data\\n)\\n// 0x0000000000000000000000000000000000000000000000000000000000000001
contract Example {\\n  function simpleBytes() public pure returns (bytes memory) {\\n    bytes memory value = abi.encode(1);\\n    return abi.encode(value);\\n  }\\n}
\",\"id\":\"pages/docs/abi/decodeAbiParameters.md#simple-bytes\",\"isPage\":false,\"text\":\"\\nA simple bytes that contains an ABI-encoded uint256 value.\\nconst values = decodeAbiParameters(\\n [\\n { name: "response", type: "bytes" },\\n ],\\n '0x' +\\n '0000000000000000000000000000000000000000000000000000000000000020' + // offset pointer\\n '0000000000000000000000000000000000000000000000000000000000000020' + // length\\n '0000000000000000000000000000000000000000000000000000000000000001', // data\\n)\\n// 0x0000000000000000000000000000000000000000000000000000000000000001contract Example {\\n function simpleBytes() public pure returns (bytes memory) {\\n bytes memory value = abi.encode(1);\\n return abi.encode(value);\\n }\\n}\",\"title\":\"Simple bytes\",\"titles\":[\"decodeAbiParameters\",\"More Examples\"]}]}}" diff --git a/site/.cache/search.index.c36d7dc81d7092421da70a5bdbc09af63489e62840cb589b7fe0e1e92f5a85b6.json b/site/.cache/search.index.c36d7dc81d7092421da70a5bdbc09af63489e62840cb589b7fe0e1e92f5a85b6.json index 7b59531b99..325e4dd664 100644 --- a/site/.cache/search.index.c36d7dc81d7092421da70a5bdbc09af63489e62840cb589b7fe0e1e92f5a85b6.json +++ b/site/.cache/search.index.c36d7dc81d7092421da70a5bdbc09af63489e62840cb589b7fe0e1e92f5a85b6.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"# estimateGas [An Action for estimating gas for a transaction.]\\n\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe gas estimate (in gas).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to estimate gas from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nContract code or a hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### to (optional)\\n\\n- **Type:** [`Address`](/docs/glossary/types#address)\\n\\nTransaction recipient.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue (in wei) sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\\n```\\n\\n### blockNumber (optional)\\n\\n- **Type:** `number`\\n\\nThe block number to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### blockTag (optional)\\n\\n- **Type:** `'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'`\\n- **Default:** `'latest'`\\n\\nThe block tag to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### stateOverride (optional)\\n\\n- **Type:** [`StateOverride`](/docs/glossary/types#stateoverride)\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\n\\n```ts\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ // [!code focus]\\n { // [!code focus]\\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n balance: parseEther('1'), // [!code focus]\\n stateDiff: [ // [!code focus]\\n { // [!code focus]\\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', // [!code focus]\\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n } // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n## JSON-RPC Methods\\n\\n[`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\\n\",\"document\":[{\"href\":\"/docs/actions/public/estimateGas#estimategas\",\"html\":\"
An Action for estimating gas for a transaction.
\\n

Estimates the gas necessary to complete a transaction without submitting it to the network.

\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#estimategas\",\"isPage\":true,\"text\":\"An Action for estimating gas for a transaction.\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\",\"title\":\"estimateGas\",\"titles\":[]},{\"href\":\"/docs/actions/public/estimateGas#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#returns\",\"html\":\"\\n

bigint

\\n

The gas estimate (in gas).

\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe gas estimate (in gas).\\n\",\"title\":\"Returns\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address
  • \\n
\\n

The Account to estimate gas from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to estimate gas from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#data-optional\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Contract code or a hashed method call with encoded args.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  data: '0x...', \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nContract code or a hashed method call with encoded args.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#to-optional\",\"html\":\"\\n\\n

Transaction recipient.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#to-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nTransaction recipient.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"title\":\"to (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#value-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Value (in wei) sent with this transaction.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue (in wei) sent with this transaction.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocknumber-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

The block number to perform the gas estimate against.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  blockNumber: 15121123n, \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocknumber-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe block number to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockNumber (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocktag-optional\",\"html\":\"\\n
    \\n
  • Type: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'
  • \\n
  • Default: 'latest'
  • \\n
\\n

The block tag to perform the gas estimate against.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  blockTag: 'safe', \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocktag-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'\\nDefault: 'latest'\\n\\nThe block tag to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockTag (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#stateoverride-optional\",\"html\":\"\\n\\n

The state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.

\\n
const data = await publicClient.estimateGas({\\n  account,\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  stateOverride: [ \\n    { \\n      address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n      balance: parseEther('1'), \\n      stateDiff: [ \\n        { \\n          slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n          value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n        }, \\n      ], \\n    } \\n  ], \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#stateoverride-optional\",\"isPage\":false,\"text\":\"\\n\\nType: StateOverride\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"title\":\"stateOverride (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#json-rpc-methods\",\"html\":\"\\n

eth_estimateGas

\",\"id\":\"pages/docs/actions/public/estimateGas.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_estimateGas\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"estimateGas\"]}]}}" +"{\"value\":{\"mdx\":\"# estimateGas [An Action for estimating gas for a transaction.]\\n\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`bigint`\\n\\nThe gas estimate (in gas).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to estimate gas from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nContract code or a hashed method call with encoded args which can be generated using [encodeFunctionData](/docs/contract/encodeFunctionData).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### to (optional)\\n\\n- **Type:** [`Address`](/docs/glossary/types#address)\\n\\nTransaction recipient.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue (in wei) sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\\n```\\n\\n### blockNumber (optional)\\n\\n- **Type:** `number`\\n\\nThe block number to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### blockTag (optional)\\n\\n- **Type:** `'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'`\\n- **Default:** `'latest'`\\n\\nThe block tag to perform the gas estimate against.\\n\\n```ts twoslash\\n// [!include ~/snippets/publicClient.ts]\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### stateOverride (optional)\\n\\n- **Type:** [`StateOverride`](/docs/glossary/types#stateoverride)\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\n\\n```ts\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ // [!code focus]\\n { // [!code focus]\\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n balance: parseEther('1'), // [!code focus]\\n stateDiff: [ // [!code focus]\\n { // [!code focus]\\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', // [!code focus]\\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n } // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n## JSON-RPC Methods\\n\\n[`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\\n\",\"document\":[{\"href\":\"/docs/actions/public/estimateGas#estimategas\",\"html\":\"
An Action for estimating gas for a transaction.
\\n

Estimates the gas necessary to complete a transaction without submitting it to the network.

\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#estimategas\",\"isPage\":true,\"text\":\"An Action for estimating gas for a transaction.\\nEstimates the gas necessary to complete a transaction without submitting it to the network.\\n\",\"title\":\"estimateGas\",\"titles\":[]},{\"href\":\"/docs/actions/public/estimateGas#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, publicClient } from './config'\\n \\nconst gas = await publicClient.estimateGas({ \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n \\n// @log: ↓ Local Account\\n \\n// export const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#returns\",\"html\":\"\\n

bigint

\\n

The gas estimate (in gas).

\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#returns\",\"isPage\":false,\"text\":\"\\nbigint\\nThe gas estimate (in gas).\\n\",\"title\":\"Returns\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"estimateGas\"]},{\"href\":\"/docs/actions/public/estimateGas#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address
  • \\n
\\n

The Account to estimate gas from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to estimate gas from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"account\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#data-optional\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Contract code or a hashed method call with encoded args which can be generated using encodeFunctionData.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  data: '0x...', \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nContract code or a hashed method call with encoded args which can be generated using encodeFunctionData.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n data: '0x...', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#to-optional\",\"html\":\"\\n\\n

Transaction recipient.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#to-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nTransaction recipient.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n})\\n\",\"title\":\"to (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#value-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Value (in wei) sent with this transaction.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue (in wei) sent with this transaction.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"value (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocknumber-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

The block number to perform the gas estimate against.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  blockNumber: 15121123n, \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocknumber-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nThe block number to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockNumber (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#blocktag-optional\",\"html\":\"\\n
    \\n
  • Type: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'
  • \\n
  • Default: 'latest'
  • \\n
\\n

The block tag to perform the gas estimate against.

\\n
import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n  blockTag: 'safe', \\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#blocktag-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'\\nDefault: 'latest'\\n\\nThe block tag to perform the gas estimate against.\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n \\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', \\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"blockTag (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#stateoverride-optional\",\"html\":\"\\n\\n

The state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.

\\n
const data = await publicClient.estimateGas({\\n  account,\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  stateOverride: [ \\n    { \\n      address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n      balance: parseEther('1'), \\n      stateDiff: [ \\n        { \\n          slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n          value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n        }, \\n      ], \\n    } \\n  ], \\n})
\\n\",\"id\":\"pages/docs/actions/public/estimateGas.md#stateoverride-optional\",\"isPage\":false,\"text\":\"\\n\\nType: StateOverride\\n\\nThe state override set is an optional address-to-state mapping, where each entry specifies some state to be ephemerally overridden prior to executing the call.\\nconst data = await publicClient.estimateGas({\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n stateOverride: [ \\n { \\n address: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n balance: parseEther('1'), \\n stateDiff: [ \\n { \\n slot: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0', \\n value: '0x00000000000000000000000000000000000000000000000000000000000001a4', \\n }, \\n ], \\n } \\n ], \\n})\\n\",\"title\":\"stateOverride (optional)\",\"titles\":[\"estimateGas\",\"Parameters\"]},{\"href\":\"/docs/actions/public/estimateGas#json-rpc-methods\",\"html\":\"\\n

eth_estimateGas

\",\"id\":\"pages/docs/actions/public/estimateGas.md#json-rpc-methods\",\"isPage\":false,\"text\":\"\\neth_estimateGas\",\"title\":\"JSON-RPC Methods\",\"titles\":[\"estimateGas\"]}]}}" diff --git a/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json b/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json index 791ad24463..d0b8b7a41d 100644 --- a/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json +++ b/site/.cache/search.index.c58d5c8aefb92c03188f626437b3ce0f3c3a4bf658501cf7cfadb19a6d6940d5.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Executes batches of call(s) on an ERC-7821-compatible contract.\\n---\\n\\n# executeBatches\\n\\nExecutes batches of call(s) using the [\\\"batch of batches\\\" mode](https://eips.ethereum.org/EIPS/eip-7821#optional-batch-of-batches-mode) on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### batches\\n\\n- **Type:** `{ calls: Call[], opData?: Hex }[]`\\n\\nSet of call batches to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n### batches.calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls in a batch to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\\n```\\n\\n### batches.opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7821/executeBatches#executebatches\",\"html\":\"\\n

Executes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.

\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#executebatches\",\"isPage\":true,\"text\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.\\n\",\"title\":\"executeBatches\",\"titles\":[]},{\"href\":\"/experimental/erc7821/executeBatches#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n  account,\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('2')\\n        },\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('2')\\n        },\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"executeBatches\",\"Usage\"]},{\"href\":\"/experimental/erc7821/executeBatches#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n          abi,\\n          functionName: 'approve',\\n          args: [\\n            '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n            100n\\n          ],\\n        },\\n        {\\n          to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n          abi,\\n          functionName: 'transferFrom',\\n          args: [\\n            '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n            '0x0000000000000000000000000000000000000000',\\n            100n\\n          ],\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"executeBatches\",\"Usage\"]},{\"href\":\"/experimental/erc7821/executeBatches#return-value\",\"html\":\"\\n

Hash

\\n

A Transaction Hash.

\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#return-value\",\"isPage\":false,\"text\":\"\\nHash\\nA Transaction Hash.\\n\",\"title\":\"Return Value\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

Account to invoke the execution of the calls.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#address\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Address of the contract to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batches\",\"html\":\"\\n
    \\n
  • Type: { calls: Call[], opData?: Hex }[]
  • \\n
\\n

Set of call batches to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [ \\n    { \\n      calls: [ \\n        { \\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n          value: parseEther('1') \\n        }, \\n      ] \\n    }, \\n    { \\n      calls: [ \\n        { \\n          data: '0xdeadbeef', \\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        }, \\n      ], \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batches\",\"isPage\":false,\"text\":\"\\n\\nType: { calls: Call[], opData?: Hex }[]\\n\\nSet of call batches to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"title\":\"batches\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchescalls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

Set of calls in a batch to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [ \\n        { \\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n          value: parseEther('1') \\n        }, \\n      ] \\n    },\\n    {\\n      calls: [ \\n        { \\n          data: '0xdeadbeef', \\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        }, \\n      ], \\n    },\\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchescalls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls in a batch to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"title\":\"batches.calls\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchesopdata-optional\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Additional data to pass to execution.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ],\\n      opData: '0xdeadbeef', \\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchesopdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"batches.opData (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n})\\n  .extend(eip7702Actions())\\n  .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  authorizationList: [authorization], \\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: client.chain
  • \\n
\\n

Chain to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  gasPrice: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  maxFeePerGas: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n})
\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Executes batches of call(s) on an ERC-7821-compatible contract.\\n---\\n\\n# executeBatches\\n\\nExecutes batches of call(s) using the [\\\"batch of batches\\\" mode](https://eips.ethereum.org/EIPS/eip-7821#optional-batch-of-batches-mode) on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### batches\\n\\n- **Type:** `{ calls: Call[], opData?: Hex }[]`\\n\\nSet of call batches to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n### batches.calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls in a batch to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\\n```\\n\\n### batches.opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n\",\"document\":[{\"href\":\"/experimental/erc7821/executeBatches#executebatches\",\"html\":\"\\n

Executes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.

\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#executebatches\",\"isPage\":true,\"text\":\"\\nExecutes batches of call(s) using the "batch of batches" mode on an ERC-7821-compatible contract.\\n\",\"title\":\"executeBatches\",\"titles\":[]},{\"href\":\"/experimental/erc7821/executeBatches#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n  account,\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('2')\\n        },\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('2')\\n        },\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"executeBatches\",\"Usage\"]},{\"href\":\"/experimental/erc7821/executeBatches#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n          abi,\\n          functionName: 'approve',\\n          args: [\\n            '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n            100n\\n          ],\\n        },\\n        {\\n          to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n          abi,\\n          functionName: 'transferFrom',\\n          args: [\\n            '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n            '0x0000000000000000000000000000000000000000',\\n            100n\\n          ],\\n        },\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"executeBatches\",\"Usage\"]},{\"href\":\"/experimental/erc7821/executeBatches#return-value\",\"html\":\"\\n

Hash

\\n

A Transaction Hash.

\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#return-value\",\"isPage\":false,\"text\":\"\\nHash\\nA Transaction Hash.\\n\",\"title\":\"Return Value\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"executeBatches\"]},{\"href\":\"/experimental/erc7821/executeBatches#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

Account to invoke the execution of the calls.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#address\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Address of the contract to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batches\",\"html\":\"\\n
    \\n
  • Type: { calls: Call[], opData?: Hex }[]
  • \\n
\\n

Set of call batches to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [ \\n    { \\n      calls: [ \\n        { \\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n          value: parseEther('1') \\n        }, \\n      ] \\n    }, \\n    { \\n      calls: [ \\n        { \\n          data: '0xdeadbeef', \\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        }, \\n      ], \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batches\",\"isPage\":false,\"text\":\"\\n\\nType: { calls: Call[], opData?: Hex }[]\\n\\nSet of call batches to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ \\n { \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n }, \\n { \\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n }, \\n ], \\n})\\n\",\"title\":\"batches\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchescalls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

Set of calls in a batch to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [ \\n        { \\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n          value: parseEther('1') \\n        }, \\n      ] \\n    },\\n    {\\n      calls: [ \\n        { \\n          data: '0xdeadbeef', \\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        }, \\n      ], \\n    },\\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchescalls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls in a batch to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n ] \\n },\\n {\\n calls: [ \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n },\\n ], \\n})\\n\",\"title\":\"batches.calls\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#batchesopdata-optional\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Additional data to pass to execution.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ],\\n      opData: '0xdeadbeef', \\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#batchesopdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', \\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\\n\",\"title\":\"batches.opData (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n})\\n  .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  authorizationList: [authorization], \\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: client.chain
  • \\n
\\n

Chain to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  gasPrice: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  maxFeePerGas: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/executeBatches#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  batches: [\\n    {\\n      calls: [\\n        {\\n          to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n          value: parseEther('1')\\n        },\\n      ]\\n    },\\n    {\\n      calls: [\\n        {\\n          data: '0xdeadbeef',\\n          to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        },\\n      ],\\n    },\\n  ],\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n})
\",\"id\":\"pages/experimental/erc7821/executeBatches.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"executeBatches\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json b/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json deleted file mode 100644 index 7e9c964d2d..0000000000 --- a/site/.cache/search.index.c83117d3b762c7f0fc98169a2df7ff5cd1538e47114b31ebba2686bd5cc986a2.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"# Sending Transactions with EIP-7702\\n\\nThe guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.\\n\\n## Overview\\n\\nHere is an end-to-end overview of how to broadcast an EIP-7702 Transaction to emit a simple event on the EOA's designated contract. We will break it down into [Steps](#steps) below.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::\\n\\n:::warning\\nEIP-7702 is currently not supported on Ethereum anvil or Testnets. For this example, we are using the `anvil` chain which interfaces with an [Anvil node](https://book.getfoundry.sh/anvil/) (a local Ethereum network).\\n:::\\n\\n## Steps\\n\\n### 0. Install & Run Anvil\\n\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an [Anvil node](https://book.getfoundry.sh/anvil/) for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\n\\n```bash\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n```\\n\\n### 1. Set up Smart Contract\\n\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will [create](https://book.getfoundry.sh/reference/forge/forge-init) and [deploy](https://book.getfoundry.sh/forge/deploying) a `BatchCallDelegation.sol` contract, however, you can use any existing deployed contract.\\n\\nFirstly, [deploy a Contract](https://book.getfoundry.sh/forge/deploying) to the Network with the following source:\\n\\n```solidity [BatchCallDelegation.sol]\\npragma solidity ^0.8.20;\\n\\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n\\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, \\\"call reverted\\\");\\n }\\n }\\n}\\n```\\n\\n:::warning\\n\\n**DO NOT USE IN PRODUCTION**\\n\\nThis contract is for demonstration purposes only to show how EIP-7702 works. If [someone else (Sponsor Account) is executing calls](#5-optional-use-a-sponsor) on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\\n:::\\n\\n### 2. Set up Client & Account\\n\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\n\\nThis code snippet uses the [Extending Client](/experimental/eip7702/client) guide.\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n### 3. Authorize Contract Designation\\n\\nWe will need to sign an Authorization to designate the Contract to the Account.\\n\\nIn the example below, we are using the `account` attached to the `walletClient` to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 4. Invoke Contract Function\\n\\nWe can now perform batch calls by sending a Transaction to the Account (`account`) with the Authorization (`authorizationList`).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [ // [!code focus]\\n [ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n ] // [!code focus]\\n }), // [!code focus]\\n to: walletClient.account.address, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n```ts twoslash [config.ts]\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n### 5. Optional: Use a Sponsor\\n\\nWe can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to \\\"sponsor\\\" the Transaction for the user (i.e. pay for their gas fees).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, // [!code ++]\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\\n```\\n\\n```ts twoslash [config.ts]\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n```ts twoslash [contract.ts] filename=\\\"contract.ts\\\"\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n```\\n\\n:::\",\"document\":[{\"href\":\"/experimental/eip7702/sending-transactions#sending-transactions-with-eip-7702\",\"html\":\"\\n

The guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.

\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#sending-transactions-with-eip-7702\",\"isPage\":true,\"text\":\"\\nThe guide below demonstrates how to send EIP-7702 Transactions to invoke Contract functions on an Externally Owned Account.\\n\",\"title\":\"Sending Transactions with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/sending-transactions#overview\",\"html\":\"\\n

Here is an end-to-end overview of how to broadcast an EIP-7702 Transaction to emit a simple event on the EOA's designated contract. We will break it down into Steps below.

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n  authorizationList: [authorization],\\n  data: encodeFunctionData({\\n    abi,\\n    functionName: 'execute',\\n    args: [\\n      [\\n        {\\n          data: '0x',\\n          to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n          value: parseEther('0.001'),\\n        },\\n        {\\n          data: '0x',\\n          to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n          value: parseEther('0.002'), \\n        },  \\n      ],\\n    ]\\n  }),\\n  to: walletClient.account.address,\\n})
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n  struct Call {\\n    bytes data;\\n    address to;\\n    uint256 value;\\n  }\\n \\n  function execute(Call[] calldata calls) external payable {\\n    for (uint256 i = 0; i < calls.length; i++) {\\n      Call memory call = calls[i];\\n      (bool success, ) = call.to.call{value: call.value}(call.data);\\n      require(success, "call reverted");\\n    }\\n  }\\n}
\\n\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#overview\",\"isPage\":false,\"text\":\"\\nHere is an end-to-end overview of how to broadcast an EIP-7702 Transaction to emit a simple event on the EOA's designated contract. We will break it down into Steps below.\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nEIP-7702 is currently not supported on Ethereum anvil or Testnets. For this example, we are using the anvil chain which interfaces with an Anvil node (a local Ethereum network).\\n\",\"title\":\"Overview\",\"titles\":[\"Sending Transactions with EIP-7702\"]},{\"href\":\"/experimental/eip7702/sending-transactions#steps\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#steps\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Steps\",\"titles\":[\"Sending Transactions with EIP-7702\"]},{\"href\":\"/experimental/eip7702/sending-transactions#0-install--run-anvil\",\"html\":\"\\n

EIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.

\\n
curl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague
\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#1-set-up-smart-contract\",\"html\":\"\\n

We will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.

\\n

Firstly, deploy a Contract to the Network with the following source:

\\n
pragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n  struct Call {\\n    bytes data;\\n    address to;\\n    uint256 value;\\n  }\\n \\n  function execute(Call[] calldata calls) external payable {\\n    for (uint256 i = 0; i < calls.length; i++) {\\n      Call memory call = calls[i];\\n      (bool success, ) = call.to.call{value: call.value}(call.data);\\n      require(success, "call reverted");\\n    }\\n  }\\n}
\\n\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#1-set-up-smart-contract\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Smart Contract to interact with. For the purposes of this guide, we will create and deploy a BatchCallDelegation.sol contract, however, you can use any existing deployed contract.\\nFirstly, deploy a Contract to the Network with the following source:\\npragma solidity ^0.8.20;\\n \\ncontract BatchCallDelegation {\\n struct Call {\\n bytes data;\\n address to;\\n uint256 value;\\n }\\n \\n function execute(Call[] calldata calls) external payable {\\n for (uint256 i = 0; i < calls.length; i++) {\\n Call memory call = calls[i];\\n (bool success, ) = call.to.call{value: call.value}(call.data);\\n require(success, "call reverted");\\n }\\n }\\n}\\nDO NOT USE IN PRODUCTIONThis contract is for demonstration purposes only to show how EIP-7702 works. If someone else (Sponsor Account) is executing calls on behalf of the Account, it does not implement a nonce & signature verification mechanism to prevent replay attacks.\\n\",\"title\":\"1. Set up Smart Contract\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#2-set-up-client--account\",\"html\":\"\\n

Next, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.

\\n

This code snippet uses the Extending Client guide.

\\n
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#2-set-up-client--account\",\"isPage\":false,\"text\":\"\\nNext, we will need to set up a Client and Externally Owned Account to sign EIP-7702 Authorizations.\\nThis code snippet uses the Extending Client guide.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"2. Set up Client & Account\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#3-authorize-contract-designation\",\"html\":\"\\n

We will need to sign an Authorization to designate the Contract to the Account.

\\n

In the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n  contractAddress, \\n}) 
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#3-authorize-contract-designation\",\"isPage\":false,\"text\":\"\\nWe will need to sign an Authorization to designate the Contract to the Account.\\nIn the example below, we are using the account attached to the walletClient to sign the Authorization – this will be the Account that the Contract's bytecode will be injected into.\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ \\n contractAddress, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"3. Authorize Contract Designation\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#4-invoke-contract-function\",\"html\":\"\\n

We can now perform batch calls by sending a Transaction to the Account (account) with the Authorization (authorizationList).

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n})\\n \\nconst hash = await walletClient.sendTransaction({ \\n  authorizationList: [authorization], \\n  data: encodeFunctionData({ \\n    abi, \\n    functionName: 'execute', \\n    args: [ \\n      [ \\n        { \\n          data: '0x', \\n          to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n          value: parseEther('0.001'), \\n        }, \\n        { \\n          data: '0x', \\n          to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n          value: parseEther('0.002'), \\n        }, \\n      ], \\n    ] \\n  }), \\n  to: walletClient.account.address, \\n}) 
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#4-invoke-contract-function\",\"isPage\":false,\"text\":\"\\nWe can now perform batch calls by sending a Transaction to the Account (account) with the Authorization (authorizationList).\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n \\nconst hash = await walletClient.sendTransaction({ \\n authorizationList: [authorization], \\n data: encodeFunctionData({ \\n abi, \\n functionName: 'execute', \\n args: [ \\n [ \\n { \\n data: '0x', \\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, \\n { \\n data: '0x', \\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ], \\n ] \\n }), \\n to: walletClient.account.address, \\n}) export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"4. Invoke Contract Function\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/sending-transactions#5-optional-use-a-sponsor\",\"html\":\"\\n

We can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).

\\n
// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n  contractAddress,\\n  sponsor, \\n})\\n \\nconst hash = await walletClient.sendTransaction({\\n  account: sponsor, \\n  authorizationList: [authorization],\\n  data: encodeFunctionData({\\n    abi,\\n    functionName: 'execute',\\n    args: [\\n      [\\n        {\\n          data: '0x',\\n          to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n          value: parseEther('0.001'),\\n        },\\n        {\\n         data: '0x',\\n          to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n          value: parseEther('0.002'),\\n        },\\n      ],\\n    ]\\n  }),\\n  to: walletClient.account.address,\\n})
// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())
export const abi = [\\n  {\\n    "type": "function",\\n    "name": "execute",\\n    "inputs": [\\n      {\\n        "name": "calls",\\n        "type": "tuple[]",\\n        "components": [\\n          {\\n            "name": "data",\\n            "type": "bytes",\\n          },\\n          {\\n            "name": "to",\\n            "type": "address",\\n          },\\n          {\\n            "name": "value",\\n            "type": "uint256",\\n          }\\n        ]\\n      }\\n    ],\\n    "outputs": [],\\n    "stateMutability": "payable"\\n  },\\n] as const\\n \\nexport const contractAddress = '0x...'
\",\"id\":\"pages/experimental/eip7702/sending-transactions.md#5-optional-use-a-sponsor\",\"isPage\":false,\"text\":\"\\nWe can also utilize an Sponsor Account to execute a call on behalf of the authorizing Account. This is useful for cases where we want to "sponsor" the Transaction for the user (i.e. pay for their gas fees).\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: contract.ts\\nexport const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\\n// @filename: example.js\\n \\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst sponsor = privateKeyToAccount('0x...') \\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, \\n})\\n \\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, \\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())export const abi = [\\n {\\n "type": "function",\\n "name": "execute",\\n "inputs": [\\n {\\n "name": "calls",\\n "type": "tuple[]",\\n "components": [\\n {\\n "name": "data",\\n "type": "bytes",\\n },\\n {\\n "name": "to",\\n "type": "address",\\n },\\n {\\n "name": "value",\\n "type": "uint256",\\n }\\n ]\\n }\\n ],\\n "outputs": [],\\n "stateMutability": "payable"\\n },\\n] as const\\n \\nexport const contractAddress = '0x...'\",\"title\":\"5. Optional: Use a Sponsor\",\"titles\":[\"Sending Transactions with EIP-7702\",\"Steps\"]}]}}" diff --git a/site/.cache/search.index.c8a62473d327feeae023c55661cfe7204a9085a31d0d9f4a1c8af073215db392.json b/site/.cache/search.index.c8a62473d327feeae023c55661cfe7204a9085a31d0d9f4a1c8af073215db392.json deleted file mode 100644 index b689e2b41d..0000000000 --- a/site/.cache/search.index.c8a62473d327feeae023c55661cfe7204a9085a31d0d9f4a1c8af073215db392.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"# Extending Client with EIP-7702 [Setting up your Viem Client]\\n\\nTo use the experimental functionality of EIP-7702, you must extend your existing (or new) Viem Client with experimental EIP-7702 Actions.\\n\\n## Overview\\n\\nHere is an end-to-end overview of how to extend a Viem Client with EIP-7702 Actions. We will break it down into Steps below.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\\n```\\n\\n:::warning\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets. For this example, we are using the `anvil` chain which interfaces with an [Anvil node](https://book.getfoundry.sh/anvil/) (a local Ethereum network).\\n:::\\n\\n## Steps\\n\\n### 0. Install & Run Anvil\\n\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an [Anvil node](https://book.getfoundry.sh/anvil/) for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\n\\n```bash\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n```\\n\\n### 1. Set up a Client\\n\\nWe will need to set up a Client to sign EIP-7702 Authorizations.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\\n```\\n\\n[See `createWalletClient` Docs](/docs/clients/wallet)\\n\\n### 2. Extend with EIP-7702 Actions\\n\\nNext, we will import the experimental EIP-7702 Actions and extend them on our Client.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' // [!code focus]\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) // [!code focus]\\n```\\n\\n### 3. Use EIP-7702 Actions\\n\\nNow we can use EIP-7702 Actions like [`signAuthorization`](/experimental/eip7702/signAuthorization).\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\\nconst authorization = await walletClient.signAuthorization({/* ... */}) // [!code focus]\\n```\",\"document\":[{\"href\":\"/experimental/eip7702/client#extending-client-with-eip-7702\",\"html\":\"
Setting up your Viem Client
\\n

To use the experimental functionality of EIP-7702, you must extend your existing (or new) Viem Client with experimental EIP-7702 Actions.

\\n\",\"id\":\"pages/experimental/eip7702/client.md#extending-client-with-eip-7702\",\"isPage\":true,\"text\":\"Setting up your Viem Client\\nTo use the experimental functionality of EIP-7702, you must extend your existing (or new) Viem Client with experimental EIP-7702 Actions.\\n\",\"title\":\"Extending Client with EIP-7702\",\"titles\":[]},{\"href\":\"/experimental/eip7702/client#overview\",\"html\":\"\\n

Here is an end-to-end overview of how to extend a Viem Client with EIP-7702 Actions. We will break it down into Steps below.

\\n
// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})
\\n\\n\",\"id\":\"pages/experimental/eip7702/client.md#overview\",\"isPage\":false,\"text\":\"\\nHere is an end-to-end overview of how to extend a Viem Client with EIP-7702 Actions. We will break it down into Steps below.\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets. For this example, we are using the anvil chain which interfaces with an Anvil node (a local Ethereum network).\\n\",\"title\":\"Overview\",\"titles\":[\"Extending Client with EIP-7702\"]},{\"href\":\"/experimental/eip7702/client#steps\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/client.md#steps\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Steps\",\"titles\":[\"Extending Client with EIP-7702\"]},{\"href\":\"/experimental/eip7702/client#0-install--run-anvil\",\"html\":\"\\n

EIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.

\\n
curl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague
\\n\",\"id\":\"pages/experimental/eip7702/client.md#0-install--run-anvil\",\"isPage\":false,\"text\":\"\\nEIP-7702 is currently not supported on Ethereum Mainnet or Testnets, so let's set up an EIP-7702 compatible network. We will use an Anvil node for this example. If you are using an existing EIP-7702 compatible network, you can skip this step.\\ncurl -L https://foundry.paradigm.xyz | bash\\nanvil --hardfork prague\\n\",\"title\":\"0. Install & Run Anvil\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#1-set-up-a-client\",\"html\":\"\\n

We will need to set up a Client to sign EIP-7702 Authorizations.

\\n
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n  chain: anvil,\\n  transport: http(),\\n})
\\n

See createWalletClient Docs

\\n\",\"id\":\"pages/experimental/eip7702/client.md#1-set-up-a-client\",\"isPage\":false,\"text\":\"\\nWe will need to set up a Client to sign EIP-7702 Authorizations.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\\nSee createWalletClient Docs\\n\",\"title\":\"1. Set up a Client\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#2-extend-with-eip-7702-actions\",\"html\":\"\\n

Next, we will import the experimental EIP-7702 Actions and extend them on our Client.

\\n
import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions()) 
\\n\",\"id\":\"pages/experimental/eip7702/client.md#2-extend-with-eip-7702-actions\",\"isPage\":false,\"text\":\"\\nNext, we will import the experimental EIP-7702 Actions and extend them on our Client.\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\",\"title\":\"2. Extend with EIP-7702 Actions\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]},{\"href\":\"/experimental/eip7702/client#3-use-eip-7702-actions\",\"html\":\"\\n

Now we can use EIP-7702 Actions like signAuthorization.

\\n
// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n  chain: anvil,\\n  transport: http(),\\n}).extend(eip7702Actions()) \\n \\nconst authorization = await walletClient.signAuthorization({/* ... */}) 
\",\"id\":\"pages/experimental/eip7702/client.md#3-use-eip-7702-actions\",\"isPage\":false,\"text\":\"\\nNow we can use EIP-7702 Actions like signAuthorization.\\n// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n \\nconst authorization = await walletClient.signAuthorization({/* ... */}) \",\"title\":\"3. Use EIP-7702 Actions\",\"titles\":[\"Extending Client with EIP-7702\",\"Steps\"]}]}}" diff --git a/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json b/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json index 5d9370ebb7..bf78925b61 100644 --- a/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json +++ b/site/.cache/search.index.c91b7a8da60524fb1cafe85f1576c5039df09a978fac3ef66667fd3d47d07b94.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls (transactions) to the network. \\n\\n[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`string`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/eip5792/sendCalls#sendcalls\",\"html\":\"\\n

Requests for the wallet to sign and broadcast a batch of calls (transactions) to the network.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls (transactions) to the network.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/experimental/eip5792/sendCalls#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n  account,\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n

Notes:

\\n
    \\n
  • account and chain are top level properties as all calls should be sent by the same account and chain.
  • \\n
  • Properties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.
  • \\n
  • Read wallet_sendCalls on EIP-5792.
  • \\n
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\nNotes:\\n\\naccount and chain are top level properties as all calls should be sent by the same account and chain.\\nProperties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.\\nRead wallet_sendCalls on EIP-5792.\\n\\n\",\"title\":\"Usage\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/experimental/eip5792/sendCalls#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'approve',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        100n\\n      ],\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'transferFrom',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        '0x0000000000000000000000000000000000000000',\\n        100n\\n      ],\\n    },\\n  ],\\n})
export const wagmiAbi = [\\n  // ...\\n  {\\n    inputs: [],\\n    name: "mint",\\n    outputs: [],\\n    stateMutability: "nonpayable",\\n    type: "function",\\n  },\\n  // ...\\n] as const;
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/experimental/eip5792/sendCalls#returns\",\"html\":\"\\n

string

\\n

The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.

\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#returns\",\"isPage\":false,\"text\":\"\\nstring\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.\\n\",\"title\":\"Returns\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

The Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.

\\n

Accepts a JSON-RPC Account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#chain\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: walletClient.chain
  • \\n
\\n

The target chain to broadcast the calls.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  chain: mainnet, \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#calls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

An array of calls to be signed and broadcasted.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsdata\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Calldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsto\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Recipient address of the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsvalue\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Value to send with the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#capabilities\",\"html\":\"\\n
    \\n
  • Type: WalletCapabilities
  • \\n
\\n

Capability metadata for the calls (e.g. specifying a paymaster).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  capabilities: { \\n    paymasterService: { \\n      url: 'https://...'\\n    } \\n  } \\n})
\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Sign and broadcast a batch of calls to the network. \\n---\\n\\n# sendCalls\\n\\nRequests for the wallet to sign and broadcast a batch of calls to the network. \\n\\n[Read more.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\nNotes:\\n\\n- `account` and `chain` are top level properties as all calls should be sent by the same account and chain.\\n- Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees.\\n- [Read `wallet_sendCalls` on EIP-5792.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls)\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [abi.ts] filename=\\\"abi.ts\\\"\\nexport const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: \\\"mint\\\",\\n outputs: [],\\n stateMutability: \\\"nonpayable\\\",\\n type: \\\"function\\\",\\n },\\n // ...\\n] as const;\\n```\\n\\n```ts [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ id: string, capabilities?: WalletCapabilities }`\\n\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nThe Account to sign & broadcast the call from. If set to `null`, it is assumed that the wallet will handle filling the sender of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### chain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain to broadcast the calls.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nAn array of calls to be signed and broadcasted.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### capabilities \\n\\n- **Type:** `WalletCapabilities`\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\\n```\\n\\n### forceAtomic\\n\\n- **Type:** `boolean`\\n- **Default:** `false`\\n\\nForce the calls to be executed atomically. [See more](https://eips.ethereum.org/EIPS/eip-5792#call-execution-atomicity)\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\\n```\\n\\n### id\\n\\n- **Type:** `string`\\n\\nAttribute the call batch with an identifier.\\n\\n```ts twoslash\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/sendCalls#sendcalls\",\"html\":\"\\n

Requests for the wallet to sign and broadcast a batch of calls to the network.

\\n

Read more.

\\n\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#sendcalls\",\"isPage\":true,\"text\":\"\\nRequests for the wallet to sign and broadcast a batch of calls to the network.\\nRead more.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"sendCalls\",\"titles\":[]},{\"href\":\"/experimental/eip5792/sendCalls#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n  account,\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n

Notes:

\\n
    \\n
  • account and chain are top level properties as all calls should be sent by the same account and chain.
  • \\n
  • Properties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.
  • \\n
  • Read wallet_sendCalls on EIP-5792.
  • \\n
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\nNotes:\\n\\naccount and chain are top level properties as all calls should be sent by the same account and chain.\\nProperties of calls items are only those shared by all transaction types (e.g. data, to, value). The Wallet should handle other required properties like gas & fees.\\nRead wallet_sendCalls on EIP-5792.\\n\\n\",\"title\":\"Usage\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/experimental/eip5792/sendCalls#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'approve',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        100n\\n      ],\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'transferFrom',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        '0x0000000000000000000000000000000000000000',\\n        100n\\n      ],\\n    },\\n  ],\\n})
export const wagmiAbi = [\\n  // ...\\n  {\\n    inputs: [],\\n    name: "mint",\\n    outputs: [],\\n    stateMutability: "nonpayable",\\n    type: "function",\\n  },\\n  // ...\\n] as const;
import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})export const wagmiAbi = [\\n // ...\\n {\\n inputs: [],\\n name: "mint",\\n outputs: [],\\n stateMutability: "nonpayable",\\n type: "function",\\n },\\n // ...\\n] as const;import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"sendCalls\",\"Usage\"]},{\"href\":\"/experimental/eip5792/sendCalls#returns\",\"html\":\"\\n

{ id: string, capabilities?: WalletCapabilities }

\\n

The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.

\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#returns\",\"isPage\":false,\"text\":\"\\n{ id: string, capabilities?: WalletCapabilities }\\nThe identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call getCallsStatus with this identifier to retrieve a batch call status and call receipts.\\n\",\"title\":\"Returns\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"sendCalls\"]},{\"href\":\"/experimental/eip5792/sendCalls#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

The Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.

\\n

Accepts a JSON-RPC Account.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nThe Account to sign & broadcast the call from. If set to null, it is assumed that the wallet will handle filling the sender of the calls.\\nAccepts a JSON-RPC Account.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#chain\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: walletClient.chain
  • \\n
\\n

The target chain to broadcast the calls.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet, \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#chain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain to broadcast the calls.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"chain\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#calls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

An array of calls to be signed and broadcasted.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nAn array of calls to be signed and broadcasted.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsdata\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Calldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsto\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Recipient address of the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#callsvalue\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Value to send with the call.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  chain: mainnet,\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"sendCalls\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/eip5792/sendCalls#capabilities\",\"html\":\"\\n
    \\n
  • Type: WalletCapabilities
  • \\n
\\n

Capability metadata for the calls (e.g. specifying a paymaster).

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  capabilities: { \\n    paymasterService: { \\n      url: 'https://...'\\n    } \\n  } \\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#capabilities\",\"isPage\":false,\"text\":\"\\n\\nType: WalletCapabilities\\n\\nCapability metadata for the calls (e.g. specifying a paymaster).\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { \\n paymasterService: { \\n url: 'https://...'\\n } \\n } \\n})\\n\",\"title\":\"capabilities\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#forceatomic\",\"html\":\"\\n
    \\n
  • Type: boolean
  • \\n
  • Default: false
  • \\n
\\n

Force the calls to be executed atomically. See more

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  forceAtomic: true, \\n})
\\n\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#forceatomic\",\"isPage\":false,\"text\":\"\\n\\nType: boolean\\nDefault: false\\n\\nForce the calls to be executed atomically. See more\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, \\n})\\n\",\"title\":\"forceAtomic\",\"titles\":[\"sendCalls\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/sendCalls#id\",\"html\":\"\\n
    \\n
  • Type: string
  • \\n
\\n

Attribute the call batch with an identifier.

\\n
// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n  id: '<my-batch-id>', \\n})
\",\"id\":\"pages/experimental/eip5792/sendCalls.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nAttribute the call batch with an identifier.\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '<my-batch-id>', \\n})\",\"title\":\"id\",\"titles\":[\"sendCalls\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json b/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json index 1525bc75e8..af9c15bf26 100644 --- a/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json +++ b/site/.cache/search.index.d390eddcc31eed0c46933a564a5ec15bcef7d51d685d6d5bd89e4aaba85e8b7b.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call bundle to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call bundle to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\n

Waits for a call bundle to be confirmed & included on a Block before returning the status & receipts.

\\n\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call bundle to be confirmed & included on a Block before returning the status & receipts.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n  account,\\n  calls: [{\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ \\n  id, \\n}) 
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ \\n id, \\n}) import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#returns\",\"html\":\"\\n

WaitForCallsStatusReturnType

\\n

Status and receipts of the calls.

\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#id\",\"html\":\"\\n
    \\n
  • Type: string
  • \\n
\\n

Identifier of the call batch.

\\n
const { status, receipts } = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef', \\n})
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#pollinginterval\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: client.pollingInterval
  • \\n
\\n

Polling interval in milliseconds.

\\n
const { status, receipts } = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  pollingInterval: 1_000, \\n})
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#timeout\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: 60_000
  • \\n
\\n

Timeout in milliseconds before waitForCallsStatus stops polling.

\\n
const { status, receipts } = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  timeout: 10_000, \\n})
\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst { status, receipts } = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call batch to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call batch to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n:::warning[Warning]\\nThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n:::\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### status\\n\\n- **Type:** `(parameters: { statusCode: number, status: string | undefined }) => boolean`\\n- **Default:** `(parameters) => parameters.statusCode >= 200`\\n\\nStatus to wait for. Defaults to non-pending status codes (`>=200`).\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/experimental/eip5792/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\n

Waits for a call batch to be confirmed & included on a Block before returning the status & receipts.

\\n\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.\\nWarningThis is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  account,\\n  calls: [{\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n  id, \\n}) \\n// @log: {\\n \\n// @log:   atomic: false,\\n \\n// @log:   chainId: 1,\\n \\n// @log:   id: '0x1234567890abcdef',\\n \\n// @log:   statusCode: 200,\\n \\n// @log:   status: 'success',\\n \\n// @log:   receipts: [{ ... }],\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n id, \\n}) \\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#returns\",\"html\":\"\\n

WaitForCallsStatusReturnType

\\n

Status and receipts of the calls.

\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#id\",\"html\":\"\\n
    \\n
  • Type: string
  • \\n
\\n

Identifier of the call batch.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef', \\n})
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#pollinginterval\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: client.pollingInterval
  • \\n
\\n

Polling interval in milliseconds.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  pollingInterval: 1_000, \\n})
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#status\",\"html\":\"\\n
    \\n
  • Type: (parameters: { statusCode: number, status: string | undefined }) => boolean
  • \\n
  • Default: (parameters) => parameters.statusCode >= 200
  • \\n
\\n

Status to wait for. Defaults to non-pending status codes (>=200).

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  status: ({ status }) => status === 'success', \\n})
\\n\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#status\",\"isPage\":false,\"text\":\"\\n\\nType: (parameters: { statusCode: number, status: string | undefined }) => boolean\\nDefault: (parameters) => parameters.statusCode >= 200\\n\\nStatus to wait for. Defaults to non-pending status codes (>=200).\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"title\":\"status\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/experimental/eip5792/waitForCallsStatus#timeout\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: 60_000
  • \\n
\\n

Timeout in milliseconds before waitForCallsStatus stops polling.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  timeout: 10_000, \\n})
\",\"id\":\"pages/experimental/eip5792/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json b/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json index ed01321991..0fdb71b591 100644 --- a/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json +++ b/site/.cache/search.index.d4041ea6a1c574a6cb7489af5fc2fa02489ff57b6bcfff88ad4aed1f70303c15.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Executes call(s) using the `execute` function on an ERC-7821-compatible contract.\\n---\\n\\n# execute\\n\\nExecutes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7821/execute#execute\",\"html\":\"\\n

Executes call(s) using the execute function on an ERC-7821-compatible contract.

\\n\",\"id\":\"pages/experimental/erc7821/execute.md#execute\",\"isPage\":true,\"text\":\"\\nExecutes call(s) using the execute function on an ERC-7821-compatible contract.\\n\",\"title\":\"execute\",\"titles\":[]},{\"href\":\"/experimental/erc7821/execute#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  account,\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"execute\",\"Usage\"]},{\"href\":\"/experimental/erc7821/execute#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'approve',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        100n\\n      ],\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'transferFrom',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        '0x0000000000000000000000000000000000000000',\\n        100n\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"execute\",\"Usage\"]},{\"href\":\"/experimental/erc7821/execute#return-value\",\"html\":\"\\n

Hash

\\n

A Transaction Hash.

\\n\",\"id\":\"pages/experimental/erc7821/execute.md#return-value\",\"isPage\":false,\"text\":\"\\nHash\\nA Transaction Hash.\\n\",\"title\":\"Return Value\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7821/execute.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

Account to invoke the execution of the calls.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#address\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Address of the contract to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#calls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

Set of calls to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#callsdata\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Calldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsto\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Recipient address of the call.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsvalue\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Value to send with the call.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n})\\n  .extend(eip7702Actions())\\n  .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  authorizationList: [authorization], \\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7821/execute.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: client.chain
  • \\n
\\n

Chain to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  gasPrice: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  maxFeePerGas: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#opdata-optional\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Additional data to pass to execution.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  opData: '0xdeadbeef', \\n})
\",\"id\":\"pages/experimental/erc7821/execute.md#opdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"title\":\"opData (optional)\",\"titles\":[\"execute\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Executes call(s) using the `execute` function on an ERC-7821-compatible contract.\\n---\\n\\n# execute\\n\\nExecutes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\\n\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `sendCalls`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n### Contract Calls\\n\\nThe `calls` property also accepts **Contract Calls**, and can be used via the `abi`, `functionName`, and `args` properties.\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n```\\n\\n:::\\n\\n## Return Value\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nA [Transaction Hash](/docs/glossary/terms#hash).\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address | null`\\n\\nAccount to invoke the execution of the calls.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc). If set to `null`, it is assumed that the transport will handle filling the sender of the transaction.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### address\\n\\n- **Type:** `0x${string}`\\n\\nAddress of the contract to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n```\\n\\n### calls\\n\\n- **Type:** `Call[]`\\n\\nSet of calls to execute.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\\n```\\n\\n#### calls.data\\n\\n- **Type:** `Hex`\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n#### calls.to\\n\\n- **Type:** `Address`\\n\\nRecipient address of the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\\n```\\n\\n#### calls.value\\n\\n- **Type:** `Address`\\n\\nValue to send with the call.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `client.chain`\\n\\nChain to execute the calls on.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). \\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\\n```\\n\\n### opData (optional)\\n\\n- **Type:** `Hex`\\n\\nAdditional data to pass to execution.\\n\\n```ts twoslash\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/experimental/erc7821/execute#execute\",\"html\":\"\\n

Executes call(s) using the execute function on an ERC-7821-compatible contract.

\\n\",\"id\":\"pages/experimental/erc7821/execute.md#execute\",\"isPage\":true,\"text\":\"\\nExecutes call(s) using the execute function on an ERC-7821-compatible contract.\\n\",\"title\":\"execute\",\"titles\":[]},{\"href\":\"/experimental/erc7821/execute#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  account,\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every sendCalls, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"execute\",\"Usage\"]},{\"href\":\"/experimental/erc7821/execute#contract-calls\",\"html\":\"\\n

The calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n  'function approve(address, uint256) returns (bool)',\\n  'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'approve',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n        100n\\n      ],\\n    },\\n    {\\n      to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n      abi,\\n      functionName: 'transferFrom',\\n      args: [\\n        '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n        '0x0000000000000000000000000000000000000000',\\n        100n\\n      ],\\n    },\\n  ],\\n})
import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#contract-calls\",\"isPage\":false,\"text\":\"\\nThe calls property also accepts Contract Calls, and can be used via the abi, functionName, and args properties.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"title\":\"Contract Calls\",\"titles\":[\"execute\",\"Usage\"]},{\"href\":\"/experimental/erc7821/execute#return-value\",\"html\":\"\\n

Hash

\\n

A Transaction Hash.

\\n\",\"id\":\"pages/experimental/erc7821/execute.md#return-value\",\"isPage\":false,\"text\":\"\\nHash\\nA Transaction Hash.\\n\",\"title\":\"Return Value\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/erc7821/execute.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"execute\"]},{\"href\":\"/experimental/erc7821/execute#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address | null
  • \\n
\\n

Account to invoke the execution of the calls.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address | null\\n\\nAccount to invoke the execution of the calls.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc). If set to null, it is assumed that the transport will handle filling the sender of the transaction.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"account\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#address\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

Address of the contract to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n  calls: [\\n    {\\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n      value: parseEther('1')\\n    },\\n    {\\n      data: '0xdeadbeef',\\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nAddress of the contract to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\\n\",\"title\":\"address\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#calls\",\"html\":\"\\n
    \\n
  • Type: Call[]
  • \\n
\\n

Set of calls to execute.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#calls\",\"isPage\":false,\"text\":\"\\n\\nType: Call[]\\n\\nSet of calls to execute.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#callsdata\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Calldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsdata\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nCalldata to broadcast (typically a contract function selector with encoded arguments, or contract deployment bytecode).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.data\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsto\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Recipient address of the call.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    },\\n  ],\\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsto\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nRecipient address of the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n },\\n ],\\n})\\n\",\"title\":\"calls.to\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#callsvalue\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Value to send with the call.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#callsvalue\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nValue to send with the call.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\n\",\"title\":\"calls.value\",\"titles\":[\"execute\",\"Parameters\",\"calls\"]},{\"href\":\"/experimental/erc7821/execute#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n})\\n  .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  authorizationList: [authorization], \\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n})
\\n\\n\",\"id\":\"pages/experimental/erc7821/execute.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\n// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], \\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: client.chain
  • \\n
\\n

Chain to execute the calls on.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  chain: optimism, \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: client.chain\\n\\nChain to execute the calls on.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains'\\n \\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, \\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  gasPrice: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1') \\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  maxFeePerGas: parseGwei('20'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), \\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei).

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n})
\\n\",\"id\":\"pages/experimental/erc7821/execute.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei).\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"execute\",\"Parameters\"]},{\"href\":\"/experimental/erc7821/execute#opdata-optional\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

Additional data to pass to execution.

\\n
// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  account,\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n  address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n  calls: [ \\n    { \\n      to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n      value: parseEther('1')\\n    }, \\n    { \\n      data: '0xdeadbeef', \\n      to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n    }, \\n  ], \\n  opData: '0xdeadbeef', \\n})
\",\"id\":\"pages/experimental/erc7821/execute.md#opdata-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nAdditional data to pass to execution.\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n \\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', \\n})\",\"title\":\"opData (optional)\",\"titles\":[\"execute\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json b/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json index e5976a47bc..05071cca9c 100644 --- a/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json +++ b/site/.cache/search.index.d54b0bbe35bd3554be6d55b36b373470516f3450eefc18f806c879bf43e12aca.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Gets time until the L2 withdrawal transaction is ready to be proved.\\n---\\n\\n# getTimeToProve\\n\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\nInternally calls [`getTimeToNextL2Output`](/op-stack/actions/getTimeToNextL2Output).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst { // [!code hl]\\n interval, // [!code hl]\\n seconds, // [!code hl]\\n timestamp // [!code hl]\\n} = await publicClientL1.getTimeToProve({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ interval: number, seconds: number, timestamp: number }`\\n\\n- `interval` between L2 outputs – the max time to wait for transaction to be proved.\\n- Estimated `seconds` until the transaction can be proved.\\n- Estimated `timestamp` of when the transaction can be proved.\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### intervalBuffer (optional)\\n\\n- **Type:** `number`\\n- **Default:** `1.1`\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, // [!code focus]\\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToProve#gettimetoprove\",\"html\":\"\\n

Gets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.

\\n

Internally calls getTimeToNextL2Output.

\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#gettimetoprove\",\"isPage\":true,\"text\":\"\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.\\nInternally calls getTimeToNextL2Output.\\n\",\"title\":\"getTimeToProve\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToProve#usage\",\"html\":\"\\n
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n  interval, \\n  seconds, \\n  timestamp\\n} = await publicClientL1.getTimeToProve({ \\n  receipt, \\n  targetChain: publicClientL2.chain, \\n}) 
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#usage\",\"isPage\":false,\"text\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n interval, \\n seconds, \\n timestamp\\n} = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#returns\",\"html\":\"\\n

{ interval: number, seconds: number, timestamp: number }

\\n
    \\n
  • interval between L2 outputs – the max time to wait for transaction to be proved.
  • \\n
  • Estimated seconds until the transaction can be proved.
  • \\n
  • Estimated timestamp of when the transaction can be proved.
  • \\n
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#returns\",\"isPage\":false,\"text\":\"\\n{ interval: number, seconds: number, timestamp: number }\\n\\ninterval between L2 outputs – the max time to wait for transaction to be proved.\\nEstimated seconds until the transaction can be proved.\\nEstimated timestamp of when the transaction can be proved.\\n\\n\",\"title\":\"Returns\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#receipt\",\"html\":\"\\n
    \\n
  • Type: TransactionReceipt
  • \\n
\\n

The transaction receipt.

\\n
const time = await publicClientL1.getTimeToProve({ \\n  receipt, \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const time = await publicClientL1.getTimeToProve({\\n  l2BlockNumber,\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#intervalbuffer-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: 1.1
  • \\n
\\n

The buffer to account for discrepancies between non-deterministic time intervals.

\\n
const time = await publicClientL1.getTimeToProve({ \\n  intervalBuffer: 1.2, \\n  l2BlockNumber,\\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#intervalbuffer-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 1.1\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"title\":\"intervalBuffer (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#l2outputoracleaddress-optional\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
  • Default: targetChain.contracts.l2OutputOracle[chainId].address
  • \\n
\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const time = await publicClientL1.getTimeToProve({\\n  l2BlockNumber,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\noutline: deep\\ndescription: Gets time until the L2 withdrawal transaction is ready to be proved.\\n---\\n\\n# getTimeToProve\\n\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.\\n\\nInternally calls [`getTimeToNextL2Output`](/op-stack/actions/getTimeToNextL2Output).\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts [example.ts]\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n\\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n\\nconst { // [!code hl]\\n interval, // [!code hl]\\n seconds, // [!code hl]\\n timestamp // [!code hl]\\n} = await publicClientL1.getTimeToProve({ // [!code hl]\\n receipt, // [!code hl]\\n targetChain: publicClientL2.chain, // [!code hl]\\n}) // [!code hl]\\n```\\n\\n```ts [config.ts]\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n\\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n`{ interval: number, seconds: number, timestamp: number }`\\n\\n- `interval` between L2 outputs – the max time to wait for transaction to be proved.\\n- Estimated `seconds` until the transaction can be proved.\\n- Estimated `timestamp` of when the transaction can be proved.\\n\\n## Parameters\\n\\n### receipt\\n\\n- **Type:** `TransactionReceipt`\\n\\nThe transaction receipt.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, // [!code focus]\\n targetChain: optimism, \\n}) \\n```\\n\\n### targetChain\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n\\nThe L2 chain.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, // [!code focus]\\n})\\n```\\n\\n### intervalBuffer (optional)\\n\\n- **Type:** `number`\\n- **Default:** `1.1`\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, // [!code focus]\\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n```\\n\\n### l2OutputOracleAddress (optional)\\n\\n- **Type:** `Address`\\n- **Default:** `targetChain.contracts.l2OutputOracle[chainId].address`\\n\\nThe address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`.\\n\\nIf a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional.\\n\\n```ts\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus]\\n})\\n```\\n\",\"document\":[{\"href\":\"/op-stack/actions/getTimeToProve#gettimetoprove\",\"html\":\"\\n

Gets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.

\\n

Internally calls getTimeToNextL2Output.

\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#gettimetoprove\",\"isPage\":true,\"text\":\"\\nGets time until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.\\nInternally calls getTimeToNextL2Output.\\n\",\"title\":\"getTimeToProve\",\"titles\":[]},{\"href\":\"/op-stack/actions/getTimeToProve#usage\",\"html\":\"\\n
import { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n  interval, \\n  seconds, \\n  timestamp\\n} = await publicClientL1.getTimeToProve({ \\n  receipt, \\n  targetChain: publicClientL2.chain, \\n}) 
import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n  chain: mainnet,\\n  transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n  chain: optimism,\\n  transport: http()\\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#usage\",\"isPage\":false,\"text\":\"\\nimport { account, publicClientL1, publicClientL2 } from './config'\\n \\nconst receipt = await publicClientL2.getTransactionReceipt({\\n hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'\\n})\\n \\nconst { \\n interval, \\n seconds, \\n timestamp\\n} = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: publicClientL2.chain, \\n}) import { createPublicClient, custom, http } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\nimport { publicActionsL1 } from 'viem/op-stack'\\n \\nexport const publicClientL1 = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActionsL1())\\nexport const publicClientL2 = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\\n\",\"title\":\"Usage\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#returns\",\"html\":\"\\n

{ interval: number, seconds: number, timestamp: number }

\\n
    \\n
  • interval between L2 outputs – the max time to wait for transaction to be proved.
  • \\n
  • Estimated seconds until the transaction can be proved.
  • \\n
  • Estimated timestamp of when the transaction can be proved.
  • \\n
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#returns\",\"isPage\":false,\"text\":\"\\n{ interval: number, seconds: number, timestamp: number }\\n\\ninterval between L2 outputs – the max time to wait for transaction to be proved.\\nEstimated seconds until the transaction can be proved.\\nEstimated timestamp of when the transaction can be proved.\\n\\n\",\"title\":\"Returns\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#parameters\",\"html\":\"\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"getTimeToProve\"]},{\"href\":\"/op-stack/actions/getTimeToProve#receipt\",\"html\":\"\\n
    \\n
  • Type: TransactionReceipt
  • \\n
\\n

The transaction receipt.

\\n
const time = await publicClientL1.getTimeToProve({ \\n  receipt, \\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#receipt\",\"isPage\":false,\"text\":\"\\n\\nType: TransactionReceipt\\n\\nThe transaction receipt.\\nconst time = await publicClientL1.getTimeToProve({ \\n receipt, \\n targetChain: optimism, \\n}) \\n\",\"title\":\"receipt\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#targetchain\",\"html\":\"\\n\\n

The L2 chain.

\\n
const time = await publicClientL1.getTimeToProve({\\n  l2BlockNumber,\\n  targetChain: optimism, \\n})
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#targetchain\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\n\\nThe L2 chain.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n targetChain: optimism, \\n})\\n\",\"title\":\"targetChain\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#intervalbuffer-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: 1.1
  • \\n
\\n

The buffer to account for discrepancies between non-deterministic time intervals.

\\n
const time = await publicClientL1.getTimeToProve({ \\n  intervalBuffer: 1.2, \\n  l2BlockNumber,\\n  targetChain: optimism, \\n}) 
\\n\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#intervalbuffer-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 1.1\\n\\nThe buffer to account for discrepancies between non-deterministic time intervals.\\nconst time = await publicClientL1.getTimeToProve({ \\n intervalBuffer: 1.2, \\n l2BlockNumber,\\n targetChain: optimism, \\n}) \\n\",\"title\":\"intervalBuffer (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]},{\"href\":\"/op-stack/actions/getTimeToProve#l2outputoracleaddress-optional\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
  • Default: targetChain.contracts.l2OutputOracle[chainId].address
  • \\n
\\n

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

\\n

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

\\n
const time = await publicClientL1.getTimeToProve({\\n  l2BlockNumber,\\n  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})
\",\"id\":\"pages/op-stack/actions/getTimeToProve.md#l2outputoracleaddress-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\nDefault: targetChain.contracts.l2OutputOracle[chainId].address\\n\\nThe address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.\\nIf a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.\\nconst time = await publicClientL1.getTimeToProve({\\n l2BlockNumber,\\n l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'\\n})\",\"title\":\"l2OutputOracleAddress (optional)\",\"titles\":[\"getTimeToProve\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json b/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json index fb1ccc2c0e..29e996d8e6 100644 --- a/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json +++ b/site/.cache/search.index.deefe97980bb5ce9c2653a45ca3419f066f8a0e97b0203856f98d30fa2e945f4.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Checks whether the signature is in ERC-6492 format.\\n---\\n\\n# isErc6492Signature\\n\\nChecks whether the signature is in [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) format.\\n\\n## Import\\n\\n```ts\\nimport { isErc6492Signature } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { isErc6492Signature } from 'viem/experimental'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n```\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is in ERC-6492 format.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe signature to check.\",\"document\":[{\"href\":\"/docs/utilities/isErc6492Signature#iserc6492signature\",\"html\":\"\\n

Checks whether the signature is in ERC-6492 format.

\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#iserc6492signature\",\"isPage\":true,\"text\":\"\\nChecks whether the signature is in ERC-6492 format.\\n\",\"title\":\"isErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/isErc6492Signature#import\",\"html\":\"\\n
import { isErc6492Signature } from 'viem/experimental'
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#usage\",\"html\":\"\\n
import { isErc6492Signature } from 'viem/experimental'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/experimental'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"title\":\"Usage\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#returns\",\"html\":\"\\n

boolean

\\n

Whether the signature is in ERC-6492 format.

\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is in ERC-6492 format.\\n\",\"title\":\"Returns\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#signature\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

The signature to check.

\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe signature to check.\",\"title\":\"signature\",\"titles\":[\"isErc6492Signature\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Checks whether the signature is in ERC-6492 format.\\n---\\n\\n# isErc6492Signature\\n\\nChecks whether the signature is in [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) format.\\n\\n## Import\\n\\n```ts\\nimport { isErc6492Signature } from 'viem/utils'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { isErc6492Signature } from 'viem/utils'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n```\\n\\n## Returns\\n\\n`boolean`\\n\\nWhether the signature is in ERC-6492 format.\\n\\n## Parameters\\n\\n### signature\\n\\n- **Type:** [`Hex`](/docs/glossary/types#hex)\\n\\nThe signature to check.\",\"document\":[{\"href\":\"/docs/utilities/isErc6492Signature#iserc6492signature\",\"html\":\"\\n

Checks whether the signature is in ERC-6492 format.

\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#iserc6492signature\",\"isPage\":true,\"text\":\"\\nChecks whether the signature is in ERC-6492 format.\\n\",\"title\":\"isErc6492Signature\",\"titles\":[]},{\"href\":\"/docs/utilities/isErc6492Signature#import\",\"html\":\"\\n
import { isErc6492Signature } from 'viem/utils'
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#import\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n\",\"title\":\"Import\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#usage\",\"html\":\"\\n
import { isErc6492Signature } from 'viem/utils'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')
\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#usage\",\"isPage\":false,\"text\":\"\\nimport { isErc6492Signature } from 'viem/utils'\\n \\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n\",\"title\":\"Usage\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#returns\",\"html\":\"\\n

boolean

\\n

Whether the signature is in ERC-6492 format.

\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#returns\",\"isPage\":false,\"text\":\"\\nboolean\\nWhether the signature is in ERC-6492 format.\\n\",\"title\":\"Returns\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"isErc6492Signature\"]},{\"href\":\"/docs/utilities/isErc6492Signature#signature\",\"html\":\"\\n
    \\n
  • Type: Hex
  • \\n
\\n

The signature to check.

\",\"id\":\"pages/docs/utilities/isErc6492Signature.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex\\n\\nThe signature to check.\",\"title\":\"signature\",\"titles\":[\"isErc6492Signature\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json b/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json new file mode 100644 index 0000000000..f1f523012a --- /dev/null +++ b/site/.cache/search.index.ece073ce90dabf0a86cef6e19bbae89cc9f3cbb4eacd8d764bf3d283dbd74206.json @@ -0,0 +1 @@ +"{\"value\":{\"mdx\":\"---\\ndescription: Waits for a call batch to be confirmed & included on a Block.\\n---\\n\\n# waitForCallsStatus\\n\\nWaits for a call batch to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n// @log: atomic: false,\\n// @log: chainId: 1,\\n// @log: id: '0x1234567890abcdef',\\n// @log: statusCode: 200,\\n// @log: status: 'success',\\n// @log: receipts: [{ ... }],\\n// @log: }\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n```\\n\\n:::\\n\\n## Returns\\n\\n`WaitForCallsStatusReturnType`\\n\\nStatus and receipts of the calls.\\n\\n## Parameters\\n\\n### id\\n\\n- **Type:** `string`\\n\\nIdentifier of the call batch.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', // [!code focus]\\n})\\n```\\n\\n### pollingInterval\\n\\n- **Type:** `number`\\n- **Default:** `client.pollingInterval`\\n\\nPolling interval in milliseconds.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, // [!code focus]\\n})\\n```\\n\\n### status\\n\\n- **Type:** `(parameters: { statusCode: number, status: string | undefined }) => boolean`\\n- **Default:** `(parameters) => parameters.statusCode >= 200`\\n\\nStatus to wait for. Defaults to non-pending status codes (`>=200`).\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', // [!code focus]\\n})\\n```\\n\\n### timeout\\n\\n- **Type:** `number`\\n- **Default:** `60_000`\\n\\nTimeout in milliseconds before `waitForCallsStatus` stops polling.\\n\\n```ts\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, // [!code focus]\\n})\\n```\",\"document\":[{\"href\":\"/docs/actions/wallet/waitForCallsStatus#waitforcallsstatus\",\"html\":\"\\n

Waits for a call batch to be confirmed & included on a Block before returning the status & receipts.

\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#waitforcallsstatus\",\"isPage\":true,\"text\":\"\\nWaits for a call batch to be confirmed & included on a Block before returning the status & receipts.\\n\",\"title\":\"waitForCallsStatus\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n  account,\\n  calls: [{\\n    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n    value: parseEther('1')\\n  }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n  id, \\n}) \\n// @log: {\\n \\n// @log:   atomic: false,\\n \\n// @log:   chainId: 1,\\n \\n// @log:   id: '0x1234567890abcdef',\\n \\n// @log:   statusCode: 200,\\n \\n// @log:   status: 'success',\\n \\n// @log:   receipts: [{ ... }],\\n \\n// @log: }
import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @filename: example.js\\n \\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ \\n id, \\n}) \\n// @log: {\\n \\n// @log: atomic: false,\\n \\n// @log: chainId: 1,\\n \\n// @log: id: '0x1234567890abcdef',\\n \\n// @log: statusCode: 200,\\n \\n// @log: status: 'success',\\n \\n// @log: receipts: [{ ... }],\\n \\n// @log: }import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n\",\"title\":\"Usage\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#returns\",\"html\":\"\\n

WaitForCallsStatusReturnType

\\n

Status and receipts of the calls.

\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#returns\",\"isPage\":false,\"text\":\"\\nWaitForCallsStatusReturnType\\nStatus and receipts of the calls.\\n\",\"title\":\"Returns\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"waitForCallsStatus\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#id\",\"html\":\"\\n
    \\n
  • Type: string
  • \\n
\\n

Identifier of the call batch.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef', \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#id\",\"isPage\":false,\"text\":\"\\n\\nType: string\\n\\nIdentifier of the call batch.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef', \\n})\\n\",\"title\":\"id\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#pollinginterval\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: client.pollingInterval
  • \\n
\\n

Polling interval in milliseconds.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  pollingInterval: 1_000, \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#pollinginterval\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: client.pollingInterval\\n\\nPolling interval in milliseconds.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n pollingInterval: 1_000, \\n})\\n\",\"title\":\"pollingInterval\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#status\",\"html\":\"\\n
    \\n
  • Type: (parameters: { statusCode: number, status: string | undefined }) => boolean
  • \\n
  • Default: (parameters) => parameters.statusCode >= 200
  • \\n
\\n

Status to wait for. Defaults to non-pending status codes (>=200).

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  status: ({ status }) => status === 'success', \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#status\",\"isPage\":false,\"text\":\"\\n\\nType: (parameters: { statusCode: number, status: string | undefined }) => boolean\\nDefault: (parameters) => parameters.statusCode >= 200\\n\\nStatus to wait for. Defaults to non-pending status codes (>=200).\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n status: ({ status }) => status === 'success', \\n})\\n\",\"title\":\"status\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/waitForCallsStatus#timeout\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
  • Default: 60_000
  • \\n
\\n

Timeout in milliseconds before waitForCallsStatus stops polling.

\\n
const result = await walletClient.waitForCallsStatus({\\n  id: '0xdeadbeef',\\n  timeout: 10_000, \\n})
\",\"id\":\"pages/docs/actions/wallet/waitForCallsStatus.mdx#timeout\",\"isPage\":false,\"text\":\"\\n\\nType: number\\nDefault: 60_000\\n\\nTimeout in milliseconds before waitForCallsStatus stops polling.\\nconst result = await walletClient.waitForCallsStatus({\\n id: '0xdeadbeef',\\n timeout: 10_000, \\n})\",\"title\":\"timeout\",\"titles\":[\"waitForCallsStatus\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json b/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json deleted file mode 100644 index 26fc711029..0000000000 --- a/site/.cache/search.index.f1bf7093482dbcca671b67ea308a7b3162856079af98634d0aef0fa02599ea30.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Recovers the original signing address from a signed Authorization object.\\n---\\n\\n# recoverAuthorizationAddress\\n\\nRecovers the original signing address from a signed Authorization object.\\n\\n## Import\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { recoverAuthorizationAddress } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\\n```\\n\\n```ts twoslash [client.ts] filename=\\\"client.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n```\\n\\n:::\\n\\n## Returns\\n\\n`Address`\\n\\nThe address that signed the Authorization object.\\n\\n## Parameters\\n\\n### authorization\\n\\n- **Type:** `Authorization | SignedAuthorization`\\n\\nThe Authorization object that was signed.\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \\n```\\n\\n### signature\\n\\n- **Type:** `Hex | ByteArray | Signature | SignedAuthorization`\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n\\n```ts twoslash\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#recoverauthorizationaddress\",\"html\":\"\\n

Recovers the original signing address from a signed Authorization object.

\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#recoverauthorizationaddress\",\"isPage\":true,\"text\":\"\\nRecovers the original signing address from a signed Authorization object.\\n\",\"title\":\"recoverAuthorizationAddress\",\"titles\":[]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#import\",\"html\":\"\\n
import { recoverAuthorizationAddress } from 'viem/experimental'
\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#import\",\"isPage\":false,\"text\":\"\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#usage\",\"html\":\"\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n  authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst address = await recoverAuthorizationAddress({ \\n  authorization, \\n}) 
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())
\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n \\nconst address = await recoverAuthorizationAddress({ \\n authorization, \\n}) import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"title\":\"Usage\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#returns\",\"html\":\"\\n

Address

\\n

The address that signed the Authorization object.

\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#returns\",\"isPage\":false,\"text\":\"\\nAddress\\nThe address that signed the Authorization object.\\n\",\"title\":\"Returns\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"recoverAuthorizationAddress\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#authorization\",\"html\":\"\\n
    \\n
  • Type: Authorization | SignedAuthorization
  • \\n
\\n

The Authorization object that was signed.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n  // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n  authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n  authorization, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#authorization\",\"isPage\":false,\"text\":\"\\n\\nType: Authorization | SignedAuthorization\\n\\nThe Authorization object that was signed.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, \\n}) \\n\",\"title\":\"authorization\",\"titles\":[\"recoverAuthorizationAddress\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/recoverAuthorizationAddress#signature\",\"html\":\"\\n
    \\n
  • Type: Hex | ByteArray | Signature | SignedAuthorization
  • \\n
\\n

The signature that was generated by signing the Authorization object with the address's private key.

\\n
// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n  // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n  chainId: 1,\\n  nonce: 0,\\n})\\n \\nconst address = await recoverAuthorizationAddress({\\n  authorization: {\\n    contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n    chainId: 1,\\n    nonce: 0,\\n  },\\n  signature, \\n}) 
\",\"id\":\"pages/experimental/eip7702/recoverAuthorizationAddress.md#signature\",\"isPage\":false,\"text\":\"\\n\\nType: Hex | ByteArray | Signature | SignedAuthorization\\n\\nThe signature that was generated by signing the Authorization object with the address's private key.\\n// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// @filename: example.js\\n \\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n \\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, \\n}) \",\"title\":\"signature\",\"titles\":[\"recoverAuthorizationAddress\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json b/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json deleted file mode 100644 index bf94e001e9..0000000000 --- a/site/.cache/search.index.f4b7d7a44c33c0702f0e466f2fe300fc90db7361a261c887d7e7b151034a41a0.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Calculates an Authorization object hash in EIP-7702 format.\\n---\\n\\n# hashAuthorization\\n\\nCalculates an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\\n\\n## Import\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n```\\n\\n## Usage\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\\n```\\n\\n## Returns\\n\\n[`Hash`](/docs/glossary/types#hash)\\n\\nThe hashed Authorization.\\n\\n## Parameters\\n\\n### address\\n\\n- **Type:** `Address`\\n\\nAddress of the contract to set as code for the Authority.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', // [!code focus]\\n chainId: 1,\\n nonce: 0,\\n}) \\n```\\n\\n### chainId\\n\\n- **Type:** `number`\\n\\nChain ID to authorize.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, // [!code focus]\\n nonce: 0,\\n}) \\n```\\n\\n### nonce\\n\\n- **Type:** `number`\\n\\nNonce of the Authority to authorize.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, // [!code focus]\\n}) \\n```\\n\\n### to\\n\\n- **Type:** `\\\"hex\\\" | \\\"bytes\\\"`\\n- **Default:** `\\\"hex\\\"`\\n\\nOutput format.\\n\\n```ts twoslash\\nimport { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', // [!code focus]\\n}) \\n```\",\"document\":[{\"href\":\"/experimental/eip7702/hashAuthorization#hashauthorization\",\"html\":\"\\n

Calculates an Authorization hash in EIP-7702 format: keccak256('0x05' || rlp([chain_id, address, nonce])).

\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#hashauthorization\",\"isPage\":true,\"text\":\"\\nCalculates an Authorization hash in EIP-7702 format: keccak256('0x05' || rlp([chain_id, address, nonce])).\\n\",\"title\":\"hashAuthorization\",\"titles\":[]},{\"href\":\"/experimental/eip7702/hashAuthorization#import\",\"html\":\"\\n
import { hashAuthorization } from 'viem/experimental'
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#import\",\"isPage\":false,\"text\":\"\\nimport { hashAuthorization } from 'viem/experimental'\\n\",\"title\":\"Import\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#usage\",\"html\":\"\\n
import { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n  chainId: 1,\\n  nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#usage\",\"isPage\":false,\"text\":\"\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\\n\",\"title\":\"Usage\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#returns\",\"html\":\"\\n

Hash

\\n

The hashed Authorization.

\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#returns\",\"isPage\":false,\"text\":\"\\nHash\\nThe hashed Authorization.\\n\",\"title\":\"Returns\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#parameters\",\"html\":\"\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"hashAuthorization\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#address\",\"html\":\"\\n
    \\n
  • Type: Address
  • \\n
\\n

Address of the contract to set as code for the Authority.

\\n
import { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n  chainId: 1,\\n  nonce: 0,\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#address\",\"isPage\":false,\"text\":\"\\n\\nType: Address\\n\\nAddress of the contract to set as code for the Authority.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n chainId: 1,\\n nonce: 0,\\n}) \\n\",\"title\":\"address\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#chainid\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

Chain ID to authorize.

\\n
import { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n  chainId: 1, \\n  nonce: 0,\\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#chainid\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nChain ID to authorize.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, \\n nonce: 0,\\n}) \\n\",\"title\":\"chainId\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#nonce\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

Nonce of the Authority to authorize.

\\n
import { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n  chainId: 1,\\n  nonce: 0, \\n}) 
\\n\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#nonce\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nNonce of the Authority to authorize.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n}) \\n\",\"title\":\"nonce\",\"titles\":[\"hashAuthorization\",\"Parameters\"]},{\"href\":\"/experimental/eip7702/hashAuthorization#to\",\"html\":\"\\n
    \\n
  • Type: "hex" | "bytes"
  • \\n
  • Default: "hex"
  • \\n
\\n

Output format.

\\n
import { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n  contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n  chainId: 1,\\n  nonce: 0, \\n  to: 'bytes', \\n}) 
\",\"id\":\"pages/experimental/eip7702/hashAuthorization.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: "hex" | "bytes"\\nDefault: "hex"\\n\\nOutput format.\\nimport { hashAuthorization } from 'viem/experimental'\\n \\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', \\n}) \",\"title\":\"to\",\"titles\":[\"hashAuthorization\",\"Parameters\"]}]}}" diff --git a/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json b/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json index 46c7e35cb9..0195d40848 100644 --- a/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json +++ b/site/.cache/search.index.f86f30efd8be454022627c2302071b770e10b252f7564055d38c873a45dd1eec.json @@ -1 +1 @@ -"{\"value\":{\"mdx\":\"---\\ndescription: Signs a transaction.\\n---\\n\\n# signTransaction\\n\\nSigns a transaction.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe signed serialized transaction.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `signTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/signTransaction#signtransaction\",\"html\":\"\\n

Signs a transaction.

\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#signtransaction\",\"isPage\":true,\"text\":\"\\nSigns a transaction.\\n\",\"title\":\"signTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/signTransaction#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\",\"title\":\"Usage\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"signTransaction\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/signTransaction#returns\",\"html\":\"\\n

Hex

\\n

The signed serialized transaction.

\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe signed serialized transaction.\\n\",\"title\":\"Returns\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address
  • \\n
\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#to\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#blobs-optional\",\"html\":\"\\n
    \\n
  • Type: Hex[]
  • \\n
\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: walletClient.chain
  • \\n
\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#data-optional\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#kzg-optional\",\"html\":\"\\n
    \\n
  • Type: KZG
  • \\n
\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#nonce-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#value-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]}]}}" +"{\"value\":{\"mdx\":\"---\\ndescription: Signs a transaction.\\n---\\n\\n# signTransaction\\n\\nSigns a transaction.\\n\\n## Usage\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts twoslash [config.ts] filename=\\\"config.ts\\\"\\n// [!include ~/snippets/walletClient.ts]\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n```\\n\\n:::\\n\\n### Account Hoisting\\n\\nIf you do not wish to pass an `account` to every `prepareTransactionRequest`, you can also hoist the Account on the Wallet Client (see `config.ts`).\\n\\n[Learn more](/docs/clients/wallet#account).\\n\\n:::code-group\\n\\n```ts twoslash [example.ts]\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\\n```\\n\\n```ts [config.ts (JSON-RPC Account)]\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n```\\n\\n```ts twoslash [config.ts (Local Account)] filename=\\\"config.ts\\\"\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n```\\n\\n:::\\n\\n## Returns\\n\\n[`Hex`](/docs/glossary/types#hex)\\n\\nThe signed serialized transaction.\\n\\n## Parameters\\n\\n### account\\n\\n- **Type:** `Account | Address`\\n\\nThe Account to send the transaction from.\\n\\nAccepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts) or [Local Account (Private Key, etc)](/docs/clients/wallet#local-accounts-private-key-mnemonic-etc).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### to\\n\\n- **Type:** `0x${string}`\\n\\nThe transaction recipient or contract address.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n```\\n\\n### accessList (optional)\\n\\n- **Type:** [`AccessList`](/docs/glossary/types#accesslist)\\n\\nThe access list.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\\n\\n### authorizationList (optional)\\n\\n- **Type:** `AuthorizationList`\\n\\nSigned EIP-7702 Authorization list.\\n\\n```ts twoslash\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\\n```\\n\\n:::note\\n**References**\\n- [EIP-7702 Overview](/docs/eip7702)\\n- [`signAuthorization` Docs](/docs/eip7702/signAuthorization)\\n:::\\n\\n### blobs (optional)\\n\\n- **Type:** `Hex[]`\\n\\nBlobs for [Blob Transactions](/docs/guides/blob-transactions). \\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n\\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n### chain (optional)\\n\\n- **Type:** [`Chain`](/docs/glossary/types#chain)\\n- **Default:** `walletClient.chain`\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\n\\nThe chain is also used to infer its request type (e.g. the Celo chain has a `gatewayFee` that you can pass through to `signTransaction`).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### data (optional)\\n\\n- **Type:** `0x${string}`\\n\\nA contract hashed method call with encoded args.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n```\\n\\n### gas (optional)\\n\\n- **Type:** `bigint`\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### gasPrice (optional)\\n\\n- **Type:** `bigint`\\n\\nThe price (in wei) to pay per gas. Only applies to [Legacy Transactions](/docs/glossary/terms#legacy-transaction).\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n```\\n\\n### kzg (optional)\\n\\n- **Type:** `KZG`\\n\\nKZG implementation for [Blob Transactions](/docs/guides/blob-transactions). \\n\\nSee [`setupKzg`](/docs/utilities/setupKzg) for more information.\\n\\n```ts\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), // [!code focus]\\n kzg, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n```\\n\\n\\n### maxFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nTotal fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### maxPriorityFeePerGas (optional)\\n\\n- **Type:** `bigint`\\n\\nMax priority fee per gas (in wei). Only applies to [EIP-1559 Transactions](/docs/glossary/terms#eip-1559-transaction)\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n```\\n\\n### nonce (optional)\\n\\n- **Type:** `number`\\n\\nUnique number identifying this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\\n```\\n\\n### value (optional)\\n\\n- **Type:** `bigint`\\n\\nValue in wei sent with this transaction.\\n\\n```ts twoslash\\n// [!include ~/snippets/walletClient.ts]\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\\n```\\n\",\"document\":[{\"href\":\"/docs/actions/wallet/signTransaction#signtransaction\",\"html\":\"\\n

Signs a transaction.

\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#signtransaction\",\"isPage\":true,\"text\":\"\\nSigns a transaction.\\n\",\"title\":\"signTransaction\",\"titles\":[]},{\"href\":\"/docs/actions/wallet/signTransaction#usage\",\"html\":\"\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#usage\",\"isPage\":false,\"text\":\"\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\",\"title\":\"Usage\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account-hoisting\",\"html\":\"\\n

If you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).

\\n

Learn more.

\\n
// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)
import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n  method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n  account,\\n  transport: custom(window.ethereum!)\\n})
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n  account: privateKeyToAccount('0x...'),\\n  transport: http()\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account-hoisting\",\"isPage\":false,\"text\":\"\\nIf you do not wish to pass an account to every prepareTransactionRequest, you can also hoist the Account on the Wallet Client (see config.ts).\\nLearn more.\\n// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n// @filename: config.ts\\n \\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n \\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n \\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n \\n// @filename: example.js\\n \\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n \\nconst signature = await walletClient.signTransaction(request) \\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n \\nconst hash = await walletClient.sendRawTransaction(signature)import { createWalletClient, custom } from 'viem'\\n \\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum.request({ \\n method: 'eth_requestAccounts' \\n})\\n \\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n \\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"title\":\"Account Hoisting\",\"titles\":[\"signTransaction\",\"Usage\"]},{\"href\":\"/docs/actions/wallet/signTransaction#returns\",\"html\":\"\\n

Hex

\\n

The signed serialized transaction.

\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#returns\",\"isPage\":false,\"text\":\"\\nHex\\nThe signed serialized transaction.\\n\",\"title\":\"Returns\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#parameters\",\"html\":\"\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#parameters\",\"isPage\":false,\"text\":\"\\n\",\"title\":\"Parameters\",\"titles\":[\"signTransaction\"]},{\"href\":\"/docs/actions/wallet/signTransaction#account\",\"html\":\"\\n
    \\n
  • Type: Account | Address
  • \\n
\\n

The Account to send the transaction from.

\\n

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#account\",\"isPage\":false,\"text\":\"\\n\\nType: Account | Address\\n\\nThe Account to send the transaction from.\\nAccepts a JSON-RPC Account or Local Account (Private Key, etc).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"account\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#to\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

The transaction recipient or contract address.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#to\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nThe transaction recipient or contract address.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"to\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#accesslist-optional\",\"html\":\"\\n\\n

The access list.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  accessList: [ \\n    {\\n      address: '0x1',\\n      storageKeys: ['0x1'],\\n    },\\n  ],\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#accesslist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AccessList\\n\\nThe access list.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ \\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n\",\"title\":\"accessList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#authorizationlist-optional\",\"html\":\"\\n
    \\n
  • Type: AuthorizationList
  • \\n
\\n

Signed EIP-7702 Authorization list.

\\n
import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n  account,\\n  contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n  account,\\n  authorizationList: [authorization], \\n  data: '0xdeadbeef',\\n  to: account.address,\\n})
\\n\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#authorizationlist-optional\",\"isPage\":false,\"text\":\"\\n\\nType: AuthorizationList\\n\\nSigned EIP-7702 Authorization list.\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n \\nconst account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], \\n data: '0xdeadbeef',\\n to: account.address,\\n})\\nReferences\\nEIP-7702 Overview\\nsignAuthorization Docs\\n\\n\",\"title\":\"authorizationList (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#blobs-optional\",\"html\":\"\\n
    \\n
  • Type: Hex[]
  • \\n
\\n

Blobs for Blob Transactions.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#blobs-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Hex[]\\n\\nBlobs for Blob Transactions.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst hash = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"blobs (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#chain-optional\",\"html\":\"\\n
    \\n
  • Type: Chain
  • \\n
  • Default: walletClient.chain
  • \\n
\\n

The target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.

\\n

The chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n  chain: optimism, \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#chain-optional\",\"isPage\":false,\"text\":\"\\n\\nType: Chain\\nDefault: walletClient.chain\\n\\nThe target chain. If there is a mismatch between the wallet's current chain & the target chain, an error will be thrown.\\nThe chain is also used to infer its request type (e.g. the Celo chain has a gatewayFee that you can pass through to signTransaction).\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains'\\n \\nconst signature = await walletClient.signTransaction({\\n chain: optimism, \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"chain (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#data-optional\",\"html\":\"\\n
    \\n
  • Type: 0x${string}
  • \\n
\\n

A contract hashed method call with encoded args.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#data-optional\",\"isPage\":false,\"text\":\"\\n\\nType: 0x${string}\\n\\nA contract hashed method call with encoded args.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', \\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\",\"title\":\"data (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The gas limit of the transaction. If missing, it will be estimated.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  gas: 21000n, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe gas limit of the transaction. If missing, it will be estimated.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#gasprice-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

The price (in wei) to pay per gas. Only applies to Legacy Transactions.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  gasPrice: parseGwei('20'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1') \\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#gasprice-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nThe price (in wei) to pay per gas. Only applies to Legacy Transactions.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\\n\",\"title\":\"gasPrice (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#kzg-optional\",\"html\":\"\\n
    \\n
  • Type: KZG
  • \\n
\\n

KZG implementation for Blob Transactions.

\\n

See setupKzg for more information.

\\n
import * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n  account,\\n  blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n  kzg, \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#kzg-optional\",\"isPage\":false,\"text\":\"\\n\\nType: KZG\\n\\nKZG implementation for Blob Transactions.\\nSee setupKzg for more information.\\nimport * as cKzg from 'c-kzg'\\nimport { toBlobs, setupKzg, stringToHex } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n \\nconst kzg = setupKzg(cKzg, mainnetTrustedSetupPath) \\n \\nconst signature = await walletClient.signTransaction({\\n account,\\n blobs: toBlobs({ data: stringToHex('blobby blob!') }), \\n kzg, \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\\n\",\"title\":\"kzg (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),  \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nTotal fee per gas (in wei), inclusive of maxPriorityFeePerGas. Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#maxpriorityfeepergas-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  maxFeePerGas: parseGwei('20'),\\n  maxPriorityFeePerGas: parseGwei('2'), \\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1')\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#maxpriorityfeepergas-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nMax priority fee per gas (in wei). Only applies to EIP-1559 Transactions\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\\n\",\"title\":\"maxPriorityFeePerGas (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#nonce-optional\",\"html\":\"\\n
    \\n
  • Type: number
  • \\n
\\n

Unique number identifying this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: 1000000000000000000n,\\n  nonce: 69\\n})
\\n\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#nonce-optional\",\"isPage\":false,\"text\":\"\\n\\nType: number\\n\\nUnique number identifying this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69\\n})\\n\",\"title\":\"nonce (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]},{\"href\":\"/docs/actions/wallet/signTransaction#value-optional\",\"html\":\"\\n
    \\n
  • Type: bigint
  • \\n
\\n

Value in wei sent with this transaction.

\\n
import 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n  chain: mainnet,\\n  transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n  account,\\n  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n  value: parseEther('1'), \\n  nonce: 69\\n})
\",\"id\":\"pages/docs/actions/wallet/signTransaction.md#value-optional\",\"isPage\":false,\"text\":\"\\n\\nType: bigint\\n\\nValue in wei sent with this transaction.\\nimport 'viem/window'\\n \\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), \\n nonce: 69\\n})\",\"title\":\"value (optional)\",\"titles\":[\"signTransaction\",\"Parameters\"]}]}}" diff --git a/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json b/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json index eaa93de1f7..93166aefe9 100644 --- a/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json +++ b/site/.cache/twoslash.008be0f11f4925f2cb71360e9c244eb52c12bd5b2cd61b027d02d4b2b63474e5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n nonce: 420, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":152,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n nonce: 420, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":152,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n nonce: 420, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":152,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n nonce: 420, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":152,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.013896db8a089ac40eca1c7566dec6e3bcab9776e119272eb778dc7380c7c509.json b/site/.cache/twoslash.013896db8a089ac40eca1c7566dec6e3bcab9776e119272eb778dc7380c7c509.json new file mode 100644 index 0000000000..6dbe1e7bd5 --- /dev/null +++ b/site/.cache/twoslash.013896db8a089ac40eca1c7566dec6e3bcab9776e119272eb778dc7380c7c509.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":50,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":76,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":110,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":187,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":194,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":50,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":76,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":110,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":187,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":194,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.01abfa23895f86f016c568c2e53772ce2ebbb508a08902feaf2d4ffc9d78fbf7.json b/site/.cache/twoslash.01abfa23895f86f016c568c2e53772ce2ebbb508a08902feaf2d4ffc9d78fbf7.json deleted file mode 100644 index c485a4c83b..0000000000 --- a/site/.cache/twoslash.01abfa23895f86f016c568c2e53772ce2ebbb508a08902feaf2d4ffc9d78fbf7.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":71,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":86,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":71,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":86,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.01ca677c834a3c09f0ae40f0916a258e5b02489c43188cc8038a4a84db0fb3b7.json b/site/.cache/twoslash.01ca677c834a3c09f0ae40f0916a258e5b02489c43188cc8038a4a84db0fb3b7.json new file mode 100644 index 0000000000..bb75b9276a --- /dev/null +++ b/site/.cache/twoslash.01ca677c834a3c09f0ae40f0916a258e5b02489c43188cc8038a4a84db0fb3b7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.022d87e6849fe08ab8815a6af2e057689feccbae5ba588a9bf8b253e5534afe4.json b/site/.cache/twoslash.022d87e6849fe08ab8815a6af2e057689feccbae5ba588a9bf8b253e5534afe4.json index 4b9128923f..7e7309f177 100644 --- a/site/.cache/twoslash.022d87e6849fe08ab8815a6af2e057689feccbae5ba588a9bf8b253e5534afe4.json +++ b/site/.cache/twoslash.022d87e6849fe08ab8815a6af2e057689feccbae5ba588a9bf8b253e5534afe4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount, nonceManager } from 'viem/accounts' // [!code focus]\\nimport { client } from './config'\\n\\nconst account = privateKeyToAccount('0x...', { nonceManager }) // [!code focus]\\n\\nconst hashes = await Promise.all([ // [!code focus]\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.1'), // [!code focus]\\n }), // [!code focus]\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.2'), // [!code focus]\\n }), // [!code focus]\\n]) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const nonceManager: NonceManager\\nimport nonceManager\",\"docs\":\"Default Nonce Manager with a JSON-RPC source.\",\"start\":30,\"length\":12,\"target\":\"nonceManager\",\"line\":0,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":92,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":124,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":134,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) nonceManager?: NonceManager | undefined\",\"start\":165,\"length\":12,\"target\":\"nonceManager\",\"line\":3,\"character\":47},{\"type\":\"hover\",\"text\":\"const hashes: [`0x${string}`, `0x${string}`]\",\"start\":205,\"length\":6,\"target\":\"hashes\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":220,\"length\":7,\"target\":\"Promise\",\"line\":5,\"character\":21},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise<`0x${string}`>, Promise<`0x${string}`>]>(values: [Promise<`0x${string}`>, Promise<`0x${string}`>]): Promise<[`0x${string}`, `0x${string}`]> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":228,\"length\":3,\"target\":\"all\",\"line\":5,\"character\":29},{\"type\":\"tag\",\"name\":\"log\",\"start\":251,\"length\":0,\"text\":\" ↓ nonce = 0\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":299,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":400,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":407,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":11},{\"type\":\"tag\",\"name\":\"log\",\"start\":466,\"length\":0,\"text\":\" ↓ nonce = 1\",\"line\":11,\"character\":0},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":468,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":475,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":514,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":544,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":615,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":622,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[724,747],[486,509],[0,235]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ↓ nonce = 0\",\"start\":486,\"end\":509},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ↓ nonce = 1\",\"start\":724,\"end\":747}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount, nonceManager } from 'viem/accounts' // [!code focus]\\nimport { client } from './config'\\n\\nconst account = privateKeyToAccount('0x...', { nonceManager }) // [!code focus]\\n\\nconst hashes = await Promise.all([ // [!code focus]\\n// @log: ↓ nonce = 0\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.1'), // [!code focus]\\n }), // [!code focus]\\n// @log: ↓ nonce = 1\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.2'), // [!code focus]\\n }), // [!code focus]\\n]) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const nonceManager: NonceManager\\nimport nonceManager\",\"docs\":\"Default Nonce Manager with a JSON-RPC source.\",\"start\":30,\"length\":12,\"target\":\"nonceManager\",\"line\":0,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":92,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":124,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":134,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) nonceManager?: NonceManager | undefined\",\"start\":165,\"length\":12,\"target\":\"nonceManager\",\"line\":3,\"character\":47},{\"type\":\"hover\",\"text\":\"const hashes: [`0x${string}`, `0x${string}`]\",\"start\":205,\"length\":6,\"target\":\"hashes\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":220,\"length\":7,\"target\":\"Promise\",\"line\":5,\"character\":21},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise<`0x${string}`>, Promise<`0x${string}`>]>(values: [Promise<`0x${string}`>, Promise<`0x${string}`>]): Promise<[`0x${string}`, `0x${string}`]> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":228,\"length\":3,\"target\":\"all\",\"line\":5,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":299,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":400,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":407,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":468,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":475,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":514,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":544,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":615,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":622,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":11}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":251,\"length\":0,\"text\":\" ↓ nonce = 0\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":466,\"length\":0,\"text\":\" ↓ nonce = 1\",\"line\":11,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount, nonceManager } from 'viem/accounts' // [!code focus]\\nimport { client } from './config'\\n\\nconst account = privateKeyToAccount('0x...', { nonceManager }) // [!code focus]\\n\\nconst hashes = await Promise.all([ // [!code focus]\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.1'), // [!code focus]\\n }), // [!code focus]\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.2'), // [!code focus]\\n }), // [!code focus]\\n]) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const nonceManager: NonceManager\\nimport nonceManager\",\"docs\":\"Default Nonce Manager with a JSON-RPC source.\",\"start\":30,\"length\":12,\"target\":\"nonceManager\",\"line\":0,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":92,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":124,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":134,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) nonceManager?: NonceManager | undefined\",\"start\":165,\"length\":12,\"target\":\"nonceManager\",\"line\":3,\"character\":47},{\"type\":\"hover\",\"text\":\"const hashes: [`0x${string}`, `0x${string}`]\",\"start\":205,\"length\":6,\"target\":\"hashes\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":220,\"length\":7,\"target\":\"Promise\",\"line\":5,\"character\":21},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise<`0x${string}`>, Promise<`0x${string}`>]>(values: [Promise<`0x${string}`>, Promise<`0x${string}`>]): Promise<[`0x${string}`, `0x${string}`]> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":228,\"length\":3,\"target\":\"all\",\"line\":5,\"character\":29},{\"type\":\"tag\",\"name\":\"log\",\"start\":251,\"length\":0,\"text\":\" ↓ nonce = 0\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":299,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":400,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":407,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":11},{\"type\":\"tag\",\"name\":\"log\",\"start\":466,\"length\":0,\"text\":\" ↓ nonce = 1\",\"line\":11,\"character\":0},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":468,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":475,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":514,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":544,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":615,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":622,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[724,747],[486,509],[0,235]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ↓ nonce = 0\",\"start\":486,\"end\":509},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ↓ nonce = 1\",\"start\":724,\"end\":747}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount, nonceManager } from 'viem/accounts' // [!code focus]\\nimport { client } from './config'\\n\\nconst account = privateKeyToAccount('0x...', { nonceManager }) // [!code focus]\\n\\nconst hashes = await Promise.all([ // [!code focus]\\n// @log: ↓ nonce = 0\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.1'), // [!code focus]\\n }), // [!code focus]\\n// @log: ↓ nonce = 1\\n client.sendTransaction({ // [!code focus]\\n account, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('0.2'), // [!code focus]\\n }), // [!code focus]\\n]) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const nonceManager: NonceManager\\nimport nonceManager\",\"docs\":\"Default Nonce Manager with a JSON-RPC source.\",\"start\":30,\"length\":12,\"target\":\"nonceManager\",\"line\":0,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":92,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":124,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":134,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) nonceManager?: NonceManager | undefined\",\"start\":165,\"length\":12,\"target\":\"nonceManager\",\"line\":3,\"character\":47},{\"type\":\"hover\",\"text\":\"const hashes: [`0x${string}`, `0x${string}`]\",\"start\":205,\"length\":6,\"target\":\"hashes\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":220,\"length\":7,\"target\":\"Promise\",\"line\":5,\"character\":21},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise<`0x${string}`>, Promise<`0x${string}`>]>(values: [Promise<`0x${string}`>, Promise<`0x${string}`>]): Promise<[`0x${string}`, `0x${string}`]> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":228,\"length\":3,\"target\":\"all\",\"line\":5,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":299,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":400,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":407,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":468,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":475,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":514,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":544,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":615,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"any\",\"start\":622,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":11}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":251,\"length\":0,\"text\":\" ↓ nonce = 0\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":466,\"length\":0,\"text\":\" ↓ nonce = 1\",\"line\":11,\"character\":0}]}}" diff --git a/site/.cache/twoslash.02a8af3fdd0a4f6997df4fd309fcc36378698c1bae321fe794e1468f6031d565.json b/site/.cache/twoslash.02a8af3fdd0a4f6997df4fd309fcc36378698c1bae321fe794e1468f6031d565.json index c0caf5322e..eaadce9fbd 100644 --- a/site/.cache/twoslash.02a8af3fdd0a4f6997df4fd309fcc36378698c1bae321fe794e1468f6031d565.json +++ b/site/.cache/twoslash.02a8af3fdd0a4f6997df4fd309fcc36378698c1bae321fe794e1468f6031d565.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the block to the callback when the subscription opens.\",\"start\":51,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":91,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":100,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":109,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":117,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":121,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the block to the callback when the subscription opens.\",\"start\":51,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":91,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":100,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":109,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":117,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":121,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the block to the callback when the subscription opens.\",\"start\":51,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":91,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":100,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":109,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":117,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":121,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the block to the callback when the subscription opens.\",\"start\":51,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":91,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":100,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":109,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":117,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":121,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0382345e226ea92e24a16b5d014156434f6c207b27bb4bd18fea0eadbb6d04ab.json b/site/.cache/twoslash.0382345e226ea92e24a16b5d014156434f6c207b27bb4bd18fea0eadbb6d04ab.json index 356ed885a2..f89874ce0c 100644 --- a/site/.cache/twoslash.0382345e226ea92e24a16b5d014156434f6c207b27bb4bd18fea0eadbb6d04ab.json +++ b/site/.cache/twoslash.0382345e226ea92e24a16b5d014156434f6c207b27bb4bd18fea0eadbb6d04ab.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":172,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":172,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":172,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":172,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.04972421082261a664b0c360fab33b8fda4481073720b4b55bbfb6ef23f7c71e.json b/site/.cache/twoslash.04972421082261a664b0c360fab33b8fda4481073720b4b55bbfb6ef23f7c71e.json new file mode 100644 index 0000000000..fe54b1d95a --- /dev/null +++ b/site/.cache/twoslash.04972421082261a664b0c360fab33b8fda4481073720b4b55bbfb6ef23f7c71e.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":200,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":273,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":409,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":200,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":273,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":409,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.04ba3b7556e1cc90f813fe1b142148da1959e10b543b3192b664e4e3a2db0ecd.json b/site/.cache/twoslash.04ba3b7556e1cc90f813fe1b142148da1959e10b543b3192b664e4e3a2db0ecd.json new file mode 100644 index 0000000000..98f0c694cd --- /dev/null +++ b/site/.cache/twoslash.04ba3b7556e1cc90f813fe1b142148da1959e10b543b3192b664e4e3a2db0ecd.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":163,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":184,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":240,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":247,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":308,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":163,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":184,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":240,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":247,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":308,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.062c15f84dd0d1eeb84e8f0579f887070dff26f6427ba45e303dd2ddcd11e033.json b/site/.cache/twoslash.062c15f84dd0d1eeb84e8f0579f887070dff26f6427ba45e303dd2ddcd11e033.json index ae1c39db47..10a9304a00 100644 --- a/site/.cache/twoslash.062c15f84dd0d1eeb84e8f0579f887070dff26f6427ba45e303dd2ddcd11e033.json +++ b/site/.cache/twoslash.062c15f84dd0d1eeb84e8f0579f887070dff26f6427ba45e303dd2ddcd11e033.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":219,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":251,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":267,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":278,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":289,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":219,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":251,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":267,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":278,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":289,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":219,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":251,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":267,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":278,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":289,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":219,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":251,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":267,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":278,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":289,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.06855b515fb4b4ba1930ef251724f51292ebf589211cf1c07a53bb2fdcb70df6.json b/site/.cache/twoslash.06855b515fb4b4ba1930ef251724f51292ebf589211cf1c07a53bb2fdcb70df6.json deleted file mode 100644 index 91029c91c9..0000000000 --- a/site/.cache/twoslash.06855b515fb4b4ba1930ef251724f51292ebf589211cf1c07a53bb2fdcb70df6.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":74,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":74,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.06d32288dd03ed2af65c8075718f3375110a3d72acea31cb9aa14b3a6292f961.json b/site/.cache/twoslash.06d32288dd03ed2af65c8075718f3375110a3d72acea31cb9aa14b3a6292f961.json index ce876da8d2..bdf8774b22 100644 --- a/site/.cache/twoslash.06d32288dd03ed2af65c8075718f3375110a3d72acea31cb9aa14b3a6292f961.json +++ b/site/.cache/twoslash.06d32288dd03ed2af65c8075718f3375110a3d72acea31cb9aa14b3a6292f961.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst hash = await bundlerClient.sendUserOperation({\\n account, // [!code --]\\n calls: [{\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001')\\n }]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":245,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":254,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":277,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":284,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":295,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":306,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":324,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":332,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":368,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":384,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":412,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":423,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":432,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":450,\"length\":13,\"target\":\"bundlerClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":466,\"length\":19,\"target\":\"createBundlerClient\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":515,\"length\":6,\"target\":\"client\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":525,\"length\":9,\"target\":\"transport\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":536,\"length\":4,\"target\":\"http\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":590,\"length\":4,\"target\":\"hash\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":603,\"length\":13,\"target\":\"bundlerClient\",\"line\":23,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":617,\"length\":17,\"target\":\"sendUserOperation\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"start\":639,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":664,\"length\":5,\"target\":\"calls\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":678,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":732,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":739,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst hash = await bundlerClient.sendUserOperation({\\n account, // [!code --]\\n calls: [{\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001')\\n }]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":245,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":254,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":277,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":284,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":295,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":306,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":324,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":332,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":368,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":384,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":412,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":423,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":432,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":450,\"length\":13,\"target\":\"bundlerClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":466,\"length\":19,\"target\":\"createBundlerClient\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":515,\"length\":6,\"target\":\"client\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":525,\"length\":9,\"target\":\"transport\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":536,\"length\":4,\"target\":\"http\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":590,\"length\":4,\"target\":\"hash\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":603,\"length\":13,\"target\":\"bundlerClient\",\"line\":23,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":617,\"length\":17,\"target\":\"sendUserOperation\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"start\":639,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":664,\"length\":5,\"target\":\"calls\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":678,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":732,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":739,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst hash = await bundlerClient.sendUserOperation({\\n account, // [!code --]\\n calls: [{\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001')\\n }]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":245,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":254,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":277,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":284,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":295,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":306,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":324,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":332,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":368,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":384,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":412,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":423,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":432,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":450,\"length\":13,\"target\":\"bundlerClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":466,\"length\":19,\"target\":\"createBundlerClient\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":515,\"length\":6,\"target\":\"client\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":525,\"length\":9,\"target\":\"transport\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":536,\"length\":4,\"target\":\"http\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":590,\"length\":4,\"target\":\"hash\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":603,\"length\":13,\"target\":\"bundlerClient\",\"line\":23,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":617,\"length\":17,\"target\":\"sendUserOperation\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"start\":639,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":664,\"length\":5,\"target\":\"calls\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":678,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":732,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":739,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst hash = await bundlerClient.sendUserOperation({\\n account, // [!code --]\\n calls: [{\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001')\\n }]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":245,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":254,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":277,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":284,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":295,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":306,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":324,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":332,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":368,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":384,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":412,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":423,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":432,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":450,\"length\":13,\"target\":\"bundlerClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":466,\"length\":19,\"target\":\"createBundlerClient\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":515,\"length\":6,\"target\":\"client\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":525,\"length\":9,\"target\":\"transport\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":536,\"length\":4,\"target\":\"http\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":590,\"length\":4,\"target\":\"hash\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":603,\"length\":13,\"target\":\"bundlerClient\",\"line\":23,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":617,\"length\":17,\"target\":\"sendUserOperation\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"start\":639,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":664,\"length\":5,\"target\":\"calls\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":678,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":732,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":739,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.077eca6186d73d6c5d17a06365f40202a3cda3b4ea83d4e58577e1840c4ce471.json b/site/.cache/twoslash.077eca6186d73d6c5d17a06365f40202a3cda3b4ea83d4e58577e1840c4ce471.json index d2656d0c44..9649e7a44a 100644 --- a/site/.cache/twoslash.077eca6186d73d6c5d17a06365f40202a3cda3b4ea83d4e58577e1840c4ce471.json +++ b/site/.cache/twoslash.077eca6186d73d6c5d17a06365f40202a3cda3b4ea83d4e58577e1840c4ce471.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":52,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":97,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":119,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":155,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":166,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":52,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":97,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":119,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":155,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":166,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":52,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":97,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":119,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":155,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":166,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":52,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":97,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":119,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":155,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":166,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.07c9fe41404d1abaa40bd02b2728fa5bebc1d5741a68c9c250f5a2d3d6002dc5.json b/site/.cache/twoslash.07c9fe41404d1abaa40bd02b2728fa5bebc1d5741a68c9c250f5a2d3d6002dc5.json index ce89ff8d81..7aa20e9b7a 100644 --- a/site/.cache/twoslash.07c9fe41404d1abaa40bd02b2728fa5bebc1d5741a68c9c250f5a2d3d6002dc5.json +++ b/site/.cache/twoslash.07c9fe41404d1abaa40bd02b2728fa5bebc1d5741a68c9c250f5a2d3d6002dc5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { // [!code focus]\\n async getPaymasterData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":104,\"length\":16,\"target\":\"getPaymasterData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":275,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":320,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":369,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit?: bigint | undefined\",\"start\":433,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":554,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":565,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { // [!code focus]\\n async getPaymasterData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":104,\"length\":16,\"target\":\"getPaymasterData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":275,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":320,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":369,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit?: bigint | undefined\",\"start\":433,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":554,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":565,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { // [!code focus]\\n async getPaymasterData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":104,\"length\":16,\"target\":\"getPaymasterData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":275,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":320,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":369,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit?: bigint | undefined\",\"start\":433,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":554,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":565,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { // [!code focus]\\n async getPaymasterData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":104,\"length\":16,\"target\":\"getPaymasterData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":275,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":320,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":369,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit?: bigint | undefined\",\"start\":433,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":554,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":565,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.09c5ba58bb230718314315483d541a471919716a292cd79ebfd5f9d88b3917c8.json b/site/.cache/twoslash.09c5ba58bb230718314315483d541a471919716a292cd79ebfd5f9d88b3917c8.json index 6615ca3d09..103b96d8d1 100644 --- a/site/.cache/twoslash.09c5ba58bb230718314315483d541a471919716a292cd79ebfd5f9d88b3917c8.json +++ b/site/.cache/twoslash.09c5ba58bb230718314315483d541a471919716a292cd79ebfd5f9d88b3917c8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const result = client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n\\n primaryType: 'Mail',\\n\\n message: {\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const result: Promise<`0x${string}`>\",\"start\":6,\"length\":6,\"target\":\"result\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":15,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":22,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":40,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":54,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":78,\"length\":7,\"target\":\"version\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":96,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":112,\"length\":17,\"target\":\"verifyingContract\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":185,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":198,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":256,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":272,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":302,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":318,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":332,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":358,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":370,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":396,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":414,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":447,\"length\":11,\"target\":\"primaryType\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"query\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":498,\"length\":4,\"target\":\"from\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":512,\"length\":4,\"target\":\"name\",\"line\":36,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":531,\"length\":6,\"target\":\"wallet\",\"line\":37,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":596,\"length\":2,\"target\":\"to\",\"line\":39,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":608,\"length\":4,\"target\":\"name\",\"line\":40,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":627,\"length\":6,\"target\":\"wallet\",\"line\":41,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":692,\"length\":8,\"target\":\"contents\",\"line\":43,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[640,650],[0,158]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, erc20Abi, parseAbi } from 'viem'\\n\\nconst client = createWalletClient({\\n account: '0x',\\n transport: http()\\n})\\n// ---cut---\\nconst result = client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n\\n primaryType: 'Mail',\\n\\n message: {\\n // ^?\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[634],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[{\"type\":\"query\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2}],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const result: Promise<`0x${string}`>\",\"start\":6,\"length\":6,\"target\":\"result\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":15,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":22,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":40,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":54,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":78,\"length\":7,\"target\":\"version\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":96,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":112,\"length\":17,\"target\":\"verifyingContract\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":185,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":198,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":256,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":272,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":302,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":318,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":332,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":358,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":370,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":396,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":414,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":447,\"length\":11,\"target\":\"primaryType\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":498,\"length\":4,\"target\":\"from\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":512,\"length\":4,\"target\":\"name\",\"line\":36,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":531,\"length\":6,\"target\":\"wallet\",\"line\":37,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":596,\"length\":2,\"target\":\"to\",\"line\":39,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":608,\"length\":4,\"target\":\"name\",\"line\":40,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":627,\"length\":6,\"target\":\"wallet\",\"line\":41,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":692,\"length\":8,\"target\":\"contents\",\"line\":43,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const result = client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n\\n primaryType: 'Mail',\\n\\n message: {\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const result: Promise<`0x${string}`>\",\"start\":6,\"length\":6,\"target\":\"result\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":15,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":22,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":40,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":54,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":78,\"length\":7,\"target\":\"version\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":96,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":112,\"length\":17,\"target\":\"verifyingContract\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":185,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":198,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":256,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":272,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":302,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":318,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":332,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":358,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":370,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":396,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":414,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":447,\"length\":11,\"target\":\"primaryType\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"query\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":498,\"length\":4,\"target\":\"from\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":512,\"length\":4,\"target\":\"name\",\"line\":36,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":531,\"length\":6,\"target\":\"wallet\",\"line\":37,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":596,\"length\":2,\"target\":\"to\",\"line\":39,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":608,\"length\":4,\"target\":\"name\",\"line\":40,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":627,\"length\":6,\"target\":\"wallet\",\"line\":41,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":692,\"length\":8,\"target\":\"contents\",\"line\":43,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[640,650],[0,158]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, erc20Abi, parseAbi } from 'viem'\\n\\nconst client = createWalletClient({\\n account: '0x',\\n transport: http()\\n})\\n// ---cut---\\nconst result = client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n\\n primaryType: 'Mail',\\n\\n message: {\\n // ^?\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[634],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[{\"type\":\"query\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2}],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const result: Promise<`0x${string}`>\",\"start\":6,\"length\":6,\"target\":\"result\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":15,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":22,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":40,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":54,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":78,\"length\":7,\"target\":\"version\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":96,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":112,\"length\":17,\"target\":\"verifyingContract\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":185,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":198,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":256,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":272,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":302,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":318,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":332,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":358,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":370,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":396,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":414,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":447,\"length\":11,\"target\":\"primaryType\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":471,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":498,\"length\":4,\"target\":\"from\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":512,\"length\":4,\"target\":\"name\",\"line\":36,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":531,\"length\":6,\"target\":\"wallet\",\"line\":37,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":596,\"length\":2,\"target\":\"to\",\"line\":39,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":608,\"length\":4,\"target\":\"name\",\"line\":40,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":627,\"length\":6,\"target\":\"wallet\",\"line\":41,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":692,\"length\":8,\"target\":\"contents\",\"line\":43,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0b5cfc17fe2eac44208d15494c6acdd5a8b5438265beb513f1ae5ef8426502c0.json b/site/.cache/twoslash.0b5cfc17fe2eac44208d15494c6acdd5a8b5438265beb513f1ae5ef8426502c0.json index c2464c7ea3..3dd81baa12 100644 --- a/site/.cache/twoslash.0b5cfc17fe2eac44208d15494c6acdd5a8b5438265beb513f1ae5ef8426502c0.json +++ b/site/.cache/twoslash.0b5cfc17fe2eac44208d15494c6acdd5a8b5438265beb513f1ae5ef8426502c0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":618,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":632,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":651,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":716,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":728,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":747,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":812,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":844,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":618,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":632,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":651,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":716,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":728,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":747,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":812,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":844,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":618,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":632,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":651,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":716,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":728,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":747,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":812,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":844,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":618,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":632,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":651,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":716,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":728,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":747,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":812,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":844,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0c3d5da15a019e951fb6066af742ccf761a6fcf779da7bbadfe90b403c80e924.json b/site/.cache/twoslash.0c3d5da15a019e951fb6066af742ccf761a6fcf779da7bbadfe90b403c80e924.json deleted file mode 100644 index b81bb99ca3..0000000000 --- a/site/.cache/twoslash.0c3d5da15a019e951fb6066af742ccf761a6fcf779da7bbadfe90b403c80e924.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://eth-mainnet.g.alchemy.com/v2/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":226,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":242,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":268,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":292,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":314,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":335,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":359,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://eth-mainnet.g.alchemy.com/v2/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":226,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":242,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":268,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":292,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":314,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":335,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":359,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0c5667ac45980d30397acbc807808e28622f7af61e4d85db6b0a9d0c8952bdc7.json b/site/.cache/twoslash.0c5667ac45980d30397acbc807808e28622f7af61e4d85db6b0a9d0c8952bdc7.json deleted file mode 100644 index df2fb91a4a..0000000000 --- a/site/.cache/twoslash.0c5667ac45980d30397acbc807808e28622f7af61e4d85db6b0a9d0c8952bdc7.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: {\\n delay: 1_000, // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) delay?: number | undefined\",\"docs\":\"The delay (in ms) between reconnection attempts.\",\"tags\":[[\"default\",\"2_000\"]],\"start\":91,\"length\":5,\"target\":\"delay\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: {\\n delay: 1_000, // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) delay?: number | undefined\",\"docs\":\"The delay (in ms) between reconnection attempts.\",\"tags\":[[\"default\",\"2_000\"]],\"start\":91,\"length\":5,\"target\":\"delay\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0d081550982269eca3d61b6bb5d430ffe8374d0fb4f88b2fbb7f98c6799e77e0.json b/site/.cache/twoslash.0d081550982269eca3d61b6bb5d430ffe8374d0fb4f88b2fbb7f98c6799e77e0.json index bc408ba1a6..c8a1ae822f 100644 --- a/site/.cache/twoslash.0d081550982269eca3d61b6bb5d430ffe8374d0fb4f88b2fbb7f98c6799e77e0.json +++ b/site/.cache/twoslash.0d081550982269eca3d61b6bb5d430ffe8374d0fb4f88b2fbb7f98c6799e77e0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n fromBlock: 1n, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) fromBlock?: bigint | undefined\",\"docs\":\"Block to start listening from.\",\"start\":50,\"length\":9,\"target\":\"fromBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":86,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":94,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":102,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":110,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":114,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n fromBlock: 1n, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) fromBlock?: bigint | undefined\",\"docs\":\"Block to start listening from.\",\"start\":50,\"length\":9,\"target\":\"fromBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":86,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":94,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":102,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":110,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":114,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n fromBlock: 1n, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) fromBlock?: bigint | undefined\",\"docs\":\"Block to start listening from.\",\"start\":50,\"length\":9,\"target\":\"fromBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":86,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":94,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":102,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":110,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":114,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n fromBlock: 1n, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) fromBlock?: bigint | undefined\",\"docs\":\"Block to start listening from.\",\"start\":50,\"length\":9,\"target\":\"fromBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":86,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":94,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":102,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":110,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":114,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0d6e32d426c7067fa2bd77f14d0220dd618b74adeb5ea069aee3e9a3d41e347d.json b/site/.cache/twoslash.0d6e32d426c7067fa2bd77f14d0220dd618b74adeb5ea069aee3e9a3d41e347d.json deleted file mode 100644 index 20d2f12afb..0000000000 --- a/site/.cache/twoslash.0d6e32d426c7067fa2bd77f14d0220dd618b74adeb5ea069aee3e9a3d41e347d.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as an option.\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":202,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":224,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":237,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":357,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":370,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":383,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":401,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":408,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":417,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":430,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":438,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":449,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":476,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":497,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":515,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":572,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":579,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":616,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":634,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":691,\"length\":5,\"target\":\"value\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":698,\"length\":10,\"target\":\"parseEther\",\"line\":22,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":734,\"length\":17,\"target\":\"authorizationList\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":754,\"length\":13,\"target\":\"authorization\",\"line\":25,\"character\":22}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as an option.\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":202,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":224,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":237,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":357,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":370,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":383,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":401,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":408,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":417,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":430,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":438,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":449,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":476,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":497,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":515,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":572,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":579,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":616,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":634,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":691,\"length\":5,\"target\":\"value\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":698,\"length\":10,\"target\":\"parseEther\",\"line\":22,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":734,\"length\":17,\"target\":\"authorizationList\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":754,\"length\":13,\"target\":\"authorization\",\"line\":25,\"character\":22}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0e2ad5c9d42de7cb2dc803bb19eb65d32f175e1ae783b30aba9d4f0badbac725.json b/site/.cache/twoslash.0e2ad5c9d42de7cb2dc803bb19eb65d32f175e1ae783b30aba9d4f0badbac725.json index f35ef17cfc..31fa3a15d8 100644 --- a/site/.cache/twoslash.0e2ad5c9d42de7cb2dc803bb19eb65d32f175e1ae783b30aba9d4f0badbac725.json +++ b/site/.cache/twoslash.0e2ad5c9d42de7cb2dc803bb19eb65d32f175e1ae783b30aba9d4f0badbac725.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n includeTransactions: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) includeTransactions?: true | undefined\",\"docs\":\"Whether or not to include transaction data in the response.\",\"start\":51,\"length\":19,\"target\":\"includeTransactions\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":100,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":109,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":118,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":126,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":130,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n includeTransactions: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) includeTransactions?: true | undefined\",\"docs\":\"Whether or not to include transaction data in the response.\",\"start\":51,\"length\":19,\"target\":\"includeTransactions\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":100,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":109,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":118,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":126,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":130,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n includeTransactions: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) includeTransactions?: true | undefined\",\"docs\":\"Whether or not to include transaction data in the response.\",\"start\":51,\"length\":19,\"target\":\"includeTransactions\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":100,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":109,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":118,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":126,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":130,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n includeTransactions: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) includeTransactions?: true | undefined\",\"docs\":\"Whether or not to include transaction data in the response.\",\"start\":51,\"length\":19,\"target\":\"includeTransactions\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, true, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":100,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":109,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":118,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":126,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: ({\\n ...;\\n } | ... 3 more ... | {\\n ...;\\n })[];\\n}\",\"start\":130,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0ef983a2461861960060e03475cac80c2e93dfc9fc1ba3aeeaafd5ba643dd2f9.json b/site/.cache/twoslash.0ef983a2461861960060e03475cac80c2e93dfc9fc1ba3aeeaafd5ba643dd2f9.json deleted file mode 100644 index 989aead720..0000000000 --- a/site/.cache/twoslash.0ef983a2461861960060e03475cac80c2e93dfc9fc1ba3aeeaafd5ba643dd2f9.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":71,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":71,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.0fe435b3933d8e848d1be61f82303fa1d3438c3eb38adb1d2464c4ccda0709ed.json b/site/.cache/twoslash.0fe435b3933d8e848d1be61f82303fa1d3438c3eb38adb1d2464c4ccda0709ed.json new file mode 100644 index 0000000000..ffa8ef0d65 --- /dev/null +++ b/site/.cache/twoslash.0fe435b3933d8e848d1be61f82303fa1d3438c3eb38adb1d2464c4ccda0709ed.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":140,\"length\":6,\"target\":\"expiry\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":165,\"length\":11,\"target\":\"permissions\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":194,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) amount: bigint\",\"start\":246,\"length\":6,\"target\":\"amount\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":254,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) required?: boolean | undefined\",\"docs\":\"Whether or not the wallet must grant the permission.\",\"start\":290,\"length\":8,\"target\":\"required\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) signer?: Signer | undefined\",\"docs\":\"Signer to assign the permissions to.\",\"start\":323,\"length\":6,\"target\":\"signer\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"key\\\"\",\"start\":354,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: {\\n id: string;\\n}\",\"start\":388,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":419,\"length\":2,\"target\":\"id\",\"line\":17,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":140,\"length\":6,\"target\":\"expiry\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":165,\"length\":11,\"target\":\"permissions\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":194,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) amount: bigint\",\"start\":246,\"length\":6,\"target\":\"amount\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":254,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) required?: boolean | undefined\",\"docs\":\"Whether or not the wallet must grant the permission.\",\"start\":290,\"length\":8,\"target\":\"required\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) signer?: Signer | undefined\",\"docs\":\"Signer to assign the permissions to.\",\"start\":323,\"length\":6,\"target\":\"signer\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"key\\\"\",\"start\":354,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: {\\n id: string;\\n}\",\"start\":388,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":419,\"length\":2,\"target\":\"id\",\"line\":17,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.102dbcae95b3ba988beea283958c181723ed4f1dc4a0b17a56dd4e21fb4184b1.json b/site/.cache/twoslash.102dbcae95b3ba988beea283958c181723ed4f1dc4a0b17a56dd4e21fb4184b1.json index cd22c76245..ea73d22454 100644 --- a/site/.cache/twoslash.102dbcae95b3ba988beea283958c181723ed4f1dc4a0b17a56dd4e21fb4184b1.json +++ b/site/.cache/twoslash.102dbcae95b3ba988beea283958c181723ed4f1dc4a0b17a56dd4e21fb4184b1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({ // [!code hl]\\n chain: zksync, // [!code hl]\\n transport: custom(window.ethereum!), // [!code hl]\\n}).extend(eip712WalletActions()) // [!code hl]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":59,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":96,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":196,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":203,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":238,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":245,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":252,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":281,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":288,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({ // [!code hl]\\n chain: zksync, // [!code hl]\\n transport: custom(window.ethereum!), // [!code hl]\\n}).extend(eip712WalletActions()) // [!code hl]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":59,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":96,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":196,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":203,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":238,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":245,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":252,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":281,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":288,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({ // [!code hl]\\n chain: zksync, // [!code hl]\\n transport: custom(window.ethereum!), // [!code hl]\\n}).extend(eip712WalletActions()) // [!code hl]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":59,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":96,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":196,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":203,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":238,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":245,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":252,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":281,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":288,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({ // [!code hl]\\n chain: zksync, // [!code hl]\\n transport: custom(window.ethereum!), // [!code hl]\\n}).extend(eip712WalletActions()) // [!code hl]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":59,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":96,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":196,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":203,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":238,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":245,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":252,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":281,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":288,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.11463ea3e91e096ef49c732435553df040c8d4654ed586f6076c263a28f87fc5.json b/site/.cache/twoslash.11463ea3e91e096ef49c732435553df040c8d4654ed586f6076c263a28f87fc5.json index 390bda5725..159d6ebc43 100644 --- a/site/.cache/twoslash.11463ea3e91e096ef49c732435553df040c8d4654ed586f6076c263a28f87fc5.json +++ b/site/.cache/twoslash.11463ea3e91e096ef49c732435553df040c8d4654ed586f6076c263a28f87fc5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,442]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"any\",\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: string\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: any\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"any\",\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: any[]\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,442]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"any\",\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: string\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: any\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"any\",\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: any[]\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1150f0faf6a5433fff72a173bf43d7e824752b9d0eae6d2bcd4df2b724a8116d.json b/site/.cache/twoslash.1150f0faf6a5433fff72a173bf43d7e824752b9d0eae6d2bcd4df2b724a8116d.json index 22eb8bb97d..4218cafa1b 100644 --- a/site/.cache/twoslash.1150f0faf6a5433fff72a173bf43d7e824752b9d0eae6d2bcd4df2b724a8116d.json +++ b/site/.cache/twoslash.1150f0faf6a5433fff72a173bf43d7e824752b9d0eae6d2bcd4df2b724a8116d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":137,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":148,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":205,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":282,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":289,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":324,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":350,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":137,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":148,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":205,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":282,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":289,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":324,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":350,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":137,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":148,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":205,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":282,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":289,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":324,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":350,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":137,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":148,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":205,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":282,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":289,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":324,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":350,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.116b762d8a6024cecb3d115de2e41209c5eca533f12b5fc40e219a367137f62f.json b/site/.cache/twoslash.116b762d8a6024cecb3d115de2e41209c5eca533f12b5fc40e219a367137f62f.json deleted file mode 100644 index 221b0416dd..0000000000 --- a/site/.cache/twoslash.116b762d8a6024cecb3d115de2e41209c5eca533f12b5fc40e219a367137f62f.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, // [!code focus]\\n nonce: 0,\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":173,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1, // [!code focus]\\n nonce: 0,\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":173,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.11bd0dcde1f0bd88d1a7eaba9ee2558caadf95d6a97ab26ea838a832b86f50bd.json b/site/.cache/twoslash.11bd0dcde1f0bd88d1a7eaba9ee2558caadf95d6a97ab26ea838a832b86f50bd.json index f7f8e837f1..1b859a62c6 100644 --- a/site/.cache/twoslash.11bd0dcde1f0bd88d1a7eaba9ee2558caadf95d6a97ab26ea838a832b86f50bd.json +++ b/site/.cache/twoslash.11bd0dcde1f0bd88d1a7eaba9ee2558caadf95d6a97ab26ea838a832b86f50bd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":225,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":257,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":264,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":275,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":286,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":304,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":320,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":344,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":419,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":427,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":225,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":257,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":264,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":275,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":286,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":304,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":320,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":344,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":419,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":427,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":225,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":257,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":264,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":275,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":286,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":304,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":320,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":344,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":419,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":427,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":225,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":257,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":264,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":275,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":286,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":304,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":320,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":344,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":419,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":427,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.11e5c076384011c0b101bdce3319552926878a5b2735892cc0f4397e26d68eb4.json b/site/.cache/twoslash.11e5c076384011c0b101bdce3319552926878a5b2735892cc0f4397e26d68eb4.json index 14dfa98159..a5b06d6143 100644 --- a/site/.cache/twoslash.11e5c076384011c0b101bdce3319552926878a5b2735892cc0f4397e26d68eb4.json +++ b/site/.cache/twoslash.11e5c076384011c0b101bdce3319552926878a5b2735892cc0f4397e26d68eb4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":162,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":214,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":237,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":266,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":277,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":162,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":214,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":237,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":266,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":277,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":162,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":214,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":237,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":266,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":277,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":162,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":214,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":237,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":266,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":277,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.12f7d0bcef812a4ee115aa2926d294dbe376f4d9e6c72003a6e6eaa369dde422.json b/site/.cache/twoslash.12f7d0bcef812a4ee115aa2926d294dbe376f4d9e6c72003a6e6eaa369dde422.json index 7a9b488705..102b4d9365 100644 --- a/site/.cache/twoslash.12f7d0bcef812a4ee115aa2926d294dbe376f4d9e6c72003a6e6eaa369dde422.json +++ b/site/.cache/twoslash.12f7d0bcef812a4ee115aa2926d294dbe376f4d9e6c72003a6e6eaa369dde422.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":152,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":152,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":152,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":152,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.133dc9efe452bc90ae5eae6a4d4d315fb9b61958473e334c7a0a9d6dc7c0524c.json b/site/.cache/twoslash.133dc9efe452bc90ae5eae6a4d4d315fb9b61958473e334c7a0a9d6dc7c0524c.json deleted file mode 100644 index 0f57a11328..0000000000 --- a/site/.cache/twoslash.133dc9efe452bc90ae5eae6a4d4d315fb9b61958473e334c7a0a9d6dc7c0524c.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://eth-mainnet.g.alchemy.com/v2/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":138,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":187,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://eth-mainnet.g.alchemy.com/v2/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":138,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":187,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.14ab693e259dffaf82eb2339174cb1cf1db915400fbb8a665f8860d70677127c.json b/site/.cache/twoslash.14ab693e259dffaf82eb2339174cb1cf1db915400fbb8a665f8860d70677127c.json index 0666e3d310..910356b01a 100644 --- a/site/.cache/twoslash.14ab693e259dffaf82eb2339174cb1cf1db915400fbb8a665f8860d70677127c.json +++ b/site/.cache/twoslash.14ab693e259dffaf82eb2339174cb1cf1db915400fbb8a665f8860d70677127c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) executeBatches: <[{\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }];\\n}, {\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }, {\\n ...;\\n }];\\n}], undefined>(parameters: ExecuteBatchesParameters<...>) => Promise\",\"docs\":\"Executes batches of call(s) using \\\"batch of batches\\\" mode on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n account,\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteBatchesParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteBatchesReturnType}\"]],\"start\":105,\"length\":14,\"target\":\"executeBatches\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":155,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: [{\\n calls: readonly [Prettify>];\\n} & {\\n opData?: Hex | undefined;\\n}, {\\n ...;\\n} & {\\n opData?: Hex | undefined;\\n}]\",\"docs\":\"Batches to execute.\",\"start\":212,\"length\":7,\"target\":\"batches\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":235,\"length\":5,\"target\":\"calls\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":264,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":324,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":331,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"start\":385,\"length\":5,\"target\":\"calls\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":414,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":474,\"length\":5,\"target\":\"value\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":481,\"length\":10,\"target\":\"parseEther\",\"line\":19,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":528,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":558,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) executeBatches: <[{\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }];\\n}, {\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }, {\\n ...;\\n }];\\n}], undefined>(parameters: ExecuteBatchesParameters<...>) => Promise\",\"docs\":\"Executes batches of call(s) using \\\"batch of batches\\\" mode on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n account,\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteBatchesParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteBatchesReturnType}\"]],\"start\":105,\"length\":14,\"target\":\"executeBatches\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":155,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: [{\\n calls: readonly [Prettify>];\\n} & {\\n opData?: Hex | undefined;\\n}, {\\n ...;\\n} & {\\n opData?: Hex | undefined;\\n}]\",\"docs\":\"Batches to execute.\",\"start\":212,\"length\":7,\"target\":\"batches\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":235,\"length\":5,\"target\":\"calls\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":264,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":324,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":331,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"start\":385,\"length\":5,\"target\":\"calls\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":414,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":474,\"length\":5,\"target\":\"value\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":481,\"length\":10,\"target\":\"parseEther\",\"line\":19,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":528,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":558,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) executeBatches: <[{\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }];\\n}, {\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }, {\\n ...;\\n }];\\n}], undefined>(parameters: ExecuteBatchesParameters<...>) => Promise\",\"docs\":\"Executes batches of call(s) using \\\"batch of batches\\\" mode on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n account,\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteBatchesParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteBatchesReturnType}\"]],\"start\":105,\"length\":14,\"target\":\"executeBatches\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":155,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: [{\\n calls: readonly [Prettify>];\\n} & {\\n opData?: Hex | undefined;\\n}, {\\n ...;\\n} & {\\n opData?: Hex | undefined;\\n}]\",\"docs\":\"Batches to execute.\",\"start\":212,\"length\":7,\"target\":\"batches\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":235,\"length\":5,\"target\":\"calls\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":264,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":324,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":331,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"start\":385,\"length\":5,\"target\":\"calls\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":414,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":474,\"length\":5,\"target\":\"value\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":481,\"length\":10,\"target\":\"parseEther\",\"line\":19,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":528,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":558,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.executeBatches({ // [!code focus:99]\\n account,\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) executeBatches: <[{\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }];\\n}, {\\n readonly calls: [{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n }, {\\n ...;\\n }];\\n}], undefined>(parameters: ExecuteBatchesParameters<...>) => Promise\",\"docs\":\"Executes batches of call(s) using \\\"batch of batches\\\" mode on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n account,\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.executeBatches({\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n },\\n {\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n ],\\n },\\n ],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteBatchesParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteBatchesReturnType}\"]],\"start\":105,\"length\":14,\"target\":\"executeBatches\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":155,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: [{\\n calls: readonly [Prettify>];\\n} & {\\n opData?: Hex | undefined;\\n}, {\\n ...;\\n} & {\\n opData?: Hex | undefined;\\n}]\",\"docs\":\"Batches to execute.\",\"start\":212,\"length\":7,\"target\":\"batches\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":235,\"length\":5,\"target\":\"calls\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":264,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":324,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":331,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"start\":385,\"length\":5,\"target\":\"calls\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":414,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":474,\"length\":5,\"target\":\"value\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":481,\"length\":10,\"target\":\"parseEther\",\"line\":19,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":528,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":558,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.155460c76f5bfa85685f53f2d7c31e7ad12853d7b7dab6417b1fa51a0c3ca2fa.json b/site/.cache/twoslash.155460c76f5bfa85685f53f2d7c31e7ad12853d7b7dab6417b1fa51a0c3ca2fa.json deleted file mode 100644 index 50a2a07e01..0000000000 --- a/site/.cache/twoslash.155460c76f5bfa85685f53f2d7c31e7ad12853d7b7dab6417b1fa51a0c3ca2fa.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.156d861d3591a9286d3f06a8ea74b158cd6ba2401a5424664c66a2e986b8bcf8.json b/site/.cache/twoslash.156d861d3591a9286d3f06a8ea74b158cd6ba2401a5424664c66a2e986b8bcf8.json deleted file mode 100644 index fba6582eec..0000000000 --- a/site/.cache/twoslash.156d861d3591a9286d3f06a8ea74b158cd6ba2401a5424664c66a2e986b8bcf8.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":146,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":202,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":212,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":271,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":294,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":305,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":312,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":321,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":332,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":343,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":350,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":146,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":202,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":212,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":271,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":294,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":305,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":312,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":321,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":332,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":343,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":350,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.158d64c811e40a25a9ce87e6d2826f2d41c4ae4220f5c021d0d5a21b77a3518c.json b/site/.cache/twoslash.158d64c811e40a25a9ce87e6d2826f2d41c4ae4220f5c021d0d5a21b77a3518c.json new file mode 100644 index 0000000000..0bdf443e72 --- /dev/null +++ b/site/.cache/twoslash.158d64c811e40a25a9ce87e6d2826f2d41c4ae4220f5c021d0d5a21b77a3518c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) forceAtomic: boolean\",\"start\":298,\"length\":11,\"target\":\"forceAtomic\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) forceAtomic: boolean\",\"start\":298,\"length\":11,\"target\":\"forceAtomic\",\"line\":13,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.15b4112b01d96633e79765816bdfe221ce2528c158442e6ebc3b83cfeb435c95.json b/site/.cache/twoslash.15b4112b01d96633e79765816bdfe221ce2528c158442e6ebc3b83cfeb435c95.json deleted file mode 100644 index 9715fc18a1..0000000000 --- a/site/.cache/twoslash.15b4112b01d96633e79765816bdfe221ce2528c158442e6ebc3b83cfeb435c95.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":237,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":244,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":237,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":244,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.15eb064b4826b27780d9a02168c099a49ef12ac8dbea1d8bcddf8a99d655d924.json b/site/.cache/twoslash.15eb064b4826b27780d9a02168c099a49ef12ac8dbea1d8bcddf8a99d655d924.json index d4c9d21428..bf9d3783bd 100644 --- a/site/.cache/twoslash.15eb064b4826b27780d9a02168c099a49ef12ac8dbea1d8bcddf8a99d655d924.json +++ b/site/.cache/twoslash.15eb064b4826b27780d9a02168c099a49ef12ac8dbea1d8bcddf8a99d655d924.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n emitMissed: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed block numbers to the callback.\",\"start\":56,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":95,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":110,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":137,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n emitMissed: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed block numbers to the callback.\",\"start\":56,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":95,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":110,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":137,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n emitMissed: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed block numbers to the callback.\",\"start\":56,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":95,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":110,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":137,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n emitMissed: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed block numbers to the callback.\",\"start\":56,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":95,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":110,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":137,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.162b53325ca13b7621490ec5918650fa9bdcf03fd9004183529500b061e51a92.json b/site/.cache/twoslash.162b53325ca13b7621490ec5918650fa9bdcf03fd9004183529500b061e51a92.json index fef69b9d6a..586039fc3a 100644 --- a/site/.cache/twoslash.162b53325ca13b7621490ec5918650fa9bdcf03fd9004183529500b061e51a92.json +++ b/site/.cache/twoslash.162b53325ca13b7621490ec5918650fa9bdcf03fd9004183529500b061e51a92.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":103,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":143,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":148,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":191,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":197,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":291,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":326,\"length\":17,\"target\":\"signAuthorization\",\"line\":8,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":348,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":357,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":364,\"length\":15,\"target\":\"contractAddress\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":477,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":490,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":503,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":523,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":543,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":627,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":633,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":658,\"length\":3,\"target\":\"abi\",\"line\":19,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: `0x${string}` | \\\"initialize\\\" | \\\"ping\\\"\",\"start\":667,\"length\":12,\"target\":\"functionName\",\"line\":20,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":703,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":707,\"length\":3,\"target\":\"eoa\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":711,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":103,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":143,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":148,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":191,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":197,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":291,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":326,\"length\":17,\"target\":\"signAuthorization\",\"line\":8,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":348,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":357,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":364,\"length\":15,\"target\":\"contractAddress\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":477,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":490,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":503,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":523,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":543,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":627,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":633,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":658,\"length\":3,\"target\":\"abi\",\"line\":19,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: `0x${string}` | \\\"initialize\\\" | \\\"ping\\\"\",\"start\":667,\"length\":12,\"target\":\"functionName\",\"line\":20,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":703,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":707,\"length\":3,\"target\":\"eoa\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":711,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":103,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":143,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":148,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":191,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":197,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":291,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":326,\"length\":17,\"target\":\"signAuthorization\",\"line\":8,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":348,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":357,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":364,\"length\":15,\"target\":\"contractAddress\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":477,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":490,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":503,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":523,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":543,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":627,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":633,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":658,\"length\":3,\"target\":\"abi\",\"line\":19,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: `0x${string}` | \\\"initialize\\\" | \\\"ping\\\"\",\"start\":667,\"length\":12,\"target\":\"functionName\",\"line\":20,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":703,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":707,\"length\":3,\"target\":\"eoa\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":711,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":103,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":143,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":148,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":191,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":197,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":291,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":326,\"length\":17,\"target\":\"signAuthorization\",\"line\":8,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":348,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":357,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":364,\"length\":15,\"target\":\"contractAddress\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":477,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":490,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":503,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":523,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":543,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":627,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":633,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":658,\"length\":3,\"target\":\"abi\",\"line\":19,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: `0x${string}` | \\\"initialize\\\" | \\\"ping\\\"\",\"start\":667,\"length\":12,\"target\":\"functionName\",\"line\":20,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":703,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":707,\"length\":3,\"target\":\"eoa\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":711,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.16d339478fe20c29168f748e49b264d103e88c3fcfe215f7be5f263f9de253a7.json b/site/.cache/twoslash.16d339478fe20c29168f748e49b264d103e88c3fcfe215f7be5f263f9de253a7.json new file mode 100644 index 0000000000..85266fe284 --- /dev/null +++ b/site/.cache/twoslash.16d339478fe20c29168f748e49b264d103e88c3fcfe215f7be5f263f9de253a7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n } \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":474,\"length\":4,\"target\":\"type\",\"line\":22,\"character\":6},{\"type\":\"completion\",\"start\":481,\"length\":0,\"completions\":[{\"name\":\"native-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"erc20-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"contract-call\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"'\",\"line\":22,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[928,945],[0,444]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":431,\"end\":444}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[925],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":481,\"length\":0,\"completions\":[{\"name\":\"native-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"erc20-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"contract-call\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"'\",\"line\":22,\"character\":13}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":474,\"length\":4,\"target\":\"type\",\"line\":22,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.180d6f952b0b99358ba12e1ca91c31640c35404ee67be65a68b3e96d8ca48767.json b/site/.cache/twoslash.180d6f952b0b99358ba12e1ca91c31640c35404ee67be65a68b3e96d8ca48767.json deleted file mode 100644 index c8e9a9b264..0000000000 --- a/site/.cache/twoslash.180d6f952b0b99358ba12e1ca91c31640c35404ee67be65a68b3e96d8ca48767.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,519]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.180fae692ef58304a948acf4ca7ab5d9f7dfb07e33bd090269778a7ecfeec875.json b/site/.cache/twoslash.180fae692ef58304a948acf4ca7ab5d9f7dfb07e33bd090269778a7ecfeec875.json index 7de3fe5ea5..49ba9a0514 100644 --- a/site/.cache/twoslash.180fae692ef58304a948acf4ca7ab5d9f7dfb07e33bd090269778a7ecfeec875.json +++ b/site/.cache/twoslash.180fae692ef58304a948acf4ca7ab5d9f7dfb07e33bd090269778a7ecfeec875.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains' \\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":46,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":62,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":121,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":132,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem' \\nimport { createBundlerClient } from 'viem/account-abstraction'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// ---cut---\\nimport { mainnet } from 'viem/chains' \\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":46,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":62,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":121,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":132,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains' \\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":46,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":62,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":121,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":132,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem' \\nimport { createBundlerClient } from 'viem/account-abstraction'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n// ---cut---\\nimport { mainnet } from 'viem/chains' \\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":46,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":62,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":121,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":132,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.18aa1e8bb39072e92317a6a2b45fd3ea3a0039bc41098623bc7f5a10461bf802.json b/site/.cache/twoslash.18aa1e8bb39072e92317a6a2b45fd3ea3a0039bc41098623bc7f5a10461bf802.json index ff7b573f60..d451b4ac2b 100644 --- a/site/.cache/twoslash.18aa1e8bb39072e92317a6a2b45fd3ea3a0039bc41098623bc7f5a10461bf802.json +++ b/site/.cache/twoslash.18aa1e8bb39072e92317a6a2b45fd3ea3a0039bc41098623bc7f5a10461bf802.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,353]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/utils'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,353]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/utils'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.18bcbdd50f89c1e1224ec4768a94b28d5416d113563dfda248dce50b86787059.json b/site/.cache/twoslash.18bcbdd50f89c1e1224ec4768a94b28d5416d113563dfda248dce50b86787059.json deleted file mode 100644 index eeac4ded6b..0000000000 --- a/site/.cache/twoslash.18bcbdd50f89c1e1224ec4768a94b28d5416d113563dfda248dce50b86787059.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":204,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) custom: string\",\"start\":212,\"length\":6,\"target\":\"custom\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":256,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: string\",\"start\":272,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":8}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,456]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":443,\"end\":456}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":204,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) custom: string\",\"start\":212,\"length\":6,\"target\":\"custom\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":256,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: string\",\"start\":272,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":8}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1a440aa24071d370bf2a2b5b15451416ff2b7bd8a998b3678abe94bba0ab6ee2.json b/site/.cache/twoslash.1a440aa24071d370bf2a2b5b15451416ff2b7bd8a998b3678abe94bba0ab6ee2.json index 764b2003df..12d6ae5e34 100644 --- a/site/.cache/twoslash.1a440aa24071d370bf2a2b5b15451416ff2b7bd8a998b3678abe94bba0ab6ee2.json +++ b/site/.cache/twoslash.1a440aa24071d370bf2a2b5b15451416ff2b7bd8a998b3678abe94bba0ab6ee2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code ++] // [!code focus]\\n account, // [!code ++] // [!code focus]\\n calls: [{ // [!code ++] // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code ++] // [!code focus]\\n value: parseEther('0.001') // [!code ++] // [!code focus]\\n }] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":652,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":694,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":739,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":824,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":831,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":959,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":975,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":989,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":1019,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code ++] // [!code focus]\\n account, // [!code ++] // [!code focus]\\n calls: [{ // [!code ++] // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code ++] // [!code focus]\\n value: parseEther('0.001') // [!code ++] // [!code focus]\\n }] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":652,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":694,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":739,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":824,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":831,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":959,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":975,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":989,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":1019,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code ++] // [!code focus]\\n account, // [!code ++] // [!code focus]\\n calls: [{ // [!code ++] // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code ++] // [!code focus]\\n value: parseEther('0.001') // [!code ++] // [!code focus]\\n }] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":652,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":694,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":739,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":824,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":831,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":959,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":975,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":989,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":1019,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code ++] // [!code focus]\\n account, // [!code ++] // [!code focus]\\n calls: [{ // [!code ++] // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code ++] // [!code focus]\\n value: parseEther('0.001') // [!code ++] // [!code focus]\\n }] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":652,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":694,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":739,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":824,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":831,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":959,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":975,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":989,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":1019,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1b1b5578ee3cba908953052d32c2bdc1b8a78ad42d32ba60915f95879c8395f6.json b/site/.cache/twoslash.1b1b5578ee3cba908953052d32c2bdc1b8a78ad42d32ba60915f95879c8395f6.json index 0be00e14dc..cb3b3d64c1 100644 --- a/site/.cache/twoslash.1b1b5578ee3cba908953052d32c2bdc1b8a78ad42d32ba60915f95879c8395f6.json +++ b/site/.cache/twoslash.1b1b5578ee3cba908953052d32c2bdc1b8a78ad42d32ba60915f95879c8395f6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":86,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":104,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":117,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":135,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":145,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":154,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":177,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":192,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":206,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":225,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":290,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":302,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":321,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":386,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":86,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":104,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":117,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":135,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":145,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":154,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":177,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":192,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":206,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":225,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":290,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":302,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":321,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":386,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":86,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":104,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":117,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":135,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":145,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":154,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":177,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":192,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":206,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":225,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":290,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":302,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":321,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":386,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":86,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":104,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":117,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":135,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":145,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":154,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":177,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":192,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":206,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":225,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":290,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":302,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":321,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":386,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1b268fcf2aba773be3de519d3994caf5b10c1e79d6df48172b83bca69cdf06c5.json b/site/.cache/twoslash.1b268fcf2aba773be3de519d3994caf5b10c1e79d6df48172b83bca69cdf06c5.json index 42f15b878f..7e6eb45ff6 100644 --- a/site/.cache/twoslash.1b268fcf2aba773be3de519d3994caf5b10c1e79d6df48172b83bca69cdf06c5.json +++ b/site/.cache/twoslash.1b268fcf2aba773be3de519d3994caf5b10c1e79d6df48172b83bca69cdf06c5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http(), // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":142,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":149,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":177,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":188,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http(), // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":142,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":149,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":177,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":188,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http(), // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":142,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":149,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":177,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":188,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http(), // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":142,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":149,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":177,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":188,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1b85f2e34d5d5b1a10e0df7012ff5be4c8a73aec29e5f506dde0ab88b51e11ab.json b/site/.cache/twoslash.1b85f2e34d5d5b1a10e0df7012ff5be4c8a73aec29e5f506dde0ab88b51e11ab.json index 0c2addee36..0802587ccc 100644 --- a/site/.cache/twoslash.1b85f2e34d5d5b1a10e0df7012ff5be4c8a73aec29e5f506dde0ab88b51e11ab.json +++ b/site/.cache/twoslash.1b85f2e34d5d5b1a10e0df7012ff5be4c8a73aec29e5f506dde0ab88b51e11ab.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1b86a80fcf87cde7a89f22936b836e3f59636a5f758eaee58e2ccefb1d8578c6.json b/site/.cache/twoslash.1b86a80fcf87cde7a89f22936b836e3f59636a5f758eaee58e2ccefb1d8578c6.json index 301a16160b..5e29b58b0a 100644 --- a/site/.cache/twoslash.1b86a80fcf87cde7a89f22936b836e3f59636a5f758eaee58e2ccefb1d8578c6.json +++ b/site/.cache/twoslash.1b86a80fcf87cde7a89f22936b836e3f59636a5f758eaee58e2ccefb1d8578c6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":76,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":103,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":76,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":103,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":76,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":103,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":76,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":103,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1b9a69363d1e7e28f63338031fea82be2e2def850fecbf4350e312874f007036.json b/site/.cache/twoslash.1b9a69363d1e7e28f63338031fea82be2e2def850fecbf4350e312874f007036.json deleted file mode 100644 index d3164ec978..0000000000 --- a/site/.cache/twoslash.1b9a69363d1e7e28f63338031fea82be2e2def850fecbf4350e312874f007036.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":147,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":203,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":218,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":241,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":282,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":289,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":300,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":311,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":322,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":329,\"length\":14,\"target\":\"eip7702Actions\",\"line\":9,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":147,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":203,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":218,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":241,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":282,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":289,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":300,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":311,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":322,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":329,\"length\":14,\"target\":\"eip7702Actions\",\"line\":9,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1ba2cbbe1924fe76c2379b6271becee5e45f958c8be8c4d0dca5321dc4486cb9.json b/site/.cache/twoslash.1ba2cbbe1924fe76c2379b6271becee5e45f958c8be8c4d0dca5321dc4486cb9.json new file mode 100644 index 0000000000..605b159e1a --- /dev/null +++ b/site/.cache/twoslash.1ba2cbbe1924fe76c2379b6271becee5e45f958c8be8c4d0dca5321dc4486cb9.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities: {\\n paymasterService: {\\n url: string;\\n };\\n}\",\"start\":298,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":335,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":378,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities: {\\n paymasterService: {\\n url: string;\\n };\\n}\",\"start\":298,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":335,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":378,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1c800ce2f85c533758a39f8fbb9f768859af6bb7bc174c94e12ec914330ef2b2.json b/site/.cache/twoslash.1c800ce2f85c533758a39f8fbb9f768859af6bb7bc174c94e12ec914330ef2b2.json deleted file mode 100644 index adbc1e20ad..0000000000 --- a/site/.cache/twoslash.1c800ce2f85c533758a39f8fbb9f768859af6bb7bc174c94e12ec914330ef2b2.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":150,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":168,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":181,\"length\":15,\"target\":\"signTransaction\",\"line\":5,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":212,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":232,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":267,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":289,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,365]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":150,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":168,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":181,\"length\":15,\"target\":\"signTransaction\",\"line\":5,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":212,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":232,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":267,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":289,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1d68d36dbb0ab211e9f2148ed2f11423a2094253fa541b2484b3a23306bb9966.json b/site/.cache/twoslash.1d68d36dbb0ab211e9f2148ed2f11423a2094253fa541b2484b3a23306bb9966.json index 67d72a65b3..16c81b986d 100644 --- a/site/.cache/twoslash.1d68d36dbb0ab211e9f2148ed2f11423a2094253fa541b2484b3a23306bb9966.json +++ b/site/.cache/twoslash.1d68d36dbb0ab211e9f2148ed2f11423a2094253fa541b2484b3a23306bb9966.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":167,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":203,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":212,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":280,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":287,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":298,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":309,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":326,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":339,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":346,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":391,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":443,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":450,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":167,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":203,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":212,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":280,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":287,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":298,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":309,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":326,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":339,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":346,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":391,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":443,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":450,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":167,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":203,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":212,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":280,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":287,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":298,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":309,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":326,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":339,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":346,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":391,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":443,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":450,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":167,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":203,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":212,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":280,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":287,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":298,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":309,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":326,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":339,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":346,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":391,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":443,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":450,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1daf0b72ece64bba75481a6a5b640616f2b96e907094cc83ed0ca5bfafecc78e.json b/site/.cache/twoslash.1daf0b72ece64bba75481a6a5b640616f2b96e907094cc83ed0ca5bfafecc78e.json index eee0470a80..b8ce684419 100644 --- a/site/.cache/twoslash.1daf0b72ece64bba75481a6a5b640616f2b96e907094cc83ed0ca5bfafecc78e.json +++ b/site/.cache/twoslash.1daf0b72ece64bba75481a6a5b640616f2b96e907094cc83ed0ca5bfafecc78e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":79,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":90,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":79,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":90,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":79,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":90,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":79,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":90,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1dda9227a369b7f9147ff7801fc10ae10e2f3db93c8eb0b00af778a5f697f99e.json b/site/.cache/twoslash.1dda9227a369b7f9147ff7801fc10ae10e2f3db93c8eb0b00af778a5f697f99e.json index 67ed8160b3..b2c57349de 100644 --- a/site/.cache/twoslash.1dda9227a369b7f9147ff7801fc10ae10e2f3db93c8eb0b00af778a5f697f99e.json +++ b/site/.cache/twoslash.1dda9227a369b7f9147ff7801fc10ae10e2f3db93c8eb0b00af778a5f697f99e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.sendTransaction({\\n data: encodeFunctionData({\\n abi,\\n functionName: 'ping',\\n }),\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":89,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":157,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":177,\"length\":4,\"target\":\"data\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":183,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":208,\"length\":3,\"target\":\"abi\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":217,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":251,\"length\":3,\"target\":\"eoa\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,364]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":325,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.sendTransaction({\\n data: encodeFunctionData({\\n abi,\\n functionName: 'ping',\\n }),\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":89,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":157,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":177,\"length\":4,\"target\":\"data\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":183,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":208,\"length\":3,\"target\":\"abi\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":217,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":251,\"length\":3,\"target\":\"eoa\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.sendTransaction({\\n data: encodeFunctionData({\\n abi,\\n functionName: 'ping',\\n }),\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":89,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":157,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":177,\"length\":4,\"target\":\"data\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":183,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":208,\"length\":3,\"target\":\"abi\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":217,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":251,\"length\":3,\"target\":\"eoa\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,364]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":325,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.sendTransaction({\\n data: encodeFunctionData({\\n abi,\\n functionName: 'ping',\\n }),\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":89,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":157,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":177,\"length\":4,\"target\":\"data\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":183,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":208,\"length\":3,\"target\":\"abi\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":217,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":251,\"length\":3,\"target\":\"eoa\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1e8915cb71ad34a0cf0acccac7d365901829c3ea6a381278a442ce2ee89743ca.json b/site/.cache/twoslash.1e8915cb71ad34a0cf0acccac7d365901829c3ea6a381278a442ce2ee89743ca.json index 4c8537afa2..2ae78766fb 100644 --- a/site/.cache/twoslash.1e8915cb71ad34a0cf0acccac7d365901829c3ea6a381278a442ce2ee89743ca.json +++ b/site/.cache/twoslash.1e8915cb71ad34a0cf0acccac7d365901829c3ea6a381278a442ce2ee89743ca.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":76,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":117,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":135,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":76,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":117,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":135,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":76,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":117,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":135,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":76,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":117,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":135,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":146,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1e8f78d218acfa0d5c91c57d5745405c75e2929868624d83e93537e55d7b1eb2.json b/site/.cache/twoslash.1e8f78d218acfa0d5c91c57d5745405c75e2929868624d83e93537e55d7b1eb2.json index 090fd45b0f..a242279312 100644 --- a/site/.cache/twoslash.1e8f78d218acfa0d5c91c57d5745405c75e2929868624d83e93537e55d7b1eb2.json +++ b/site/.cache/twoslash.1e8f78d218acfa0d5c91c57d5745405c75e2929868624d83e93537e55d7b1eb2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":265,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":265,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":265,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":265,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1ef6a3080e2387fbabaee5d68fe83b3fea8e6e4605cad305a50a039d7945352c.json b/site/.cache/twoslash.1ef6a3080e2387fbabaee5d68fe83b3fea8e6e4605cad305a50a039d7945352c.json index 019531365e..148c346710 100644 --- a/site/.cache/twoslash.1ef6a3080e2387fbabaee5d68fe83b3fea8e6e4605cad305a50a039d7945352c.json +++ b/site/.cache/twoslash.1ef6a3080e2387fbabaee5d68fe83b3fea8e6e4605cad305a50a039d7945352c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst hash = await client.sendTransaction({ // [!code focus:5]\\n account,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":157,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":281,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":294,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":301,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":340,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":351,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":403,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":410,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst hash = await client.sendTransaction({ // [!code focus:5]\\n account,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":157,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":281,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":294,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":301,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":340,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":351,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":403,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":410,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst hash = await client.sendTransaction({ // [!code focus:5]\\n account,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":157,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":281,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":294,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":301,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":340,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":351,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":403,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":410,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst hash = await client.sendTransaction({ // [!code focus:5]\\n account,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":69,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":157,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":281,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":294,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":301,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":340,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":351,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":403,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":410,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1fc92a181ff57a77918f8a13febfa1ffe529d697842175bd6686ecf05bc51f78.json b/site/.cache/twoslash.1fc92a181ff57a77918f8a13febfa1ffe529d697842175bd6686ecf05bc51f78.json index ba8c9bed75..c7188cb786 100644 --- a/site/.cache/twoslash.1fc92a181ff57a77918f8a13febfa1ffe529d697842175bd6686ecf05bc51f78.json +++ b/site/.cache/twoslash.1fc92a181ff57a77918f8a13febfa1ffe529d697842175bd6686ecf05bc51f78.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":146,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":146,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":146,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":146,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.1fedea2d736562121962e67055064cdc7ebefc99a2ebc697b2dd293306ad90d4.json b/site/.cache/twoslash.1fedea2d736562121962e67055064cdc7ebefc99a2ebc697b2dd293306ad90d4.json deleted file mode 100644 index 27956323e0..0000000000 --- a/site/.cache/twoslash.1fedea2d736562121962e67055064cdc7ebefc99a2ebc697b2dd293306ad90d4.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":17,\"target\":\"signAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":105,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":170,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":202,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" chainId: 10,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" nonce: 420,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":239,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":240,\"length\":0,\"text\":\" yParity: 0,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":241,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":248,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":261,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":274,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":294,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":314,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":332,\"length\":4,\"target\":\"data\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":354,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":358,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":371,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":379,\"length\":7,\"target\":\"address\",\"line\":18,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1345,1356],[1321,1344],[1236,1320],[1151,1235],[1127,1150],[1052,1126],[1027,1051],[1015,1026],[0,781]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":1015,\"end\":1026},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":1027,\"end\":1051},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1052,\"end\":1126},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":1127,\"end\":1150},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1151,\"end\":1235},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1236,\"end\":1320},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1321,\"end\":1344},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1345,\"end\":1356}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":17,\"target\":\"signAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":105,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":170,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":202,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":248,\"length\":4,\"target\":\"hash\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":261,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":274,\"length\":15,\"target\":\"sendTransaction\",\"line\":15,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":294,\"length\":17,\"target\":\"authorizationList\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":314,\"length\":13,\"target\":\"authorization\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":332,\"length\":4,\"target\":\"data\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":354,\"length\":2,\"target\":\"to\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":358,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":371,\"length\":7,\"target\":\"account\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":379,\"length\":7,\"target\":\"address\",\"line\":18,\"character\":27}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" chainId: 10,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" nonce: 420,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":239,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":240,\"length\":0,\"text\":\" yParity: 0,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":241,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0}]}}" diff --git a/site/.cache/twoslash.201829cf42ba6b770940747f891df71b790136e224a401915bf0b9f3df77cda5.json b/site/.cache/twoslash.201829cf42ba6b770940747f891df71b790136e224a401915bf0b9f3df77cda5.json index 34a634ffde..a73a6ce7e7 100644 --- a/site/.cache/twoslash.201829cf42ba6b770940747f891df71b790136e224a401915bf0b9f3df77cda5.json +++ b/site/.cache/twoslash.201829cf42ba6b770940747f891df71b790136e224a401915bf0b9f3df77cda5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.20ab9d5b4352863f49d8aaf7eda0ae9bcdda0ac51be76b2ced66b6281f6ce40f.json b/site/.cache/twoslash.20ab9d5b4352863f49d8aaf7eda0ae9bcdda0ac51be76b2ced66b6281f6ce40f.json index 7c7b5b8c11..c7988b015e 100644 --- a/site/.cache/twoslash.20ab9d5b4352863f49d8aaf7eda0ae9bcdda0ac51be76b2ced66b6281f6ce40f.json +++ b/site/.cache/twoslash.20ab9d5b4352863f49d8aaf7eda0ae9bcdda0ac51be76b2ced66b6281f6ce40f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":262,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":262,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":262,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n executor: 'self', // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":262,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.20ce4645115316ad82986681a76e46bfb6d7ac82ccd474c3207b1b209d5f44d5.json b/site/.cache/twoslash.20ce4645115316ad82986681a76e46bfb6d7ac82ccd474c3207b1b209d5f44d5.json new file mode 100644 index 0000000000..c6816e3d9b --- /dev/null +++ b/site/.cache/twoslash.20ce4645115316ad82986681a76e46bfb6d7ac82ccd474c3207b1b209d5f44d5.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7715Actions(): (client: Client) => Erc7715Actions\\nimport erc7715Actions\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":97,\"length\":14,\"target\":\"erc7715Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7715Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7715Actions(): (client: Client) => Erc7715Actions\\nimport erc7715Actions\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":256,\"length\":14,\"target\":\"erc7715Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7715Actions(): (client: Client) => Erc7715Actions\\nimport erc7715Actions\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":97,\"length\":14,\"target\":\"erc7715Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7715Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7715Actions(): (client: Client) => Erc7715Actions\\nimport erc7715Actions\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":256,\"length\":14,\"target\":\"erc7715Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.20ef99762b43f847d95ee3b2f8b96b07407f5e6e4e3091bca9811659544bcab3.json b/site/.cache/twoslash.20ef99762b43f847d95ee3b2f8b96b07407f5e6e4e3091bca9811659544bcab3.json index 8389bea0dd..ec4b4796cb 100644 --- a/site/.cache/twoslash.20ef99762b43f847d95ee3b2f8b96b07407f5e6e4e3091bca9811659544bcab3.json +++ b/site/.cache/twoslash.20ef99762b43f847d95ee3b2f8b96b07407f5e6e4e3091bca9811659544bcab3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst maxPriorityFeePerGas = \\n await publicClient.estimateMaxPriorityFeePerGas({\\n chain: optimism // [!code focus]\\n })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"start\":63,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateMaxPriorityFeePerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}>(args?: {\\n ...;\\n} | undefined) => Promise\",\"docs\":\"Returns an estimate for the max priority fee per gas (in wei) for a transaction\\nto be included in the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()\\n// 10000000n\"]],\"start\":108,\"length\":28,\"target\":\"estimateMaxPriorityFeePerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":150,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst maxPriorityFeePerGas = \\n await publicClient.estimateMaxPriorityFeePerGas({\\n chain: optimism // [!code focus]\\n })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"start\":63,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateMaxPriorityFeePerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}>(args?: {\\n ...;\\n} | undefined) => Promise\",\"docs\":\"Returns an estimate for the max priority fee per gas (in wei) for a transaction\\nto be included in the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()\\n// 10000000n\"]],\"start\":108,\"length\":28,\"target\":\"estimateMaxPriorityFeePerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":150,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst maxPriorityFeePerGas = \\n await publicClient.estimateMaxPriorityFeePerGas({\\n chain: optimism // [!code focus]\\n })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"start\":63,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateMaxPriorityFeePerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}>(args?: {\\n ...;\\n} | undefined) => Promise\",\"docs\":\"Returns an estimate for the max priority fee per gas (in wei) for a transaction\\nto be included in the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()\\n// 10000000n\"]],\"start\":108,\"length\":28,\"target\":\"estimateMaxPriorityFeePerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":150,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst maxPriorityFeePerGas = \\n await publicClient.estimateMaxPriorityFeePerGas({\\n chain: optimism // [!code focus]\\n })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"start\":63,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateMaxPriorityFeePerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}>(args?: {\\n ...;\\n} | undefined) => Promise\",\"docs\":\"Returns an estimate for the max priority fee per gas (in wei) for a transaction\\nto be included in the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()\\n// 10000000n\"]],\"start\":108,\"length\":28,\"target\":\"estimateMaxPriorityFeePerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":150,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.21237c8650c9072a883d16651ba8485efccd84e5942aef7704cdcc89afd02237.json b/site/.cache/twoslash.21237c8650c9072a883d16651ba8485efccd84e5942aef7704cdcc89afd02237.json deleted file mode 100644 index 816d646303..0000000000 --- a/site/.cache/twoslash.21237c8650c9072a883d16651ba8485efccd84e5942aef7704cdcc89afd02237.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,443]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.22d40d84b8a747ea6ac12217e951ccd909a73cc60e220a99728c28779ea9f55d.json b/site/.cache/twoslash.22d40d84b8a747ea6ac12217e951ccd909a73cc60e220a99728c28779ea9f55d.json new file mode 100644 index 0000000000..d3e51ff091 --- /dev/null +++ b/site/.cache/twoslash.22d40d84b8a747ea6ac12217e951ccd909a73cc60e220a99728c28779ea9f55d.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,355]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.238df49fd29bdf3a956939cf26d201b07e580df91b92848c23ab17d6582c3d12.json b/site/.cache/twoslash.238df49fd29bdf3a956939cf26d201b07e580df91b92848c23ab17d6582c3d12.json index d5f9527c42..a70ff200d4 100644 --- a/site/.cache/twoslash.238df49fd29bdf3a956939cf26d201b07e580df91b92848c23ab17d6582c3d12.json +++ b/site/.cache/twoslash.238df49fd29bdf3a956939cf26d201b07e580df91b92848c23ab17d6582c3d12.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":82,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":125,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":182,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":234,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":241,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":82,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":125,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":182,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":234,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":241,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":82,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":125,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":182,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":234,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":241,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":82,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":125,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":182,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":234,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":241,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.23dc91fe9d1777cf449378f453caede28f78a29aed59b3a1a4c72bb3a97e97f9.json b/site/.cache/twoslash.23dc91fe9d1777cf449378f453caede28f78a29aed59b3a1a4c72bb3a97e97f9.json index fa4ba45cb0..0f91e13a9c 100644 --- a/site/.cache/twoslash.23dc91fe9d1777cf449378f453caede28f78a29aed59b3a1a4c72bb3a97e97f9.json +++ b/site/.cache/twoslash.23dc91fe9d1777cf449378f453caede28f78a29aed59b3a1a4c72bb3a97e97f9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":142,\"length\":0,\"text\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[419,563],[0,277]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":419,\"end\":563}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\\n// @log: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":142,\"length\":0,\"text\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":142,\"length\":0,\"text\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[419,563],[0,277]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":419,\"end\":563}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\\n// @log: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":142,\"length\":0,\"text\":\"\\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0}]}}" diff --git a/site/.cache/twoslash.23e5127e98aeba3cd5b8428ff69848b1353bcde9f5198f498e7f1b45ef55dd35.json b/site/.cache/twoslash.23e5127e98aeba3cd5b8428ff69848b1353bcde9f5198f498e7f1b45ef55dd35.json index 6a82531881..e12016b5c9 100644 --- a/site/.cache/twoslash.23e5127e98aeba3cd5b8428ff69848b1353bcde9f5198f498e7f1b45ef55dd35.json +++ b/site/.cache/twoslash.23e5127e98aeba3cd5b8428ff69848b1353bcde9f5198f498e7f1b45ef55dd35.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst signature = await walletClient.signMessage({ // [!code focus:99]\\n message: 'hello world',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":48,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":66,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":79,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":115,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.23eff0c2c4de89e4bcaf5af40ff9014f83cc403f5686c74ae8f972628f87ef25.json b/site/.cache/twoslash.23eff0c2c4de89e4bcaf5af40ff9014f83cc403f5686c74ae8f972628f87ef25.json new file mode 100644 index 0000000000..2039efaf52 --- /dev/null +++ b/site/.cache/twoslash.23eff0c2c4de89e4bcaf5af40ff9014f83cc403f5686c74ae8f972628f87ef25.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,741]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":649,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.247a9e48c44bed01fbe52d38a871515cb6e806b50055b72995c85774fe88e1ba.json b/site/.cache/twoslash.247a9e48c44bed01fbe52d38a871515cb6e806b50055b72995c85774fe88e1ba.json index 8ec78b15d0..5ed045bed6 100644 --- a/site/.cache/twoslash.247a9e48c44bed01fbe52d38a871515cb6e806b50055b72995c85774fe88e1ba.json +++ b/site/.cache/twoslash.247a9e48c44bed01fbe52d38a871515cb6e806b50055b72995c85774fe88e1ba.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n image: 'https://weth.com/icon.png', // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) image?: string | undefined\",\"docs\":\"A string url of the token logo\",\"start\":179,\"length\":5,\"target\":\"image\",\"line\":6,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n image: 'https://weth.com/icon.png', // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) image?: string | undefined\",\"docs\":\"A string url of the token logo\",\"start\":179,\"length\":5,\"target\":\"image\",\"line\":6,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n image: 'https://weth.com/icon.png', // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) image?: string | undefined\",\"docs\":\"A string url of the token logo\",\"start\":179,\"length\":5,\"target\":\"image\",\"line\":6,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n image: 'https://weth.com/icon.png', // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) image?: string | undefined\",\"docs\":\"A string url of the token logo\",\"start\":179,\"length\":5,\"target\":\"image\",\"line\":6,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.24a60387c22a22bd52590ce98bab1babfdd88b629ca7a81cf76b7644061c3c71.json b/site/.cache/twoslash.24a60387c22a22bd52590ce98bab1babfdd88b629ca7a81cf76b7644061c3c71.json new file mode 100644 index 0000000000..73b84569f0 --- /dev/null +++ b/site/.cache/twoslash.24a60387c22a22bd52590ce98bab1babfdd88b629ca7a81cf76b7644061c3c71.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":150,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":168,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":181,\"length\":15,\"target\":\"signTransaction\",\"line\":5,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":212,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":232,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":267,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":289,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,289]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst signature = await walletClient.signTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":150,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":168,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":181,\"length\":15,\"target\":\"signTransaction\",\"line\":5,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":212,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":232,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":267,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":289,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.251ba9dbe6949b52b6109665243d63f5ab196ce64e0956f4f1e1df45dec3db69.json b/site/.cache/twoslash.251ba9dbe6949b52b6109665243d63f5ab196ce64e0956f4f1e1df45dec3db69.json deleted file mode 100644 index 4d1115110e..0000000000 --- a/site/.cache/twoslash.251ba9dbe6949b52b6109665243d63f5ab196ce64e0956f4f1e1df45dec3db69.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.252e443c6a356abcc74be665433ff359cc9ba3089ed532af751369cecc7956df.json b/site/.cache/twoslash.252e443c6a356abcc74be665433ff359cc9ba3089ed532af751369cecc7956df.json index e6dd3f0de4..07172631b7 100644 --- a/site/.cache/twoslash.252e443c6a356abcc74be665433ff359cc9ba3089ed532af751369cecc7956df.json +++ b/site/.cache/twoslash.252e443c6a356abcc74be665433ff359cc9ba3089ed532af751369cecc7956df.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut--\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20', // [!code focus]\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":216,\"length\":7,\"target\":\"success\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":245,\"length\":10,\"target\":\"watchAsset\",\"line\":8,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":260,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":294,\"length\":7,\"target\":\"options\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":368,\"length\":8,\"target\":\"decimals\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":386,\"length\":6,\"target\":\"symbol\",\"line\":13,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,35]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut--\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20', // [!code focus]\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":216,\"length\":7,\"target\":\"success\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":245,\"length\":10,\"target\":\"watchAsset\",\"line\":8,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":260,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":294,\"length\":7,\"target\":\"options\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":368,\"length\":8,\"target\":\"decimals\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":386,\"length\":6,\"target\":\"symbol\",\"line\":13,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut--\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20', // [!code focus]\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":216,\"length\":7,\"target\":\"success\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":245,\"length\":10,\"target\":\"watchAsset\",\"line\":8,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":260,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":294,\"length\":7,\"target\":\"options\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":368,\"length\":8,\"target\":\"decimals\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":386,\"length\":6,\"target\":\"symbol\",\"line\":13,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,35]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut--\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20', // [!code focus]\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":216,\"length\":7,\"target\":\"success\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":245,\"length\":10,\"target\":\"watchAsset\",\"line\":8,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":260,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":294,\"length\":7,\"target\":\"options\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":368,\"length\":8,\"target\":\"decimals\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":386,\"length\":6,\"target\":\"symbol\",\"line\":13,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.53bbb3ce30f6cab02781831926e1ae3080f9ee723333c437b4f83ec886ea200b.json b/site/.cache/twoslash.256e889150f4c70c33db0fcede092ade73555651a74ea2df6d5d22e256a273ce.json similarity index 69% rename from site/.cache/twoslash.53bbb3ce30f6cab02781831926e1ae3080f9ee723333c437b4f83ec886ea200b.json rename to site/.cache/twoslash.256e889150f4c70c33db0fcede092ade73555651a74ea2df6d5d22e256a273ce.json index 03b2cfbf99..68b8ece1d7 100644 --- a/site/.cache/twoslash.53bbb3ce30f6cab02781831926e1ae3080f9ee723333c437b4f83ec886ea200b.json +++ b/site/.cache/twoslash.256e889150f4c70c33db0fcede092ade73555651a74ea2df6d5d22e256a273ce.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":47,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":71,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":85,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":106,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":162,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":169,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":204,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":230,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities?: WalletCapabilities | undefined\",\"start\":294,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":331,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":374,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":47,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":71,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":85,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":106,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":162,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":169,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":204,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":230,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities?: WalletCapabilities | undefined\",\"start\":294,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":331,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":374,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) forceAtomic?: boolean | undefined\",\"start\":298,\"length\":11,\"target\":\"forceAtomic\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n forceAtomic: true, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) forceAtomic?: boolean | undefined\",\"start\":298,\"length\":11,\"target\":\"forceAtomic\",\"line\":13,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.25c0579b7fed96c3503b82ae274ed0ec2f7c4f4a171aabf1777d44041f7bd632.json b/site/.cache/twoslash.25c0579b7fed96c3503b82ae274ed0ec2f7c4f4a171aabf1777d44041f7bd632.json index 0c9762a6a4..02dfd19521 100644 --- a/site/.cache/twoslash.25c0579b7fed96c3503b82ae274ed0ec2f7c4f4a171aabf1777d44041f7bd632.json +++ b/site/.cache/twoslash.25c0579b7fed96c3503b82ae274ed0ec2f7c4f4a171aabf1777d44041f7bd632.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem' \\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http() // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":58,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":94,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":103,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":178,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":189,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":240,\"length\":13,\"target\":\"bundlerClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":256,\"length\":19,\"target\":\"createBundlerClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | Client | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":280,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":307,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":318,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,76]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createBundlerClient } from 'viem/account-abstraction'\\n// ---cut---\\nimport { createPublicClient, http } from 'viem' \\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http() // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":58,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":94,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":103,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":178,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":189,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":240,\"length\":13,\"target\":\"bundlerClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":256,\"length\":19,\"target\":\"createBundlerClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | Client | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":280,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":307,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":318,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem' \\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http() // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":58,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":94,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":103,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":178,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":189,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":240,\"length\":13,\"target\":\"bundlerClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":256,\"length\":19,\"target\":\"createBundlerClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | Client | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":280,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":307,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":318,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,76]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createBundlerClient } from 'viem/account-abstraction'\\n// ---cut---\\nimport { createPublicClient, http } from 'viem' \\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({ // [!code focus]\\n chain: mainnet, // [!code focus]\\n transport: http() // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":58,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":94,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":103,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":178,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":189,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":240,\"length\":13,\"target\":\"bundlerClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":256,\"length\":19,\"target\":\"createBundlerClient\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | Client | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":280,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":307,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":318,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.25fd3edb5f40b32e472c8f6fdc823ac3d2ab6b2c13eee9aca780b194bd5ff347.json b/site/.cache/twoslash.25fd3edb5f40b32e472c8f6fdc823ac3d2ab6b2c13eee9aca780b194bd5ff347.json index 9af4285178..aba1a79a32 100644 --- a/site/.cache/twoslash.25fd3edb5f40b32e472c8f6fdc823ac3d2ab6b2c13eee9aca780b194bd5ff347.json +++ b/site/.cache/twoslash.25fd3edb5f40b32e472c8f6fdc823ac3d2ab6b2c13eee9aca780b194bd5ff347.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n }), // [!code focus]\\n to: eoa.address, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":134,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":140,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":199,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":212,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":243,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":250,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":277,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":290,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":303,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":340,\"length\":17,\"target\":\"authorizationList\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":395,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":401,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":443,\"length\":3,\"target\":\"abi\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":469,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":539,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":543,\"length\":3,\"target\":\"eoa\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":547,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n }), // [!code focus]\\n to: eoa.address, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":134,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":140,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":199,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":212,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":243,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":250,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":277,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":290,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":303,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":340,\"length\":17,\"target\":\"authorizationList\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":395,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":401,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":443,\"length\":3,\"target\":\"abi\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":469,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":539,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":543,\"length\":3,\"target\":\"eoa\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":547,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n }), // [!code focus]\\n to: eoa.address, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":134,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":140,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":199,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":212,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":243,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":250,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":277,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":290,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":303,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":340,\"length\":17,\"target\":\"authorizationList\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":395,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":401,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":443,\"length\":3,\"target\":\"abi\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":469,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":539,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":543,\"length\":3,\"target\":\"eoa\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":547,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n }), // [!code focus]\\n to: eoa.address, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":134,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":140,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":199,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":212,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":243,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":250,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":277,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":290,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":303,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":340,\"length\":17,\"target\":\"authorizationList\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":395,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":401,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":443,\"length\":3,\"target\":\"abi\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":469,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":539,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":543,\"length\":3,\"target\":\"eoa\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":547,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.261a580b24480cc84e074f8ce6e39e985e47def45f132b3069edd700ee0a7468.json b/site/.cache/twoslash.261a580b24480cc84e074f8ce6e39e985e47def45f132b3069edd700ee0a7468.json index 4545c5a210..9be1f0c6ff 100644 --- a/site/.cache/twoslash.261a580b24480cc84e074f8ce6e39e985e47def45f132b3069edd700ee0a7468.json +++ b/site/.cache/twoslash.261a580b24480cc84e074f8ce6e39e985e47def45f132b3069edd700ee0a7468.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":61,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":61,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":61,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n retryDelay: 100, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":61,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.26a888309c4c6e58d951314c02edaa0f3f1397fb98f831f2787c6edfb1859bdc.json b/site/.cache/twoslash.26a888309c4c6e58d951314c02edaa0f3f1397fb98f831f2787c6edfb1859bdc.json index 4885b07d36..6ce475bc6e 100644 --- a/site/.cache/twoslash.26a888309c4c6e58d951314c02edaa0f3f1397fb98f831f2787c6edfb1859bdc.json +++ b/site/.cache/twoslash.26a888309c4c6e58d951314c02edaa0f3f1397fb98f831f2787c6edfb1859bdc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":169,\"length\":7,\"target\":\"batches\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":192,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":221,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":281,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":288,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":342,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":371,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":401,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":169,\"length\":7,\"target\":\"batches\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":192,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":221,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":281,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":288,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":342,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":371,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":401,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":169,\"length\":7,\"target\":\"batches\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":192,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":221,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":281,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":288,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":342,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":371,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":401,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":169,\"length\":7,\"target\":\"batches\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":192,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":221,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":281,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":288,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":342,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":371,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":401,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.26f7aa9356673c56f52c0f7777662eb4508f6fb17759aa48fa858d046a5653e6.json b/site/.cache/twoslash.26f7aa9356673c56f52c0f7777662eb4508f6fb17759aa48fa858d046a5653e6.json index 6b540c3037..f15d527425 100644 --- a/site/.cache/twoslash.26f7aa9356673c56f52c0f7777662eb4508f6fb17759aa48fa858d046a5653e6.json +++ b/site/.cache/twoslash.26f7aa9356673c56f52c0f7777662eb4508f6fb17759aa48fa858d046a5653e6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: '0x...', // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst hash = await client.sendTransaction({\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, \\\"0x...\\\", undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":139,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":205,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":212,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":219,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":280,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":332,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":339,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: '0x...', // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst hash = await client.sendTransaction({\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, \\\"0x...\\\", undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":139,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":205,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":212,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":219,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":280,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":332,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":339,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: '0x...', // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst hash = await client.sendTransaction({\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, \\\"0x...\\\", undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":139,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":205,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":212,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":219,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":280,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":332,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":339,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: '0x...', // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst hash = await client.sendTransaction({\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, \\\"0x...\\\", undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":139,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":205,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":212,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":219,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: \\\"0x...\\\";\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":253,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":260,\"length\":15,\"target\":\"sendTransaction\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":280,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":332,\"length\":5,\"target\":\"value\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":339,\"length\":10,\"target\":\"parseEther\",\"line\":11,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.270056ede16074d6f915a03704196da318402ca0d7badce0793de3d9ddd1ad00.json b/site/.cache/twoslash.270056ede16074d6f915a03704196da318402ca0d7badce0793de3d9ddd1ad00.json index 9f1040e054..12bb2d639f 100644 --- a/site/.cache/twoslash.270056ede16074d6f915a03704196da318402ca0d7badce0793de3d9ddd1ad00.json +++ b/site/.cache/twoslash.270056ede16074d6f915a03704196da318402ca0d7badce0793de3d9ddd1ad00.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":97,\"length\":14,\"target\":\"eip5792Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Eip5792Actions<...>) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":256,\"length\":14,\"target\":\"eip5792Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":97,\"length\":14,\"target\":\"eip5792Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Eip5792Actions<...>) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":256,\"length\":14,\"target\":\"eip5792Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":97,\"length\":14,\"target\":\"eip5792Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Eip5792Actions<...>) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":256,\"length\":14,\"target\":\"eip5792Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":97,\"length\":14,\"target\":\"eip5792Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Eip5792Actions<...>) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip5792Actions(): (client: Client) => Eip5792Actions\\nimport eip5792Actions\",\"docs\":\"A suite of EIP-5792 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip5792Actions())\\n\\nconst hash = await walletClient.sendCalls({...})\"]],\"start\":256,\"length\":14,\"target\":\"eip5792Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":289,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":306,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":319,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.27eb50c72e7a5f05d1440e2be83fb4494df09af122c6fe1f5411bb697f0b5a91.json b/site/.cache/twoslash.27eb50c72e7a5f05d1440e2be83fb4494df09af122c6fe1f5411bb697f0b5a91.json index 0a645bd992..595be245ef 100644 --- a/site/.cache/twoslash.27eb50c72e7a5f05d1440e2be83fb4494df09af122c6fe1f5411bb697f0b5a91.json +++ b/site/.cache/twoslash.27eb50c72e7a5f05d1440e2be83fb4494df09af122c6fe1f5411bb697f0b5a91.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = {\\n address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n abi: parseAbi(['function entryPoint() view returns (address)'])\\n} as const\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":35,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":124,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":181,\"length\":3,\"target\":\"abi\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":186,\"length\":8,\"target\":\"parseAbi\",\"line\":5,\"character\":7},{\"type\":\"hover\",\"text\":\"type const = {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":250,\"length\":5,\"target\":\"const\",\"line\":6,\"character\":5},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":270,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":285,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":308,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":315,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = {\\n address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n abi: parseAbi(['function entryPoint() view returns (address)'])\\n} as const\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":35,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":124,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":181,\"length\":3,\"target\":\"abi\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":186,\"length\":8,\"target\":\"parseAbi\",\"line\":5,\"character\":7},{\"type\":\"hover\",\"text\":\"type const = {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":250,\"length\":5,\"target\":\"const\",\"line\":6,\"character\":5},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":270,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":285,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":308,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":315,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = {\\n address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n abi: parseAbi(['function entryPoint() view returns (address)'])\\n} as const\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":35,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":124,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":181,\"length\":3,\"target\":\"abi\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":186,\"length\":8,\"target\":\"parseAbi\",\"line\":5,\"character\":7},{\"type\":\"hover\",\"text\":\"type const = {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":250,\"length\":5,\"target\":\"const\",\"line\":6,\"character\":5},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":270,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":285,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":308,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":315,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = {\\n address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n abi: parseAbi(['function entryPoint() view returns (address)'])\\n} as const\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":35,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":124,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":181,\"length\":3,\"target\":\"abi\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":186,\"length\":8,\"target\":\"parseAbi\",\"line\":5,\"character\":7},{\"type\":\"hover\",\"text\":\"type const = {\\n readonly address: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n }];\\n}\",\"start\":250,\"length\":5,\"target\":\"const\",\"line\":6,\"character\":5},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":270,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":285,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":308,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":315,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2869d171934ca7ea109169bbed391d239aa387698e6f68604a54a03e70f2a339.json b/site/.cache/twoslash.2869d171934ca7ea109169bbed391d239aa387698e6f68604a54a03e70f2a339.json deleted file mode 100644 index 65c5a89076..0000000000 --- a/site/.cache/twoslash.2869d171934ca7ea109169bbed391d239aa387698e6f68604a54a03e70f2a339.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"export const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":13,\"length\":3,\"target\":\"abi\",\"line\":0,\"character\":13},{\"type\":\"hover\",\"text\":\"type const = readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":507,\"length\":5,\"target\":\"const\",\"line\":27,\"character\":5},{\"type\":\"hover\",\"text\":\"const contractAddress: \\\"0x...\\\"\",\"start\":527,\"length\":15,\"target\":\"contractAddress\",\"line\":29,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"export const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":13,\"length\":3,\"target\":\"abi\",\"line\":0,\"character\":13},{\"type\":\"hover\",\"text\":\"type const = readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":507,\"length\":5,\"target\":\"const\",\"line\":27,\"character\":5},{\"type\":\"hover\",\"text\":\"const contractAddress: \\\"0x...\\\"\",\"start\":527,\"length\":15,\"target\":\"contractAddress\",\"line\":29,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2bc3c8ad93abebd795f0c35c296880c8b86fa4f178c3ae3c1b092f3e997d0aea.json b/site/.cache/twoslash.2bc3c8ad93abebd795f0c35c296880c8b86fa4f178c3ae3c1b092f3e997d0aea.json index 1d84bcb86e..8e95bdfbdc 100644 --- a/site/.cache/twoslash.2bc3c8ad93abebd795f0c35c296880c8b86fa4f178c3ae3c1b092f3e997d0aea.json +++ b/site/.cache/twoslash.2bc3c8ad93abebd795f0c35c296880c8b86fa4f178c3ae3c1b092f3e997d0aea.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst data = await publicClient.call({ // [!code focus:7]\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":56,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":82,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":121,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst data = await publicClient.call({ // [!code focus:7]\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":56,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":82,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":121,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst data = await publicClient.call({ // [!code focus:7]\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":56,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":82,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":121,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst data = await publicClient.call({ // [!code focus:7]\\n account,\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":56,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":82,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":110,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":121,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c040fb3e13b0c6cc389a3c3be45f7101e35b8cad3b04bffa12a44882c7baccd.json b/site/.cache/twoslash.2c040fb3e13b0c6cc389a3c3be45f7101e35b8cad3b04bffa12a44882c7baccd.json index e9b0f686bb..b9b7af672b 100644 --- a/site/.cache/twoslash.2c040fb3e13b0c6cc389a3c3be45f7101e35b8cad3b04bffa12a44882c7baccd.json +++ b/site/.cache/twoslash.2c040fb3e13b0c6cc389a3c3be45f7101e35b8cad3b04bffa12a44882c7baccd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":57,\"length\":8,\"target\":\"optimism\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":146,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":169,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":57,\"length\":8,\"target\":\"optimism\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":146,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":169,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":57,\"length\":8,\"target\":\"optimism\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":146,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":169,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: optimism,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":57,\"length\":8,\"target\":\"optimism\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":146,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":169,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c0f0aa5c01c4cbe6eaed6285704dc6da6de4bfa8f4f69ed42291104c8509a1f.json b/site/.cache/twoslash.2c0f0aa5c01c4cbe6eaed6285704dc6da6de4bfa8f4f69ed42291104c8509a1f.json new file mode 100644 index 0000000000..d52b515179 --- /dev/null +++ b/site/.cache/twoslash.2c0f0aa5c01c4cbe6eaed6285704dc6da6de4bfa8f4f69ed42291104c8509a1f.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,688]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":649,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c396788c96b831b36be275dd8de7d89dade5ca4663e4b5f169b3eac903e2e8d.json b/site/.cache/twoslash.2c396788c96b831b36be275dd8de7d89dade5ca4663e4b5f169b3eac903e2e8d.json index d0204bdcd3..6e3b2f6602 100644 --- a/site/.cache/twoslash.2c396788c96b831b36be275dd8de7d89dade5ca4663e4b5f169b3eac903e2e8d.json +++ b/site/.cache/twoslash.2c396788c96b831b36be275dd8de7d89dade5ca4663e4b5f169b3eac903e2e8d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":41,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":54,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":67,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":76,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":187,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":41,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":54,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":67,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":76,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":187,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":41,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":54,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":67,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":76,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":187,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":41,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":54,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":67,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":76,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":187,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c4be1e522b190a20a33262a094d28d12d975214039338c9aca45157ac7b764c.json b/site/.cache/twoslash.2c4be1e522b190a20a33262a094d28d12d975214039338c9aca45157ac7b764c.json index 363b4c1dce..b69aabaa59 100644 --- a/site/.cache/twoslash.2c4be1e522b190a20a33262a094d28d12d975214039338c9aca45157ac7b764c.json +++ b/site/.cache/twoslash.2c4be1e522b190a20a33262a094d28d12d975214039338c9aca45157ac7b764c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":186,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":210,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":244,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":316,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":329,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":347,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":361,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":387,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":403,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":433,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":463,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":489,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":501,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":527,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":545,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":577,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":600,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":615,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":629,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":648,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":713,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":725,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":744,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":809,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":841,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c5335a3628c17e7564279ffc0e1d6d7805db8fe85c02307be701a432cb03433.json b/site/.cache/twoslash.2c5335a3628c17e7564279ffc0e1d6d7805db8fe85c02307be701a432cb03433.json index 2926442d15..48221ac11a 100644 --- a/site/.cache/twoslash.2c5335a3628c17e7564279ffc0e1d6d7805db8fe85c02307be701a432cb03433.json +++ b/site/.cache/twoslash.2c5335a3628c17e7564279ffc0e1d6d7805db8fe85c02307be701a432cb03433.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) opData?: `0x${string}` | undefined\",\"docs\":\"Additional data to include for execution.\",\"start\":313,\"length\":6,\"target\":\"opData\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) opData?: `0x${string}` | undefined\",\"docs\":\"Additional data to include for execution.\",\"start\":313,\"length\":6,\"target\":\"opData\",\"line\":12,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) opData?: `0x${string}` | undefined\",\"docs\":\"Additional data to include for execution.\",\"start\":313,\"length\":6,\"target\":\"opData\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n opData: '0xdeadbeef', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) opData?: `0x${string}` | undefined\",\"docs\":\"Additional data to include for execution.\",\"start\":313,\"length\":6,\"target\":\"opData\",\"line\":12,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2c9f01858662433f19c7382afef44607188f6428dd21428372691ef26796e54e.json b/site/.cache/twoslash.2c9f01858662433f19c7382afef44607188f6428dd21428372691ef26796e54e.json new file mode 100644 index 0000000000..6b837364d2 --- /dev/null +++ b/site/.cache/twoslash.2c9f01858662433f19c7382afef44607188f6428dd21428372691ef26796e54e.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n type: 'deployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"deployed\\\"\",\"start\":172,\"length\":4,\"target\":\"type\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n type: 'deployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"deployed\\\"\",\"start\":172,\"length\":4,\"target\":\"type\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2d095a7f126abc552fa492bf1268ead81c34d12a6bdfd9048f8e74d5e3617796.json b/site/.cache/twoslash.2d095a7f126abc552fa492bf1268ead81c34d12a6bdfd9048f8e74d5e3617796.json index a7920f32fa..f2a2d14fc6 100644 --- a/site/.cache/twoslash.2d095a7f126abc552fa492bf1268ead81c34d12a6bdfd9048f8e74d5e3617796.json +++ b/site/.cache/twoslash.2d095a7f126abc552fa492bf1268ead81c34d12a6bdfd9048f8e74d5e3617796.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http(),\\n})\\n\\nconst result = await publicClient.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":237,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":267,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":278,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":289,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":299,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":338,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":349,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string | boolean | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 5 more ... | null\",\"start\":367,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":382,\"length\":12,\"target\":\"publicClient\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 41 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":395,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":424,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":439,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":545,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":460,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[570,590],[0,112]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":86,\"end\":99}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http(),\\n})\\n\\nconst result = await publicClient.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[551],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":439,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":545,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":237,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":267,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":278,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":289,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":299,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":338,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":349,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string | boolean | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 5 more ... | null\",\"start\":367,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":382,\"length\":12,\"target\":\"publicClient\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 41 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":395,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":424,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":460,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http(),\\n})\\n\\nconst result = await publicClient.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":237,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":267,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":278,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":289,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":299,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":338,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":349,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string | boolean | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 5 more ... | null\",\"start\":367,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":382,\"length\":12,\"target\":\"publicClient\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 41 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":395,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":424,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":439,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":545,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":460,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[570,590],[0,112]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":86,\"end\":99}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http(),\\n})\\n\\nconst result = await publicClient.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[551],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":439,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":545,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":237,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":260,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":267,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":278,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":289,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":299,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":338,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":349,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string | boolean | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 5 more ... | null\",\"start\":367,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":382,\"length\":12,\"target\":\"publicClient\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 41 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":395,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":424,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":460,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2d9b4708223980282a60dc3dc48ff27c1147a8b1497da1927c98afa127d93923.json b/site/.cache/twoslash.2d9b4708223980282a60dc3dc48ff27c1147a8b1497da1927c98afa127d93923.json index d514caa58f..c40019f3cd 100644 --- a/site/.cache/twoslash.2d9b4708223980282a60dc3dc48ff27c1147a8b1497da1927c98afa127d93923.json +++ b/site/.cache/twoslash.2d9b4708223980282a60dc3dc48ff27c1147a8b1497da1927c98afa127d93923.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":219,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":241,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":276,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":219,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":241,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":276,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":219,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":241,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":276,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":219,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":241,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":276,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2dbeee7742b06dc5c825001ea0fd97ad12240c068d54c9779bb0adbe2dd054b8.json b/site/.cache/twoslash.2dbeee7742b06dc5c825001ea0fd97ad12240c068d54c9779bb0adbe2dd054b8.json index 122bae430d..e91df75e9f 100644 --- a/site/.cache/twoslash.2dbeee7742b06dc5c825001ea0fd97ad12240c068d54c9779bb0adbe2dd054b8.json +++ b/site/.cache/twoslash.2dbeee7742b06dc5c825001ea0fd97ad12240c068d54c9779bb0adbe2dd054b8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n retryCount: 3 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The number of times to retry.\",\"tags\":[[\"default\",\"6\"]],\"start\":146,\"length\":10,\"target\":\"retryCount\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n retryCount: 3 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The number of times to retry.\",\"tags\":[[\"default\",\"6\"]],\"start\":146,\"length\":10,\"target\":\"retryCount\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n retryCount: 3 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The number of times to retry.\",\"tags\":[[\"default\",\"6\"]],\"start\":146,\"length\":10,\"target\":\"retryCount\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n retryCount: 3 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The number of times to retry.\",\"tags\":[[\"default\",\"6\"]],\"start\":146,\"length\":10,\"target\":\"retryCount\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2dc302e1ed3c208a6b50cd852f7332e9ad035d3eab2685369caf2a8fef676e45.json b/site/.cache/twoslash.2dc302e1ed3c208a6b50cd852f7332e9ad035d3eab2685369caf2a8fef676e45.json index 04afe00933..7152dfa536 100644 --- a/site/.cache/twoslash.2dc302e1ed3c208a6b50cd852f7332e9ad035d3eab2685369caf2a8fef676e45.json +++ b/site/.cache/twoslash.2dc302e1ed3c208a6b50cd852f7332e9ad035d3eab2685369caf2a8fef676e45.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,35]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,35]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2dfd1da667ab3308fcc9b9b9c9275915318a4427c08ada4fb84907a3a6671684.json b/site/.cache/twoslash.2dfd1da667ab3308fcc9b9b9c9275915318a4427c08ada4fb84907a3a6671684.json index e13e6cdea8..e39adaafc3 100644 --- a/site/.cache/twoslash.2dfd1da667ab3308fcc9b9b9c9275915318a4427c08ada4fb84907a3a6671684.json +++ b/site/.cache/twoslash.2dfd1da667ab3308fcc9b9b9c9275915318a4427c08ada4fb84907a3a6671684.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n\\n// export const account = privateKeyToAccount(...)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":85,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":128,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":143,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":166,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":173,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":184,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":195,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":219,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 6 more ...;\\n account?: `0x${string}` | ... 1 more ... | undefined;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":257,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":268,\"length\":6,\"target\":\"custom\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":275,\"length\":6,\"target\":\"window\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":282,\"length\":8,\"target\":\"ethereum\",\"line\":9,\"character\":27},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":12,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":311,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":341,\"length\":12,\"target\":\"getAddresses\",\"line\":12,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":357,\"length\":0,\"text\":\"↓ Local Account\",\"line\":14,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[419,444],[331,359],[0,34]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":331,\"end\":359},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":419,\"end\":444}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":85,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":128,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":143,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":166,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":173,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":184,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":195,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":219,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 6 more ...;\\n account?: `0x${string}` | ... 1 more ... | undefined;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":257,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":268,\"length\":6,\"target\":\"custom\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":275,\"length\":6,\"target\":\"window\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":282,\"length\":8,\"target\":\"ethereum\",\"line\":9,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":311,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":341,\"length\":12,\"target\":\"getAddresses\",\"line\":12,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":357,\"length\":0,\"text\":\"↓ Local Account\",\"line\":14,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n\\n// export const account = privateKeyToAccount(...)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":85,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":128,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":143,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":166,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":173,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":184,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":195,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":219,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 6 more ...;\\n account?: `0x${string}` | ... 1 more ... | undefined;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":257,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":268,\"length\":6,\"target\":\"custom\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":275,\"length\":6,\"target\":\"window\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":282,\"length\":8,\"target\":\"ethereum\",\"line\":9,\"character\":27},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":12,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":311,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":341,\"length\":12,\"target\":\"getAddresses\",\"line\":12,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":357,\"length\":0,\"text\":\"↓ Local Account\",\"line\":14,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[419,444],[331,359],[0,34]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":331,\"end\":359},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":419,\"end\":444}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":85,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":128,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":143,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":166,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":173,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":184,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":195,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":219,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 6 more ...;\\n account?: `0x${string}` | ... 1 more ... | undefined;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":234,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":257,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":268,\"length\":6,\"target\":\"custom\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":275,\"length\":6,\"target\":\"window\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":282,\"length\":8,\"target\":\"ethereum\",\"line\":9,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":311,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":341,\"length\":12,\"target\":\"getAddresses\",\"line\":12,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":357,\"length\":0,\"text\":\"↓ Local Account\",\"line\":14,\"character\":0}]}}" diff --git a/site/.cache/twoslash.2e37e2a4cf38368045bcbe186d90d31e72cee89f066635215b9d0c682725c6c4.json b/site/.cache/twoslash.2e37e2a4cf38368045bcbe186d90d31e72cee89f066635215b9d0c682725c6c4.json deleted file mode 100644 index 3c5ea91fd0..0000000000 --- a/site/.cache/twoslash.2e37e2a4cf38368045bcbe186d90d31e72cee89f066635215b9d0c682725c6c4.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2e6b608e28836bd12367ba252645c72934308bffc6c4a621f3fbb16bb9aa9c6d.json b/site/.cache/twoslash.2e6b608e28836bd12367ba252645c72934308bffc6c4a621f3fbb16bb9aa9c6d.json index fe32b2f676..96152fb44f 100644 --- a/site/.cache/twoslash.2e6b608e28836bd12367ba252645c72934308bffc6c4a621f3fbb16bb9aa9c6d.json +++ b/site/.cache/twoslash.2e6b608e28836bd12367ba252645c72934308bffc6c4a621f3fbb16bb9aa9c6d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n message: 'hello world',\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n // Account used for signing.\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n // Verifying contract address (e.g. ERC-4337 Smart Account)\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":168,\"length\":7,\"target\":\"message\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":257,\"length\":8,\"target\":\"verifier\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":322,\"length\":11,\"target\":\"signature_2\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":342,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":355,\"length\":11,\"target\":\"signMessage\",\"line\":10,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":402,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":454,\"length\":7,\"target\":\"message\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":465,\"length\":3,\"target\":\"raw\",\"line\":14,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":564,\"length\":8,\"target\":\"verifier\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n message: 'hello world',\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n // Account used for signing.\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n // Verifying contract address (e.g. ERC-4337 Smart Account)\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":168,\"length\":7,\"target\":\"message\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":257,\"length\":8,\"target\":\"verifier\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":322,\"length\":11,\"target\":\"signature_2\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":342,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":355,\"length\":11,\"target\":\"signMessage\",\"line\":10,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":402,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":454,\"length\":7,\"target\":\"message\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":465,\"length\":3,\"target\":\"raw\",\"line\":14,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":564,\"length\":8,\"target\":\"verifier\",\"line\":16,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n message: 'hello world',\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n // Account used for signing.\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n // Verifying contract address (e.g. ERC-4337 Smart Account)\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":168,\"length\":7,\"target\":\"message\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":257,\"length\":8,\"target\":\"verifier\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":322,\"length\":11,\"target\":\"signature_2\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":342,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":355,\"length\":11,\"target\":\"signMessage\",\"line\":10,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":402,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":454,\"length\":7,\"target\":\"message\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":465,\"length\":3,\"target\":\"raw\",\"line\":14,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":564,\"length\":8,\"target\":\"verifier\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n message: 'hello world',\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n // Account used for signing.\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n // Verifying contract address (e.g. ERC-4337 Smart Account)\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":157,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":168,\"length\":7,\"target\":\"message\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":257,\"length\":8,\"target\":\"verifier\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":322,\"length\":11,\"target\":\"signature_2\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":342,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":355,\"length\":11,\"target\":\"signMessage\",\"line\":10,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":402,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":454,\"length\":7,\"target\":\"message\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":465,\"length\":3,\"target\":\"raw\",\"line\":14,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":564,\"length\":8,\"target\":\"verifier\",\"line\":16,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2ed3ea3c9acd2a215dba9b29b3cd5df7bac2d13951a593c43b2fecb30aaeb06a.json b/site/.cache/twoslash.2ed3ea3c9acd2a215dba9b29b3cd5df7bac2d13951a593c43b2fecb30aaeb06a.json index aaf87e479e..f3772e7db6 100644 --- a/site/.cache/twoslash.2ed3ea3c9acd2a215dba9b29b3cd5df7bac2d13951a593c43b2fecb30aaeb06a.json +++ b/site/.cache/twoslash.2ed3ea3c9acd2a215dba9b29b3cd5df7bac2d13951a593c43b2fecb30aaeb06a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2edf1b1b170c3b7070792e30920d7117c408892d9e67e1b55af36c7bd2d92ed8.json b/site/.cache/twoslash.2edf1b1b170c3b7070792e30920d7117c408892d9e67e1b55af36c7bd2d92ed8.json index 3850bf0510..8112751430 100644 --- a/site/.cache/twoslash.2edf1b1b170c3b7070792e30920d7117c408892d9e67e1b55af36c7bd2d92ed8.json +++ b/site/.cache/twoslash.2edf1b1b170c3b7070792e30920d7117c408892d9e67e1b55af36c7bd2d92ed8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":63,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":79,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":92,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":122,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":129,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":158,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":63,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":79,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":92,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":122,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":129,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":158,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":63,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":79,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":92,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":122,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":129,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":158,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":63,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":79,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":92,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":122,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":129,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":158,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2ee0371b4ccbeb5e4c1aa959cec34cccb362e1a474cb6a3affa1fa99934372b7.json b/site/.cache/twoslash.2ee0371b4ccbeb5e4c1aa959cec34cccb362e1a474cb6a3affa1fa99934372b7.json index 10c61d5c3f..4fdec93948 100644 --- a/site/.cache/twoslash.2ee0371b4ccbeb5e4c1aa959cec34cccb362e1a474cb6a3affa1fa99934372b7.json +++ b/site/.cache/twoslash.2ee0371b4ccbeb5e4c1aa959cec34cccb362e1a474cb6a3affa1fa99934372b7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":99,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":105,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":142,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":164,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":177,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":216,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":225,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":249,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":349,\"length\":0,\"text\":\"{\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":350,\"length\":0,\"text\":\" chainId: 1,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":351,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":352,\"length\":0,\"text\":\" nonce: 1,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":353,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":354,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":355,\"length\":0,\"text\":\" yParity: 0,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":356,\"length\":0,\"text\":\"}\",\"line\":16,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":363,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":376,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n ...;\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":389,\"length\":15,\"target\":\"sendTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":409,\"length\":17,\"target\":\"authorizationList\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":429,\"length\":13,\"target\":\"authorization\",\"line\":18,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":447,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":469,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":473,\"length\":3,\"target\":\"eoa\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":477,\"length\":7,\"target\":\"address\",\"line\":20,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1347,1358],[1323,1346],[1238,1322],[1153,1237],[1131,1152],[1056,1130],[1032,1055],[1020,1031],[0,671]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":1020,\"end\":1031},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":1032,\"end\":1055},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1056,\"end\":1130},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":1131,\"end\":1152},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1153,\"end\":1237},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1238,\"end\":1322},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1323,\"end\":1346},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1347,\"end\":1358}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":99,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":105,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":142,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":164,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":177,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":216,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":225,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":249,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":363,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":376,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n ...;\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":389,\"length\":15,\"target\":\"sendTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":409,\"length\":17,\"target\":\"authorizationList\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":429,\"length\":13,\"target\":\"authorization\",\"line\":18,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":447,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":469,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":473,\"length\":3,\"target\":\"eoa\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":477,\"length\":7,\"target\":\"address\",\"line\":20,\"character\":10}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":349,\"length\":0,\"text\":\"{\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":350,\"length\":0,\"text\":\" chainId: 1,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":351,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":352,\"length\":0,\"text\":\" nonce: 1,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":353,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":354,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":355,\"length\":0,\"text\":\" yParity: 0,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":356,\"length\":0,\"text\":\"}\",\"line\":16,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":99,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":105,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":142,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":164,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":177,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":216,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":225,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":249,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":349,\"length\":0,\"text\":\"{\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":350,\"length\":0,\"text\":\" chainId: 1,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":351,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":352,\"length\":0,\"text\":\" nonce: 1,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":353,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":354,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":355,\"length\":0,\"text\":\" yParity: 0,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":356,\"length\":0,\"text\":\"}\",\"line\":16,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":363,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":376,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":389,\"length\":15,\"target\":\"sendTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":409,\"length\":17,\"target\":\"authorizationList\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":429,\"length\":13,\"target\":\"authorization\",\"line\":18,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":447,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":469,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":473,\"length\":3,\"target\":\"eoa\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":477,\"length\":7,\"target\":\"address\",\"line\":20,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1347,1358],[1323,1346],[1238,1322],[1153,1237],[1131,1152],[1056,1130],[1032,1055],[1020,1031],[0,671]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":1020,\"end\":1031},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":1032,\"end\":1055},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1056,\"end\":1130},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":1131,\"end\":1152},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1153,\"end\":1237},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1238,\"end\":1322},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1323,\"end\":1346},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1347,\"end\":1358}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":99,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":105,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":142,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":164,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":177,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":216,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":225,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":249,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":363,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":376,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":389,\"length\":15,\"target\":\"sendTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":409,\"length\":17,\"target\":\"authorizationList\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":429,\"length\":13,\"target\":\"authorization\",\"line\":18,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":447,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":469,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":473,\"length\":3,\"target\":\"eoa\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":477,\"length\":7,\"target\":\"address\",\"line\":20,\"character\":10}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":349,\"length\":0,\"text\":\"{\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":350,\"length\":0,\"text\":\" chainId: 1,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":351,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":352,\"length\":0,\"text\":\" nonce: 1,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":353,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":354,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":355,\"length\":0,\"text\":\" yParity: 0,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":356,\"length\":0,\"text\":\"}\",\"line\":16,\"character\":0}]}}" diff --git a/site/.cache/twoslash.2f2340e559d3b70400b267819aa8dbf82a785e43300df49dfe1d3ee5391112bd.json b/site/.cache/twoslash.2f2340e559d3b70400b267819aa8dbf82a785e43300df49dfe1d3ee5391112bd.json deleted file mode 100644 index eb65d183e0..0000000000 --- a/site/.cache/twoslash.2f2340e559d3b70400b267819aa8dbf82a785e43300df49dfe1d3ee5391112bd.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,646]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.2fd28d76a0119045bce2b1273f63ad563588dfab1347fb529bfc413f6127ff97.json b/site/.cache/twoslash.2fd28d76a0119045bce2b1273f63ad563588dfab1347fb529bfc413f6127ff97.json deleted file mode 100644 index c486245876..0000000000 --- a/site/.cache/twoslash.2fd28d76a0119045bce2b1273f63ad563588dfab1347fb529bfc413f6127ff97.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for async WebSocket requests. Default: 10_000\",\"start\":74,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for async WebSocket requests. Default: 10_000\",\"start\":74,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.300cb71496d833efcb94f7da2e38572521980e3f83383feef7383597bbf1a03a.json b/site/.cache/twoslash.300cb71496d833efcb94f7da2e38572521980e3f83383feef7383597bbf1a03a.json index ac97320620..cdcbf39dec 100644 --- a/site/.cache/twoslash.300cb71496d833efcb94f7da2e38572521980e3f83383feef7383597bbf1a03a.json +++ b/site/.cache/twoslash.300cb71496d833efcb94f7da2e38572521980e3f83383feef7383597bbf1a03a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses()\\n\\nconst hash = await client.sendTransaction({ // [!code focus:10]\\n account: address,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":146,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":157,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":168,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":175,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":182,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":204,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":221,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":228,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":250,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":263,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":270,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":310,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":319,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":330,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":382,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":389,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses()\\n\\nconst hash = await client.sendTransaction({ // [!code focus:10]\\n account: address,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":146,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":157,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":168,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":175,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":182,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":204,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":221,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":228,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":250,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":263,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":270,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":310,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":319,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":330,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":382,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":389,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses()\\n\\nconst hash = await client.sendTransaction({ // [!code focus:10]\\n account: address,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":146,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":157,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":168,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":175,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":182,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":204,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":221,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":228,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":250,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":263,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":270,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":310,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":319,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":330,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":382,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":389,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses()\\n\\nconst hash = await client.sendTransaction({ // [!code focus:10]\\n account: address,\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":37,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":71,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":107,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":116,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":139,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":146,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":157,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":168,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":175,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":182,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":204,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":221,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":228,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":250,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":263,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":270,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":310,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":319,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":330,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":382,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":389,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3069f4c9dd952de4b68182c24b70e428962300024d1ebebc5c2bc880566146e7.json b/site/.cache/twoslash.3069f4c9dd952de4b68182c24b70e428962300024d1ebebc5c2bc880566146e7.json index 5a17c7ee07..b674d512fa 100644 --- a/site/.cache/twoslash.3069f4c9dd952de4b68182c24b70e428962300024d1ebebc5c2bc880566146e7.json +++ b/site/.cache/twoslash.3069f4c9dd952de4b68182c24b70e428962300024d1ebebc5c2bc880566146e7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":129,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":143,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":167,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":201,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":273,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":286,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":304,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":318,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":344,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":360,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":390,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":406,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":420,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":446,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":458,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":484,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":534,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":557,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":572,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":586,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":605,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":670,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":682,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":701,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":766,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":129,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":143,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":167,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":201,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":273,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":286,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":304,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":318,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":344,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":360,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":390,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":406,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":420,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":446,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":458,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":484,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":534,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":557,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":572,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":586,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":605,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":670,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":682,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":701,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":766,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":129,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":143,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":167,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":201,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":273,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":286,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":304,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":318,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":344,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":360,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":390,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":406,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":420,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":446,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":458,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":484,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":534,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":557,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":572,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":586,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":605,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":670,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":682,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":701,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":766,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":129,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":143,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":167,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":201,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":273,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":286,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":304,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":318,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":344,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":360,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":390,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":406,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":420,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":446,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":458,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":484,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":534,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":557,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":572,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":586,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":605,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":670,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":682,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":701,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":766,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.31056713face5b64a641f57f30cf4df12d96fc2e5b2aba0adc6d648e3c33809b.json b/site/.cache/twoslash.31056713face5b64a641f57f30cf4df12d96fc2e5b2aba0adc6d648e3c33809b.json index 48fb2eee60..f5648f977d 100644 --- a/site/.cache/twoslash.31056713face5b64a641f57f30cf4df12d96fc2e5b2aba0adc6d648e3c33809b.json +++ b/site/.cache/twoslash.31056713face5b64a641f57f30cf4df12d96fc2e5b2aba0adc6d648e3c33809b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\nimport { abi, address } from './contract'\\n\\n// Allowance slot: A 32 bytes hex string representing the allowance slot of the sender.\\nconst allowanceSlot = '0x....'\\n\\n// Max allowance: A 32 bytes hex string representing the maximum allowance (2^256 - 1)\\nconst maxAllowance = numberToHex(maxUint256)\\n\\nconst { result } = await publicClient.simulateContract({\\n abi,\\n address,\\n account,\\n functionName: 'transferFrom',\\n args: [\\n '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n account.address, \\n 69420n\\n ],\\n stateOverride: [ // [!code hl]\\n { // [!code hl]\\n // modifying the state of the token contract // [!code hl]\\n address, // [!code hl]\\n stateDiff: [ // [!code hl]\\n { // [!code hl]\\n slot: allowanceSlot, // [!code hl]\\n value: maxAllowance, // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n})\\n\\nconsole.log(result)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\\nimport abi\",\"start\":58,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\"\\nimport address\",\"start\":63,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":186,\"length\":13,\"target\":\"allowanceSlot\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":305,\"length\":12,\"target\":\"maxAllowance\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":320,\"length\":11,\"target\":\"numberToHex\",\"line\":7,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":332,\"length\":10,\"target\":\"maxUint256\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":353,\"length\":6,\"target\":\"result\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":370,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters<...>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":383,\"length\":16,\"target\":\"simulateContract\",\"line\":9,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\",\"start\":404,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":411,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | null | undefined\",\"start\":422,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"transferFrom\\\"\",\"start\":433,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [\\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\", `0x${string}`, bigint]\",\"start\":465,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":528,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":536,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) stateOverride: {\\n address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\";\\n stateDiff: {\\n slot: \\\"0x....\\\";\\n value: any;\\n }[];\\n}[]\",\"start\":564,\"length\":13,\"target\":\"stateOverride\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":686,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stateDiff?: StateMapping | undefined\",\"docs\":\"Fake key-value mapping to override individual slots in the account storage before executing the call.\",\"start\":715,\"length\":9,\"target\":\"stateDiff\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) slot: `0x${string}`\",\"start\":776,\"length\":4,\"target\":\"slot\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":782,\"length\":13,\"target\":\"allowanceSlot\",\"line\":25,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) value: `0x${string}`\",\"start\":821,\"length\":5,\"target\":\"value\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":828,\"length\":12,\"target\":\"maxAllowance\",\"line\":26,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":948,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":956,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":960,\"length\":6,\"target\":\"result\",\"line\":33,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":968,\"length\":0,\"text\":\"Output: true\",\"line\":35,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1824,1846],[0,856]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: true\",\"start\":1824,\"end\":1846}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":315,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\\n\\nexport const abi = [\\n {\\n type: 'function',\\n name: 'transferFrom',\\n stateMutability: 'nonpayable',\\n inputs: [\\n {\\n name: 'sender',\\n type: 'address',\\n },\\n {\\n name: 'recipient',\\n type: 'address',\\n },\\n {\\n name: 'amount',\\n type: 'uint256',\\n },\\n ],\\n outputs: [\\n {\\n type: 'bool',\\n },\\n ],\\n },\\n] as const\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":817,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\nimport { abi, address } from './contract'\\n\\n// Allowance slot: A 32 bytes hex string representing the allowance slot of the sender.\\nconst allowanceSlot = '0x....'\\n\\n// Max allowance: A 32 bytes hex string representing the maximum allowance (2^256 - 1)\\nconst maxAllowance = numberToHex(maxUint256)\\n\\nconst { result } = await publicClient.simulateContract({\\n abi,\\n address,\\n account,\\n functionName: 'transferFrom',\\n args: [\\n '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n account.address, \\n 69420n\\n ],\\n stateOverride: [ // [!code hl]\\n { // [!code hl]\\n // modifying the state of the token contract // [!code hl]\\n address, // [!code hl]\\n stateDiff: [ // [!code hl]\\n { // [!code hl]\\n slot: allowanceSlot, // [!code hl]\\n value: maxAllowance, // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n})\\n\\nconsole.log(result)\\n// @log: Output: true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\\nimport abi\",\"start\":58,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\"\\nimport address\",\"start\":63,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":186,\"length\":13,\"target\":\"allowanceSlot\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":305,\"length\":12,\"target\":\"maxAllowance\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":320,\"length\":11,\"target\":\"numberToHex\",\"line\":7,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":332,\"length\":10,\"target\":\"maxUint256\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":353,\"length\":6,\"target\":\"result\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":370,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters<...>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":383,\"length\":16,\"target\":\"simulateContract\",\"line\":9,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\",\"start\":404,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":411,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | null | undefined\",\"start\":422,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"transferFrom\\\"\",\"start\":433,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [\\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\", `0x${string}`, bigint]\",\"start\":465,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":528,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":536,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) stateOverride: {\\n address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\";\\n stateDiff: {\\n slot: \\\"0x....\\\";\\n value: any;\\n }[];\\n}[]\",\"start\":564,\"length\":13,\"target\":\"stateOverride\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":686,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stateDiff?: StateMapping | undefined\",\"docs\":\"Fake key-value mapping to override individual slots in the account storage before executing the call.\",\"start\":715,\"length\":9,\"target\":\"stateDiff\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) slot: `0x${string}`\",\"start\":776,\"length\":4,\"target\":\"slot\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":782,\"length\":13,\"target\":\"allowanceSlot\",\"line\":25,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) value: `0x${string}`\",\"start\":821,\"length\":5,\"target\":\"value\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":828,\"length\":12,\"target\":\"maxAllowance\",\"line\":26,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":948,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":956,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":960,\"length\":6,\"target\":\"result\",\"line\":33,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":968,\"length\":0,\"text\":\"Output: true\",\"line\":35,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\nimport { abi, address } from './contract'\\n\\n// Allowance slot: A 32 bytes hex string representing the allowance slot of the sender.\\nconst allowanceSlot = '0x....'\\n\\n// Max allowance: A 32 bytes hex string representing the maximum allowance (2^256 - 1)\\nconst maxAllowance = numberToHex(maxUint256)\\n\\nconst { result } = await publicClient.simulateContract({\\n abi,\\n address,\\n account,\\n functionName: 'transferFrom',\\n args: [\\n '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n account.address, \\n 69420n\\n ],\\n stateOverride: [ // [!code hl]\\n { // [!code hl]\\n // modifying the state of the token contract // [!code hl]\\n address, // [!code hl]\\n stateDiff: [ // [!code hl]\\n { // [!code hl]\\n slot: allowanceSlot, // [!code hl]\\n value: maxAllowance, // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n})\\n\\nconsole.log(result)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\\nimport abi\",\"start\":58,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\"\\nimport address\",\"start\":63,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":186,\"length\":13,\"target\":\"allowanceSlot\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":305,\"length\":12,\"target\":\"maxAllowance\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":320,\"length\":11,\"target\":\"numberToHex\",\"line\":7,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":332,\"length\":10,\"target\":\"maxUint256\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":353,\"length\":6,\"target\":\"result\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":370,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters<...>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":383,\"length\":16,\"target\":\"simulateContract\",\"line\":9,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\",\"start\":404,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":411,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | null | undefined\",\"start\":422,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"transferFrom\\\"\",\"start\":433,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [\\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\", `0x${string}`, bigint]\",\"start\":465,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":528,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":536,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) stateOverride: {\\n address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\";\\n stateDiff: {\\n slot: \\\"0x....\\\";\\n value: any;\\n }[];\\n}[]\",\"start\":564,\"length\":13,\"target\":\"stateOverride\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":686,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stateDiff?: StateMapping | undefined\",\"docs\":\"Fake key-value mapping to override individual slots in the account storage before executing the call.\",\"start\":715,\"length\":9,\"target\":\"stateDiff\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) slot: `0x${string}`\",\"start\":776,\"length\":4,\"target\":\"slot\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":782,\"length\":13,\"target\":\"allowanceSlot\",\"line\":25,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) value: `0x${string}`\",\"start\":821,\"length\":5,\"target\":\"value\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":828,\"length\":12,\"target\":\"maxAllowance\",\"line\":26,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":948,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":956,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":960,\"length\":6,\"target\":\"result\",\"line\":33,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":968,\"length\":0,\"text\":\"Output: true\",\"line\":35,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1824,1846],[0,856]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: true\",\"start\":1824,\"end\":1846}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":315,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const address = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'\\n\\nexport const abi = [\\n {\\n type: 'function',\\n name: 'transferFrom',\\n stateMutability: 'nonpayable',\\n inputs: [\\n {\\n name: 'sender',\\n type: 'address',\\n },\\n {\\n name: 'recipient',\\n type: 'address',\\n },\\n {\\n name: 'amount',\\n type: 'uint256',\\n },\\n ],\\n outputs: [\\n {\\n type: 'bool',\\n },\\n ],\\n },\\n] as const\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":817,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\nimport { abi, address } from './contract'\\n\\n// Allowance slot: A 32 bytes hex string representing the allowance slot of the sender.\\nconst allowanceSlot = '0x....'\\n\\n// Max allowance: A 32 bytes hex string representing the maximum allowance (2^256 - 1)\\nconst maxAllowance = numberToHex(maxUint256)\\n\\nconst { result } = await publicClient.simulateContract({\\n abi,\\n address,\\n account,\\n functionName: 'transferFrom',\\n args: [\\n '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', \\n account.address, \\n 69420n\\n ],\\n stateOverride: [ // [!code hl]\\n { // [!code hl]\\n // modifying the state of the token contract // [!code hl]\\n address, // [!code hl]\\n stateDiff: [ // [!code hl]\\n { // [!code hl]\\n slot: allowanceSlot, // [!code hl]\\n value: maxAllowance, // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n }, // [!code hl]\\n ], // [!code hl]\\n})\\n\\nconsole.log(result)\\n// @log: Output: true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\\nimport abi\",\"start\":58,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\"\\nimport address\",\"start\":63,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":186,\"length\":13,\"target\":\"allowanceSlot\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":305,\"length\":12,\"target\":\"maxAllowance\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":320,\"length\":11,\"target\":\"numberToHex\",\"line\":7,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":332,\"length\":10,\"target\":\"maxUint256\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":353,\"length\":6,\"target\":\"result\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":370,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters<...>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":383,\"length\":16,\"target\":\"simulateContract\",\"line\":9,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"transferFrom\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"sender\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n readonly name: \\\"recipient\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n readonly outputs: readonly [...];\\n}]\",\"start\":404,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":411,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | null | undefined\",\"start\":422,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"transferFrom\\\"\",\"start\":433,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [\\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\", `0x${string}`, bigint]\",\"start\":465,\"length\":4,\"target\":\"args\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":528,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":536,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) stateOverride: {\\n address: \\\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\\\";\\n stateDiff: {\\n slot: \\\"0x....\\\";\\n value: any;\\n }[];\\n}[]\",\"start\":564,\"length\":13,\"target\":\"stateOverride\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":686,\"length\":7,\"target\":\"address\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stateDiff?: StateMapping | undefined\",\"docs\":\"Fake key-value mapping to override individual slots in the account storage before executing the call.\",\"start\":715,\"length\":9,\"target\":\"stateDiff\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) slot: `0x${string}`\",\"start\":776,\"length\":4,\"target\":\"slot\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"const allowanceSlot: \\\"0x....\\\"\",\"start\":782,\"length\":13,\"target\":\"allowanceSlot\",\"line\":25,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) value: `0x${string}`\",\"start\":821,\"length\":5,\"target\":\"value\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"const maxAllowance: any\",\"start\":828,\"length\":12,\"target\":\"maxAllowance\",\"line\":26,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":948,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":956,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":960,\"length\":6,\"target\":\"result\",\"line\":33,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":968,\"length\":0,\"text\":\"Output: true\",\"line\":35,\"character\":0}]}}" diff --git a/site/.cache/twoslash.31291b42e6041afd7fc57a905d1f01a05a4a8fc5abb7797c0a79f84a56b9960e.json b/site/.cache/twoslash.31291b42e6041afd7fc57a905d1f01a05a4a8fc5abb7797c0a79f84a56b9960e.json index aa2ced4ceb..c92ca964ca 100644 --- a/site/.cache/twoslash.31291b42e6041afd7fc57a905d1f01a05a4a8fc5abb7797c0a79f84a56b9960e.json +++ b/site/.cache/twoslash.31291b42e6041afd7fc57a905d1f01a05a4a8fc5abb7797c0a79f84a56b9960e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":180,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":190,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":180,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":190,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":180,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":190,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":180,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":190,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":226,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.312e86aa13be0f857761c894cd2a2606ab6bd32b3329b416c676751b804ebd00.json b/site/.cache/twoslash.312e86aa13be0f857761c894cd2a2606ab6bd32b3329b416c676751b804ebd00.json new file mode 100644 index 0000000000..501b6d25fa --- /dev/null +++ b/site/.cache/twoslash.312e86aa13be0f857761c894cd2a2606ab6bd32b3329b416c676751b804ebd00.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ // [!code focus]\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256' // [!code focus]\\n }], // [!code focus]\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":128,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":224,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":279,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ // [!code focus]\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256' // [!code focus]\\n }], // [!code focus]\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":128,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":224,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":279,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.318ecf30553ce9d0f842b925f3fee8ce24602094f982550773789c1c96aec9e2.json b/site/.cache/twoslash.318ecf30553ce9d0f842b925f3fee8ce24602094f982550773789c1c96aec9e2.json index 11adfbaa56..5f2991c096 100644 --- a/site/.cache/twoslash.318ecf30553ce9d0f842b925f3fee8ce24602094f982550773789c1c96aec9e2.json +++ b/site/.cache/twoslash.318ecf30553ce9d0f842b925f3fee8ce24602094f982550773789c1c96aec9e2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":95,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":113,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":126,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":155,\"length\":6,\"target\":\"domain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":165,\"length\":5,\"target\":\"types\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":174,\"length\":11,\"target\":\"primaryType\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":197,\"length\":7,\"target\":\"message\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":212,\"length\":4,\"target\":\"from\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":226,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":245,\"length\":6,\"target\":\"wallet\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":322,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":341,\"length\":6,\"target\":\"wallet\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":406,\"length\":8,\"target\":\"contents\",\"line\":17,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":95,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":113,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":126,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":155,\"length\":6,\"target\":\"domain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":165,\"length\":5,\"target\":\"types\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":174,\"length\":11,\"target\":\"primaryType\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":197,\"length\":7,\"target\":\"message\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":212,\"length\":4,\"target\":\"from\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":226,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":245,\"length\":6,\"target\":\"wallet\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":322,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":341,\"length\":6,\"target\":\"wallet\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":406,\"length\":8,\"target\":\"contents\",\"line\":17,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":95,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":113,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":126,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":155,\"length\":6,\"target\":\"domain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":165,\"length\":5,\"target\":\"types\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":174,\"length\":11,\"target\":\"primaryType\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":197,\"length\":7,\"target\":\"message\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":212,\"length\":4,\"target\":\"from\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":226,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":245,\"length\":6,\"target\":\"wallet\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":322,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":341,\"length\":6,\"target\":\"wallet\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":406,\"length\":8,\"target\":\"contents\",\"line\":17,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":95,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":113,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (args: SignTypedDataParameters) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":126,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":144,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":155,\"length\":6,\"target\":\"domain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":165,\"length\":5,\"target\":\"types\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":174,\"length\":11,\"target\":\"primaryType\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":197,\"length\":7,\"target\":\"message\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":212,\"length\":4,\"target\":\"from\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":226,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":245,\"length\":6,\"target\":\"wallet\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":322,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":341,\"length\":6,\"target\":\"wallet\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":406,\"length\":8,\"target\":\"contents\",\"line\":17,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.319eaf3518f2285115d4a9abe46af4596a63329cdfb3ac85cc73f8aa0354c507.json b/site/.cache/twoslash.319eaf3518f2285115d4a9abe46af4596a63329cdfb3ac85cc73f8aa0354c507.json new file mode 100644 index 0000000000..4a8278f7fd --- /dev/null +++ b/site/.cache/twoslash.319eaf3518f2285115d4a9abe46af4596a63329cdfb3ac85cc73f8aa0354c507.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":150,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":163,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":176,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":207,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":227,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":262,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":284,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":288,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,289]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":150,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":163,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":176,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":207,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":227,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":262,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":284,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":288,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.31d0bd8a8ed9c663569349e98edc78c0d525cfefd2eca84c4c32919328a4eb88.json b/site/.cache/twoslash.31d0bd8a8ed9c663569349e98edc78c0d525cfefd2eca84c4c32919328a4eb88.json index 755d69ebe1..6354d15753 100644 --- a/site/.cache/twoslash.31d0bd8a8ed9c663569349e98edc78c0d525cfefd2eca84c4c32919328a4eb88.json +++ b/site/.cache/twoslash.31d0bd8a8ed9c663569349e98edc78c0d525cfefd2eca84c4c32919328a4eb88.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":150,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":223,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":230,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":316,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":359,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":150,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":223,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":230,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":316,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":359,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":150,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":223,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":230,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":316,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":359,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":150,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":223,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":230,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":316,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":359,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.31f4054e7ac67424ca8a7e9d9a5d9a3ca212245af488e0138059be90aec58eea.json b/site/.cache/twoslash.31f4054e7ac67424ca8a7e9d9a5d9a3ca212245af488e0138059be90aec58eea.json deleted file mode 100644 index 0f0928745b..0000000000 --- a/site/.cache/twoslash.31f4054e7ac67424ca8a7e9d9a5d9a3ca212245af488e0138059be90aec58eea.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1123,1134],[1099,1122],[1024,1098],[999,1023],[987,998],[0,781]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":987,\"end\":998},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":999,\"end\":1023},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1024,\"end\":1098},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":1099,\"end\":1122},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1123,\"end\":1134}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0}]}}" diff --git a/site/.cache/twoslash.3234e3257e2531aef5743c87cdf0ad2213b083a2b0492c78ac37aae14f194a2d.json b/site/.cache/twoslash.3234e3257e2531aef5743c87cdf0ad2213b083a2b0492c78ac37aae14f194a2d.json index 1ef3e1c7e5..ed3f23a880 100644 --- a/site/.cache/twoslash.3234e3257e2531aef5743c87cdf0ad2213b083a2b0492c78ac37aae14f194a2d.json +++ b/site/.cache/twoslash.3234e3257e2531aef5743c87cdf0ad2213b083a2b0492c78ac37aae14f194a2d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":247,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":260,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":276,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":292,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":305,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":318,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":339,\"length\":21,\"target\":\"serializedTransaction\",\"line\":10,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,463]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":318,\"end\":346},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":398,\"end\":423}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":424,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":247,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":260,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":276,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":292,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":305,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":318,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":339,\"length\":21,\"target\":\"serializedTransaction\",\"line\":10,\"character\":53}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":247,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":260,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":276,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":292,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":305,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":318,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":339,\"length\":21,\"target\":\"serializedTransaction\",\"line\":10,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,463]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":318,\"end\":346},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":398,\"end\":423}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":424,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":247,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":260,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":276,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":292,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":305,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":318,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":339,\"length\":21,\"target\":\"serializedTransaction\",\"line\":10,\"character\":53}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3278a69b8ba0eaeb965ca38ab4ab194c21f538763019e0a4ab1c0727c09122a6.json b/site/.cache/twoslash.3278a69b8ba0eaeb965ca38ab4ab194c21f538763019e0a4ab1c0727c09122a6.json deleted file mode 100644 index 93c9d20d75..0000000000 --- a/site/.cache/twoslash.3278a69b8ba0eaeb965ca38ab4ab194c21f538763019e0a4ab1c0727c09122a6.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":267,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":267,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.330caebff18ae523bdd6dea84b48f5a9934ec63c4f595752a906de74a573e3e6.json b/site/.cache/twoslash.330caebff18ae523bdd6dea84b48f5a9934ec63c4f595752a906de74a573e3e6.json index 5bcfde5c3d..8db91cff31 100644 --- a/site/.cache/twoslash.330caebff18ae523bdd6dea84b48f5a9934ec63c4f595752a906de74a573e3e6.json +++ b/site/.cache/twoslash.330caebff18ae523bdd6dea84b48f5a9934ec63c4f595752a906de74a573e3e6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497',\\n factoryData: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":155,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497',\\n factoryData: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":155,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497',\\n factoryData: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":155,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497',\\n factoryData: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":155,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3347f7d972237a81841818f74acc29fab5309a110aeaa4509647eabe0e04c102.json b/site/.cache/twoslash.3347f7d972237a81841818f74acc29fab5309a110aeaa4509647eabe0e04c102.json index c95124e632..f8550be0d3 100644 --- a/site/.cache/twoslash.3347f7d972237a81841818f74acc29fab5309a110aeaa4509647eabe0e04c102.json +++ b/site/.cache/twoslash.3347f7d972237a81841818f74acc29fab5309a110aeaa4509647eabe0e04c102.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc') // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":172,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":188,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":212,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":219,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":230,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":277,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":288,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,212]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { client } from './config'\\n// ---cut---\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc') // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":172,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":188,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":212,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":219,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":230,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":277,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":288,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc') // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":172,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":188,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":212,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":219,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":230,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":277,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":288,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,212]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { client } from './config'\\n// ---cut---\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc') // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":172,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":188,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":212,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":219,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":230,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":277,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":288,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.349973afb4ed464f68062164ab742c2275614780d44a7fe673e7d2880f7ef65c.json b/site/.cache/twoslash.349973afb4ed464f68062164ab742c2275614780d44a7fe673e7d2880f7ef65c.json new file mode 100644 index 0000000000..8b9bd127b9 --- /dev/null +++ b/site/.cache/twoslash.349973afb4ed464f68062164ab742c2275614780d44a7fe673e7d2880f7ef65c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseErc6492Signature } from 'viem/utils'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":9,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}` | undefined\",\"docs\":\"The ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const data: `0x${string}` | undefined\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":101,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":116,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":6,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { parseErc6492Signature } from 'viem/utils'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":9,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}` | undefined\",\"docs\":\"The ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const data: `0x${string}` | undefined\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":101,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":116,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":6,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.35254010f85e9215cc172e08322a2348906c8005fbd6b80ce12e416db2db651f.json b/site/.cache/twoslash.35254010f85e9215cc172e08322a2348906c8005fbd6b80ce12e416db2db651f.json index 6a657a331b..ca19ca1a18 100644 --- a/site/.cache/twoslash.35254010f85e9215cc172e08322a2348906c8005fbd6b80ce12e416db2db651f.json +++ b/site/.cache/twoslash.35254010f85e9215cc172e08322a2348906c8005fbd6b80ce12e416db2db651f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.358f8f7ef73210be034664d6012292cf9b3b203bea4e2dee587807e230356c25.json b/site/.cache/twoslash.358f8f7ef73210be034664d6012292cf9b3b203bea4e2dee587807e230356c25.json index 09106c2f4c..c8d30bb439 100644 --- a/site/.cache/twoslash.358f8f7ef73210be034664d6012292cf9b3b203bea4e2dee587807e230356c25.json +++ b/site/.cache/twoslash.358f8f7ef73210be034664d6012292cf9b3b203bea4e2dee587807e230356c25.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n account,\\n message: 'hello world',\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":126,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":137,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":164,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":171,\"length\":11,\"target\":\"signature_2\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":191,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":204,\"length\":11,\"target\":\"signMessage\",\"line\":7,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":220,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":272,\"length\":7,\"target\":\"message\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":283,\"length\":3,\"target\":\"raw\",\"line\":10,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":321,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[750,902],[441,593],[0,277]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":441,\"end\":593},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":750,\"end\":902}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n account,\\n message: 'hello world',\\n})\\n// @log: Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\\n\\nconst signature_2 = await walletClient.signMessage({\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n})\\n// @log: Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":126,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":137,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":171,\"length\":11,\"target\":\"signature_2\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":191,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":204,\"length\":11,\"target\":\"signMessage\",\"line\":7,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":220,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":272,\"length\":7,\"target\":\"message\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":283,\"length\":3,\"target\":\"raw\",\"line\":10,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":164,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":321,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":13,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n account,\\n message: 'hello world',\\n})\\n\\nconst signature_2 = await walletClient.signMessage({\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":126,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":137,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":164,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":171,\"length\":11,\"target\":\"signature_2\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":191,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":204,\"length\":11,\"target\":\"signMessage\",\"line\":7,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":220,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":272,\"length\":7,\"target\":\"message\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":283,\"length\":3,\"target\":\"raw\",\"line\":10,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":321,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[750,902],[441,593],[0,277]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":441,\"end\":593},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"start\":750,\"end\":902}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst signature_1 = await walletClient.signMessage({ // [!code focus:99]\\n account,\\n message: 'hello world',\\n})\\n// @log: Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\\n\\nconst signature_2 = await walletClient.signMessage({\\n account,\\n // Hex data representation of message.\\n message: { raw: '0x68656c6c6f20776f726c64' },\\n})\\n// @log: Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const signature_1: `0x${string}`\",\"start\":57,\"length\":11,\"target\":\"signature_1\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":90,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":126,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":137,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature_2: `0x${string}`\",\"start\":171,\"length\":11,\"target\":\"signature_2\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":191,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":204,\"length\":11,\"target\":\"signMessage\",\"line\":7,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":220,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":272,\"length\":7,\"target\":\"message\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":283,\"length\":3,\"target\":\"raw\",\"line\":10,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":164,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":321,\"length\":0,\"text\":\"Output: \\\"0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b\\\"\",\"line\":13,\"character\":0}]}}" diff --git a/site/.cache/twoslash.35d10f58cb8c3bd10e9d2b4aad8c0609bedb4ad3afa270d227eaa1a982d5683b.json b/site/.cache/twoslash.35d10f58cb8c3bd10e9d2b4aad8c0609bedb4ad3afa270d227eaa1a982d5683b.json deleted file mode 100644 index c12be60492..0000000000 --- a/site/.cache/twoslash.35d10f58cb8c3bd10e9d2b4aad8c0609bedb4ad3afa270d227eaa1a982d5683b.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"bytes\\\">(parameters: HashAuthorizationParameters<\\\"bytes\\\">): ByteArray\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to?: To | undefined\",\"docs\":\"Output format.\",\"tags\":[[\"default\",\"\\\"hex\\\"\"]],\"start\":169,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, \\n to: 'bytes', // [!code focus]\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"bytes\\\">(parameters: HashAuthorizationParameters<\\\"bytes\\\">): ByteArray\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to?: To | undefined\",\"docs\":\"Output format.\",\"tags\":[[\"default\",\"\\\"hex\\\"\"]],\"start\":169,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.35f0ac1d1c1f620c709d6ba6dd14cdae1dd991555398cdeb5e1659bf65233bf1.json b/site/.cache/twoslash.35f0ac1d1c1f620c709d6ba6dd14cdae1dd991555398cdeb5e1659bf65233bf1.json index 99aecfdf17..b54f9c0bef 100644 --- a/site/.cache/twoslash.35f0ac1d1c1f620c709d6ba6dd14cdae1dd991555398cdeb5e1659bf65233bf1.json +++ b/site/.cache/twoslash.35f0ac1d1c1f620c709d6ba6dd14cdae1dd991555398cdeb5e1659bf65233bf1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient, publicClient } from './client'\\nimport { domain, types } from './data'\\n\\nconst message = {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n}\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyTypedData({\\n address: account.address,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n signature,\\n})\\n// true\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(alias) const domain: {\\n readonly name: \\\"Ether Mail\\\";\\n readonly version: \\\"1\\\";\\n readonly chainId: 1;\\n readonly verifyingContract: \\\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\\\";\\n}\\nimport domain\",\"start\":72,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\\nimport types\",\"start\":80,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const message: {\\n from: {\\n name: string;\\n wallet: string;\\n };\\n to: {\\n name: string;\\n wallet: string;\\n };\\n contents: string;\\n}\",\"start\":109,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":123,\"length\":4,\"target\":\"from\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":135,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":152,\"length\":6,\"target\":\"wallet\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":223,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":240,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":301,\"length\":8,\"target\":\"contents\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":335,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":353,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":366,\"length\":13,\"target\":\"signTypedData\",\"line\":15,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":384,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":395,\"length\":6,\"target\":\"domain\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":405,\"length\":5,\"target\":\"types\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":414,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":437,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":475,\"length\":5,\"target\":\"valid\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":489,\"length\":12,\"target\":\"publicClient\",\"line\":23,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyTypedData: (args: VerifyTypedDataParameters) => Promise\",\"docs\":\"Verify that typed data was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyTypedData\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyTypedDataParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\"]],\"start\":502,\"length\":15,\"target\":\"verifyTypedData\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\\n\\n\\nThe address to verify the typed data for.\",\"start\":522,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":531,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":539,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":550,\"length\":6,\"target\":\"domain\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n [x: string]: readonly TypedDataParameter[];\\n [x: `string[${string}]`]: undefined;\\n [x: `function[${string}]`]: undefined;\\n [x: `address[${string}]`]: undefined;\\n [x: `bool[${string}]`]: undefined;\\n [x: `bytes[${string}]`]: undefined;\\n [x: `bytes1[${string}]`]: undefined;\\n [x: `bytes2[${string}]`]: undefined;\\n [x: `bytes23[${string}]`]: undefined;\\n [x: `bytes6[${string}]`]: undefined;\\n [x: `bytes3[${string}]`]: undefined;\\n [x: `bytes4[${string}]`]: undefined;\\n [x: `bytes5[${string}]`]: undefined;\\n [x: `bytes7[${string}]`]: undefined;\\n [x: `bytes8[${string}]`]: undefined;\\n [x: `bytes9[${string}]`]: undefined;\\n [x: `bytes10[${string}]`]: undefined;\\n [x: `bytes11[${string}]`]: undefined;\\n [x: `bytes12[${string}]`]: undefined;\\n [x: `bytes13[${string}]`]: undefined;\\n [x: `bytes14[${string}]`]: undefined;\\n [x: `bytes15[${string}]`]: undefined;\\n [x: `bytes16[${string}]`]: undefined;\\n [x: `bytes17[${string}]`]: undefined;\\n [x: `bytes18[${string}]`]: undefined;\\n [x: `bytes19[${string}]`]: undefined;\\n [x: `bytes20[${string}]`]: undefined;\\n [x: `bytes21[${string}]`]: undefined;\\n [x: `bytes22[${string}]`]: undefined;\\n [x: `bytes24[${string}]`]: undefined;\\n [x: `bytes25[${string}]`]: undefined;\\n [x: `bytes26[${string}]`]: undefined;\\n [x: `bytes27[${string}]`]: undefined;\\n [x: `bytes28[${string}]`]: undefined;\\n [x: `bytes29[${string}]`]: undefined;\\n [x: `bytes30[${string}]`]: undefined;\\n [x: `bytes31[${string}]`]: undefined;\\n [x: `bytes32[${string}]`]: undefined;\\n [x: `int[${ ...\",\"start\":560,\"length\":5,\"target\":\"types\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: string\",\"start\":569,\"length\":11,\"target\":\"primaryType\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: Record\",\"start\":592,\"length\":7,\"target\":\"message\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\\n\\n\\nThe signature to verify\",\"start\":603,\"length\":9,\"target\":\"signature\",\"line\":29,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1083]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"data.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/data.ts\",\"content\":\"// @filename: data.ts\\n\\n// All properties on a domain are optional\\nexport const domain = {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n} as const\\n\\n// The named list of all type definitions\\nexport const types = {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n} as const\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1044,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient, publicClient } from './client'\\nimport { domain, types } from './data'\\n\\nconst message = {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n}\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyTypedData({\\n address: account.address,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n signature,\\n})\\n// true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(alias) const domain: {\\n readonly name: \\\"Ether Mail\\\";\\n readonly version: \\\"1\\\";\\n readonly chainId: 1;\\n readonly verifyingContract: \\\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\\\";\\n}\\nimport domain\",\"start\":72,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\\nimport types\",\"start\":80,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const message: {\\n from: {\\n name: string;\\n wallet: string;\\n };\\n to: {\\n name: string;\\n wallet: string;\\n };\\n contents: string;\\n}\",\"start\":109,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":123,\"length\":4,\"target\":\"from\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":135,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":152,\"length\":6,\"target\":\"wallet\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":223,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":240,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":301,\"length\":8,\"target\":\"contents\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":335,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":353,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":366,\"length\":13,\"target\":\"signTypedData\",\"line\":15,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":384,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":395,\"length\":6,\"target\":\"domain\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":405,\"length\":5,\"target\":\"types\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":414,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":437,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":475,\"length\":5,\"target\":\"valid\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":489,\"length\":12,\"target\":\"publicClient\",\"line\":23,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyTypedData: (args: VerifyTypedDataParameters) => Promise\",\"docs\":\"Verify that typed data was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyTypedData\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyTypedDataParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\"]],\"start\":502,\"length\":15,\"target\":\"verifyTypedData\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\\n\\n\\nThe address to verify the typed data for.\",\"start\":522,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":531,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":539,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":550,\"length\":6,\"target\":\"domain\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n [x: string]: readonly TypedDataParameter[];\\n [x: `string[${string}]`]: undefined;\\n [x: `function[${string}]`]: undefined;\\n [x: `address[${string}]`]: undefined;\\n [x: `bool[${string}]`]: undefined;\\n [x: `bytes[${string}]`]: undefined;\\n [x: `bytes1[${string}]`]: undefined;\\n [x: `bytes2[${string}]`]: undefined;\\n [x: `bytes23[${string}]`]: undefined;\\n [x: `bytes6[${string}]`]: undefined;\\n [x: `bytes3[${string}]`]: undefined;\\n [x: `bytes4[${string}]`]: undefined;\\n [x: `bytes5[${string}]`]: undefined;\\n [x: `bytes7[${string}]`]: undefined;\\n [x: `bytes8[${string}]`]: undefined;\\n [x: `bytes9[${string}]`]: undefined;\\n [x: `bytes10[${string}]`]: undefined;\\n [x: `bytes11[${string}]`]: undefined;\\n [x: `bytes12[${string}]`]: undefined;\\n [x: `bytes13[${string}]`]: undefined;\\n [x: `bytes14[${string}]`]: undefined;\\n [x: `bytes15[${string}]`]: undefined;\\n [x: `bytes16[${string}]`]: undefined;\\n [x: `bytes17[${string}]`]: undefined;\\n [x: `bytes18[${string}]`]: undefined;\\n [x: `bytes19[${string}]`]: undefined;\\n [x: `bytes20[${string}]`]: undefined;\\n [x: `bytes21[${string}]`]: undefined;\\n [x: `bytes22[${string}]`]: undefined;\\n [x: `bytes24[${string}]`]: undefined;\\n [x: `bytes25[${string}]`]: undefined;\\n [x: `bytes26[${string}]`]: undefined;\\n [x: `bytes27[${string}]`]: undefined;\\n [x: `bytes28[${string}]`]: undefined;\\n [x: `bytes29[${string}]`]: undefined;\\n [x: `bytes30[${string}]`]: undefined;\\n [x: `bytes31[${string}]`]: undefined;\\n [x: `bytes32[${string}]`]: undefined;\\n [x: `int[${ ...\",\"start\":560,\"length\":5,\"target\":\"types\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: string\",\"start\":569,\"length\":11,\"target\":\"primaryType\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: Record\",\"start\":592,\"length\":7,\"target\":\"message\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\\n\\n\\nThe signature to verify\",\"start\":603,\"length\":9,\"target\":\"signature\",\"line\":29,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient, publicClient } from './client'\\nimport { domain, types } from './data'\\n\\nconst message = {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n}\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyTypedData({\\n address: account.address,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n signature,\\n})\\n// true\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(alias) const domain: {\\n readonly name: \\\"Ether Mail\\\";\\n readonly version: \\\"1\\\";\\n readonly chainId: 1;\\n readonly verifyingContract: \\\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\\\";\\n}\\nimport domain\",\"start\":72,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\\nimport types\",\"start\":80,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const message: {\\n from: {\\n name: string;\\n wallet: string;\\n };\\n to: {\\n name: string;\\n wallet: string;\\n };\\n contents: string;\\n}\",\"start\":109,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":123,\"length\":4,\"target\":\"from\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":135,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":152,\"length\":6,\"target\":\"wallet\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":223,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":240,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":301,\"length\":8,\"target\":\"contents\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":335,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":353,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":366,\"length\":13,\"target\":\"signTypedData\",\"line\":15,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":384,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":395,\"length\":6,\"target\":\"domain\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":405,\"length\":5,\"target\":\"types\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":414,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":437,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":475,\"length\":5,\"target\":\"valid\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":489,\"length\":12,\"target\":\"publicClient\",\"line\":23,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyTypedData: (args: VerifyTypedDataParameters) => Promise\",\"docs\":\"Verify that typed data was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyTypedData\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyTypedDataParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\"]],\"start\":502,\"length\":15,\"target\":\"verifyTypedData\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\\n\\n\\nThe address to verify the typed data for.\",\"start\":522,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":531,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":539,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":550,\"length\":6,\"target\":\"domain\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n [x: string]: readonly TypedDataParameter[];\\n [x: `string[${string}]`]: undefined;\\n [x: `function[${string}]`]: undefined;\\n [x: `address[${string}]`]: undefined;\\n [x: `bool[${string}]`]: undefined;\\n [x: `bytes[${string}]`]: undefined;\\n [x: `bytes1[${string}]`]: undefined;\\n [x: `bytes2[${string}]`]: undefined;\\n [x: `bytes23[${string}]`]: undefined;\\n [x: `bytes6[${string}]`]: undefined;\\n [x: `bytes3[${string}]`]: undefined;\\n [x: `bytes4[${string}]`]: undefined;\\n [x: `bytes5[${string}]`]: undefined;\\n [x: `bytes7[${string}]`]: undefined;\\n [x: `bytes8[${string}]`]: undefined;\\n [x: `bytes9[${string}]`]: undefined;\\n [x: `bytes10[${string}]`]: undefined;\\n [x: `bytes11[${string}]`]: undefined;\\n [x: `bytes12[${string}]`]: undefined;\\n [x: `bytes13[${string}]`]: undefined;\\n [x: `bytes14[${string}]`]: undefined;\\n [x: `bytes15[${string}]`]: undefined;\\n [x: `bytes16[${string}]`]: undefined;\\n [x: `bytes17[${string}]`]: undefined;\\n [x: `bytes18[${string}]`]: undefined;\\n [x: `bytes19[${string}]`]: undefined;\\n [x: `bytes20[${string}]`]: undefined;\\n [x: `bytes21[${string}]`]: undefined;\\n [x: `bytes22[${string}]`]: undefined;\\n [x: `bytes24[${string}]`]: undefined;\\n [x: `bytes25[${string}]`]: undefined;\\n [x: `bytes26[${string}]`]: undefined;\\n [x: `bytes27[${string}]`]: undefined;\\n [x: `bytes28[${string}]`]: undefined;\\n [x: `bytes29[${string}]`]: undefined;\\n [x: `bytes30[${string}]`]: undefined;\\n [x: `bytes31[${string}]`]: undefined;\\n [x: `bytes32[${string}]`]: undefined;\\n [x: `int[${ ...\",\"start\":560,\"length\":5,\"target\":\"types\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: string\",\"start\":569,\"length\":11,\"target\":\"primaryType\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: Record\",\"start\":592,\"length\":7,\"target\":\"message\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\\n\\n\\nThe signature to verify\",\"start\":603,\"length\":9,\"target\":\"signature\",\"line\":29,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1083]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"data.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/data.ts\",\"content\":\"// @filename: data.ts\\n\\n// All properties on a domain are optional\\nexport const domain = {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n} as const\\n\\n// The named list of all type definitions\\nexport const types = {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n} as const\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1044,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient, publicClient } from './client'\\nimport { domain, types } from './data'\\n\\nconst message = {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n}\\n\\nconst signature = await walletClient.signTypedData({\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyTypedData({\\n address: account.address,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message,\\n signature,\\n})\\n// true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(alias) const domain: {\\n readonly name: \\\"Ether Mail\\\";\\n readonly version: \\\"1\\\";\\n readonly chainId: 1;\\n readonly verifyingContract: \\\"0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC\\\";\\n}\\nimport domain\",\"start\":72,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\\nimport types\",\"start\":80,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const message: {\\n from: {\\n name: string;\\n wallet: string;\\n };\\n to: {\\n name: string;\\n wallet: string;\\n };\\n contents: string;\\n}\",\"start\":109,\"length\":7,\"target\":\"message\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":123,\"length\":4,\"target\":\"from\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":135,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":152,\"length\":6,\"target\":\"wallet\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":223,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":240,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":301,\"length\":8,\"target\":\"contents\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":335,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":353,\"length\":12,\"target\":\"walletClient\",\"line\":15,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":366,\"length\":13,\"target\":\"signTypedData\",\"line\":15,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":384,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":395,\"length\":6,\"target\":\"domain\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":405,\"length\":5,\"target\":\"types\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":414,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":437,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":475,\"length\":5,\"target\":\"valid\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":489,\"length\":12,\"target\":\"publicClient\",\"line\":23,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyTypedData: (args: VerifyTypedDataParameters) => Promise\",\"docs\":\"Verify that typed data was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyTypedData\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyTypedDataParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\"]],\"start\":502,\"length\":15,\"target\":\"verifyTypedData\",\"line\":23,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\\n\\n\\nThe address to verify the typed data for.\",\"start\":522,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":531,\"length\":7,\"target\":\"account\",\"line\":24,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":539,\"length\":7,\"target\":\"address\",\"line\":24,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":550,\"length\":6,\"target\":\"domain\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: {\\n [x: string]: readonly TypedDataParameter[];\\n [x: `string[${string}]`]: undefined;\\n [x: `function[${string}]`]: undefined;\\n [x: `address[${string}]`]: undefined;\\n [x: `bool[${string}]`]: undefined;\\n [x: `bytes[${string}]`]: undefined;\\n [x: `bytes1[${string}]`]: undefined;\\n [x: `bytes2[${string}]`]: undefined;\\n [x: `bytes23[${string}]`]: undefined;\\n [x: `bytes6[${string}]`]: undefined;\\n [x: `bytes3[${string}]`]: undefined;\\n [x: `bytes4[${string}]`]: undefined;\\n [x: `bytes5[${string}]`]: undefined;\\n [x: `bytes7[${string}]`]: undefined;\\n [x: `bytes8[${string}]`]: undefined;\\n [x: `bytes9[${string}]`]: undefined;\\n [x: `bytes10[${string}]`]: undefined;\\n [x: `bytes11[${string}]`]: undefined;\\n [x: `bytes12[${string}]`]: undefined;\\n [x: `bytes13[${string}]`]: undefined;\\n [x: `bytes14[${string}]`]: undefined;\\n [x: `bytes15[${string}]`]: undefined;\\n [x: `bytes16[${string}]`]: undefined;\\n [x: `bytes17[${string}]`]: undefined;\\n [x: `bytes18[${string}]`]: undefined;\\n [x: `bytes19[${string}]`]: undefined;\\n [x: `bytes20[${string}]`]: undefined;\\n [x: `bytes21[${string}]`]: undefined;\\n [x: `bytes22[${string}]`]: undefined;\\n [x: `bytes24[${string}]`]: undefined;\\n [x: `bytes25[${string}]`]: undefined;\\n [x: `bytes26[${string}]`]: undefined;\\n [x: `bytes27[${string}]`]: undefined;\\n [x: `bytes28[${string}]`]: undefined;\\n [x: `bytes29[${string}]`]: undefined;\\n [x: `bytes30[${string}]`]: undefined;\\n [x: `bytes31[${string}]`]: undefined;\\n [x: `bytes32[${string}]`]: undefined;\\n [x: `int[${ ...\",\"start\":560,\"length\":5,\"target\":\"types\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: string\",\"start\":569,\"length\":11,\"target\":\"primaryType\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: Record\",\"start\":592,\"length\":7,\"target\":\"message\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\\n\\n\\nThe signature to verify\",\"start\":603,\"length\":9,\"target\":\"signature\",\"line\":29,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.36a01e2c625c9a70c1fbc2b02f152b66451167595f50d05480b950f28b1304fa.json b/site/.cache/twoslash.36a01e2c625c9a70c1fbc2b02f152b66451167595f50d05480b950f28b1304fa.json deleted file mode 100644 index 42b19ea08c..0000000000 --- a/site/.cache/twoslash.36a01e2c625c9a70c1fbc2b02f152b66451167595f50d05480b950f28b1304fa.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":74,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":74,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.36b0156d7f7eb9c845205e2d6f3b388ab67b0fe4f13f36f41cff0a25f5be65e7.json b/site/.cache/twoslash.36b0156d7f7eb9c845205e2d6f3b388ab67b0fe4f13f36f41cff0a25f5be65e7.json index 7c81d94680..a48df7c492 100644 --- a/site/.cache/twoslash.36b0156d7f7eb9c845205e2d6f3b388ab67b0fe4f13f36f41cff0a25f5be65e7.json +++ b/site/.cache/twoslash.36b0156d7f7eb9c845205e2d6f3b388ab67b0fe4f13f36f41cff0a25f5be65e7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.36f57fc648966be3501f063e0d5ff4846c1cbdef94885fb88bd4551b539f6ef8.json b/site/.cache/twoslash.36f57fc648966be3501f063e0d5ff4846c1cbdef94885fb88bd4551b539f6ef8.json index 3cc3d19dc3..9c0428807a 100644 --- a/site/.cache/twoslash.36f57fc648966be3501f063e0d5ff4846c1cbdef94885fb88bd4551b539f6ef8.json +++ b/site/.cache/twoslash.36f57fc648966be3501f063e0d5ff4846c1cbdef94885fb88bd4551b539f6ef8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n onError: error => console.log(error) // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":93,\"length\":7,\"target\":\"onError\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":102,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":123,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n onError: error => console.log(error) // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":93,\"length\":7,\"target\":\"onError\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":102,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":123,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n onError: error => console.log(error) // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":93,\"length\":7,\"target\":\"onError\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":102,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":123,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n onError: error => console.log(error) // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":93,\"length\":7,\"target\":\"onError\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":102,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":123,\"length\":5,\"target\":\"error\",\"line\":3,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.375a22d8fbca64e074e738931676502936d60e339eb228137835d20f0cd5ff03.json b/site/.cache/twoslash.375a22d8fbca64e074e738931676502936d60e339eb228137835d20f0cd5ff03.json new file mode 100644 index 0000000000..62c46e5c45 --- /dev/null +++ b/site/.cache/twoslash.375a22d8fbca64e074e738931676502936d60e339eb228137835d20f0cd5ff03.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"start\":155,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":186,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":244,\"length\":11,\"target\":\"factoryData\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":273,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"start\":155,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":186,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":244,\"length\":11,\"target\":\"factoryData\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":273,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3816c7f1b8330e973b93eae78df73cfcbe81240e5ab0c68842f30731908d3bb9.json b/site/.cache/twoslash.3816c7f1b8330e973b93eae78df73cfcbe81240e5ab0c68842f30731908d3bb9.json index 16d0e5e3fb..7f71591505 100644 --- a/site/.cache/twoslash.3816c7f1b8330e973b93eae78df73cfcbe81240e5ab0c68842f30731908d3bb9.json +++ b/site/.cache/twoslash.3816c7f1b8330e973b93eae78df73cfcbe81240e5ab0c68842f30731908d3bb9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.38eb32f3de2f5fe3fc13aa4d7391b72e8293e8c4662049fd069232e8482c55d0.json b/site/.cache/twoslash.38eb32f3de2f5fe3fc13aa4d7391b72e8293e8c4662049fd069232e8482c55d0.json new file mode 100644 index 0000000000..7aee03e57b --- /dev/null +++ b/site/.cache/twoslash.38eb32f3de2f5fe3fc13aa4d7391b72e8293e8c4662049fd069232e8482c55d0.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { // [!code focus]\\n account: { // [!code focus]\\n keys: [{ // [!code focus]\\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n type: 'address', // [!code focus]\\n }], // [!code focus]\\n type: 'create', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n }\\n})\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":93,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n} | undefined\",\"start\":113,\"length\":22,\"target\":\"unstable_addSubAccount\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) account: AddSubAccountParameters\",\"start\":162,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":198,\"length\":4,\"target\":\"keys\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":234,\"length\":3,\"target\":\"key\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":312,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":383,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":8},{\"type\":\"tag\",\"name\":\"log\",\"start\":471,\"length\":0,\"text\":\"[{\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":472,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":473,\"length\":0,\"text\":\" capabilities: {\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":474,\"length\":0,\"text\":\" unstable_subAccounts: [{\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":475,\"length\":0,\"text\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":476,\"length\":0,\"text\":\" }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":477,\"length\":0,\"text\":\" },\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":478,\"length\":0,\"text\":\"}]\",\"line\":23,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1093,1105],[1078,1092],[1060,1077],[989,1059],[950,988],[922,949],[855,921],[842,854],[0,371]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[{\",\"start\":842,\"end\":854},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"start\":855,\"end\":921},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" capabilities: {\",\"start\":922,\"end\":949},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" unstable_subAccounts: [{\",\"start\":950,\"end\":988},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"start\":989,\"end\":1059},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }],\",\"start\":1060,\"end\":1077},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1078,\"end\":1092},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}]\",\"start\":1093,\"end\":1105}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_addSubAccount: { // [!code focus]\\n account: { // [!code focus]\\n keys: [{ // [!code focus]\\n key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n type: 'address', // [!code focus]\\n }], // [!code focus]\\n type: 'create', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n }\\n})\\n// @log: [{\\n\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n\\n// @log: capabilities: {\\n\\n// @log: unstable_subAccounts: [{\\n\\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n\\n// @log: }],\\n\\n// @log: },\\n\\n// @log: }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":93,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n} | undefined\",\"start\":113,\"length\":22,\"target\":\"unstable_addSubAccount\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) account: AddSubAccountParameters\",\"start\":162,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":198,\"length\":4,\"target\":\"keys\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":234,\"length\":3,\"target\":\"key\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":312,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":383,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":8}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":471,\"length\":0,\"text\":\"[{\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":472,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":473,\"length\":0,\"text\":\" capabilities: {\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":474,\"length\":0,\"text\":\" unstable_subAccounts: [{\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":475,\"length\":0,\"text\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":476,\"length\":0,\"text\":\" }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":477,\"length\":0,\"text\":\" },\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":478,\"length\":0,\"text\":\"}]\",\"line\":23,\"character\":0}]}}" diff --git a/site/.cache/twoslash.392198d15d23063beaa6ef025082cb9dd8973e5a0e6ff70dbd5a54798d63de5c.json b/site/.cache/twoslash.392198d15d23063beaa6ef025082cb9dd8973e5a0e6ff70dbd5a54798d63de5c.json deleted file mode 100644 index 95301d181d..0000000000 --- a/site/.cache/twoslash.392198d15d23063beaa6ef025082cb9dd8973e5a0e6ff70dbd5a54798d63de5c.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: {\\n weights: {\\n latency: 0.4,\\n stability: 0.6 // [!code focus:3]\\n }\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":62,\"length\":7,\"target\":\"weights\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":79,\"length\":7,\"target\":\"latency\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":99,\"length\":9,\"target\":\"stability\",\"line\":4,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: {\\n weights: {\\n latency: 0.4,\\n stability: 0.6 // [!code focus:3]\\n }\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":62,\"length\":7,\"target\":\"weights\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":79,\"length\":7,\"target\":\"latency\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":99,\"length\":9,\"target\":\"stability\",\"line\":4,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.39b2ea719229f79d36a0a016e21b5d82eaba7a989b9ef4298c92e690d52d9ec8.json b/site/.cache/twoslash.39b2ea719229f79d36a0a016e21b5d82eaba7a989b9ef4298c92e690d52d9ec8.json index 39d105c395..1567985f4c 100644 --- a/site/.cache/twoslash.39b2ea719229f79d36a0a016e21b5d82eaba7a989b9ef4298c92e690d52d9ec8.json +++ b/site/.cache/twoslash.39b2ea719229f79d36a0a016e21b5d82eaba7a989b9ef4298c92e690d52d9ec8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem' // [!code focus]\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":62,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":102,\"length\":8,\"target\":\"wagmiAbi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":133,\"length\":7,\"target\":\"unwatch\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":143,\"length\":12,\"target\":\"publicClient\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":156,\"length\":10,\"target\":\"watchEvent\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":228,\"length\":5,\"target\":\"event\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":235,\"length\":12,\"target\":\"parseAbiItem\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":343,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":351,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":359,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":367,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":371,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":380,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":381,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":382,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1495,1543],[1464,1494],[1424,1463],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1424,\"end\":1463},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1464,\"end\":1494},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1495,\"end\":1543}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbiItem } from 'viem' // [!code focus]\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":62,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":102,\"length\":8,\"target\":\"wagmiAbi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":133,\"length\":7,\"target\":\"unwatch\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":143,\"length\":12,\"target\":\"publicClient\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":156,\"length\":10,\"target\":\"watchEvent\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":228,\"length\":5,\"target\":\"event\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":235,\"length\":12,\"target\":\"parseAbiItem\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":343,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":351,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":359,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":367,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":371,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":380,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":381,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":382,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":12,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem' // [!code focus]\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":62,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":102,\"length\":8,\"target\":\"wagmiAbi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":133,\"length\":7,\"target\":\"unwatch\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":143,\"length\":12,\"target\":\"publicClient\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":156,\"length\":10,\"target\":\"watchEvent\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":228,\"length\":5,\"target\":\"event\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":235,\"length\":12,\"target\":\"parseAbiItem\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":343,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":351,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":359,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":367,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":371,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":380,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":381,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":382,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1495,1543],[1464,1494],[1424,1463],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1424,\"end\":1463},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1464,\"end\":1494},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1495,\"end\":1543}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbiItem } from 'viem' // [!code focus]\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":62,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":102,\"length\":8,\"target\":\"wagmiAbi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":133,\"length\":7,\"target\":\"unwatch\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":143,\"length\":12,\"target\":\"publicClient\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":156,\"length\":10,\"target\":\"watchEvent\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":228,\"length\":5,\"target\":\"event\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":235,\"length\":12,\"target\":\"parseAbiItem\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":343,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":351,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":359,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":367,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":371,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":380,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":381,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":382,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.3a5085dc1179794a133f4777c04de75222bd2674174fdbde3f9c2f579c4b9d91.json b/site/.cache/twoslash.3a5085dc1179794a133f4777c04de75222bd2674174fdbde3f9c2f579c4b9d91.json deleted file mode 100644 index 1c785a98df..0000000000 --- a/site/.cache/twoslash.3a5085dc1179794a133f4777c04de75222bd2674174fdbde3f9c2f579c4b9d91.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', { \\n key: 'alchemy', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the WebSocket transport.\",\"start\":75,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', { \\n key: 'alchemy', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the WebSocket transport.\",\"start\":75,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3b2526552941b0b2c39e33e04c0b41ad0032f5d151d2ccaa2c552b76d3fb8e57.json b/site/.cache/twoslash.3b2526552941b0b2c39e33e04c0b41ad0032f5d151d2ccaa2c552b76d3fb8e57.json index 96e29e61a5..57dfd7dcbc 100644 --- a/site/.cache/twoslash.3b2526552941b0b2c39e33e04c0b41ad0032f5d151d2ccaa2c552b76d3fb8e57.json +++ b/site/.cache/twoslash.3b2526552941b0b2c39e33e04c0b41ad0032f5d151d2ccaa2c552b76d3fb8e57.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { HDKey, hdKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst hdKey = HDKey.fromMasterSeed(...) // [!code focus:3]\\nconst hdKey = HDKey.fromExtendedKey(...)\\nconst hdKey = HDKey.fromJSON({ xpriv: ... })\\n\\nconst account = hdKeyToAccount(hdKey) // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":57,\"length\":5,\"target\":\"HDKey\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":64,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":147,\"length\":5,\"target\":\"hdKey\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":155,\"length\":5,\"target\":\"HDKey\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromMasterSeed(seed: Uint8Array, versions?: Versions): HDKey\",\"start\":161,\"length\":14,\"target\":\"fromMasterSeed\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":206,\"length\":5,\"target\":\"hdKey\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":214,\"length\":5,\"target\":\"HDKey\",\"line\":5,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromExtendedKey(base58key: string, versions?: Versions): HDKey\",\"start\":220,\"length\":15,\"target\":\"fromExtendedKey\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":247,\"length\":5,\"target\":\"hdKey\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":255,\"length\":5,\"target\":\"HDKey\",\"line\":6,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromJSON(json: {\\n xpriv: string;\\n}): HDKey\",\"start\":261,\"length\":8,\"target\":\"fromJSON\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) xpriv: string\",\"start\":272,\"length\":5,\"target\":\"xpriv\",\"line\":6,\"character\":31},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":303,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":318,\"length\":5,\"target\":\"hdKey\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":349,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":358,\"length\":18,\"target\":\"createWalletClient\",\"line\":10,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":381,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { HDKey, hdKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst hdKey = HDKey.fromMasterSeed(...) // [!code focus:3]\\nconst hdKey = HDKey.fromExtendedKey(...)\\nconst hdKey = HDKey.fromJSON({ xpriv: ... })\\n\\nconst account = hdKeyToAccount(hdKey) // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":57,\"length\":5,\"target\":\"HDKey\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":64,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":147,\"length\":5,\"target\":\"hdKey\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":155,\"length\":5,\"target\":\"HDKey\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromMasterSeed(seed: Uint8Array, versions?: Versions): HDKey\",\"start\":161,\"length\":14,\"target\":\"fromMasterSeed\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":206,\"length\":5,\"target\":\"hdKey\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":214,\"length\":5,\"target\":\"HDKey\",\"line\":5,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromExtendedKey(base58key: string, versions?: Versions): HDKey\",\"start\":220,\"length\":15,\"target\":\"fromExtendedKey\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":247,\"length\":5,\"target\":\"hdKey\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":255,\"length\":5,\"target\":\"HDKey\",\"line\":6,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromJSON(json: {\\n xpriv: string;\\n}): HDKey\",\"start\":261,\"length\":8,\"target\":\"fromJSON\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) xpriv: string\",\"start\":272,\"length\":5,\"target\":\"xpriv\",\"line\":6,\"character\":31},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":303,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":318,\"length\":5,\"target\":\"hdKey\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":349,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":358,\"length\":18,\"target\":\"createWalletClient\",\"line\":10,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":381,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { HDKey, hdKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst hdKey = HDKey.fromMasterSeed(...) // [!code focus:3]\\nconst hdKey = HDKey.fromExtendedKey(...)\\nconst hdKey = HDKey.fromJSON({ xpriv: ... })\\n\\nconst account = hdKeyToAccount(hdKey) // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":57,\"length\":5,\"target\":\"HDKey\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":64,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":147,\"length\":5,\"target\":\"hdKey\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":155,\"length\":5,\"target\":\"HDKey\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromMasterSeed(seed: Uint8Array, versions?: Versions): HDKey\",\"start\":161,\"length\":14,\"target\":\"fromMasterSeed\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":206,\"length\":5,\"target\":\"hdKey\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":214,\"length\":5,\"target\":\"HDKey\",\"line\":5,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromExtendedKey(base58key: string, versions?: Versions): HDKey\",\"start\":220,\"length\":15,\"target\":\"fromExtendedKey\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":247,\"length\":5,\"target\":\"hdKey\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":255,\"length\":5,\"target\":\"HDKey\",\"line\":6,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromJSON(json: {\\n xpriv: string;\\n}): HDKey\",\"start\":261,\"length\":8,\"target\":\"fromJSON\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) xpriv: string\",\"start\":272,\"length\":5,\"target\":\"xpriv\",\"line\":6,\"character\":31},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":303,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":318,\"length\":5,\"target\":\"hdKey\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":349,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":358,\"length\":18,\"target\":\"createWalletClient\",\"line\":10,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":381,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { HDKey, hdKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst hdKey = HDKey.fromMasterSeed(...) // [!code focus:3]\\nconst hdKey = HDKey.fromExtendedKey(...)\\nconst hdKey = HDKey.fromJSON({ xpriv: ... })\\n\\nconst account = hdKeyToAccount(hdKey) // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":57,\"length\":5,\"target\":\"HDKey\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":64,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":147,\"length\":5,\"target\":\"hdKey\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":155,\"length\":5,\"target\":\"HDKey\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromMasterSeed(seed: Uint8Array, versions?: Versions): HDKey\",\"start\":161,\"length\":14,\"target\":\"fromMasterSeed\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":206,\"length\":5,\"target\":\"hdKey\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":214,\"length\":5,\"target\":\"HDKey\",\"line\":5,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromExtendedKey(base58key: string, versions?: Versions): HDKey\",\"start\":220,\"length\":15,\"target\":\"fromExtendedKey\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":247,\"length\":5,\"target\":\"hdKey\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) class HDKey\\nimport HDKey\",\"start\":255,\"length\":5,\"target\":\"HDKey\",\"line\":6,\"character\":14},{\"type\":\"hover\",\"text\":\"(method) HDKey.fromJSON(json: {\\n xpriv: string;\\n}): HDKey\",\"start\":261,\"length\":8,\"target\":\"fromJSON\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) xpriv: string\",\"start\":272,\"length\":5,\"target\":\"xpriv\",\"line\":6,\"character\":31},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) hdKeyToAccount(hdKey_: HDKey, { accountIndex, addressIndex, changeIndex, path, ...options }?: HDKeyToAccountOptions): HDAccount\\nimport hdKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a HD Key.\"],[\"returns\",\"A HD Account.\"]],\"start\":303,\"length\":14,\"target\":\"hdKeyToAccount\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"const hdKey: HDKey\",\"start\":318,\"length\":5,\"target\":\"hdKey\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":349,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":358,\"length\":18,\"target\":\"createWalletClient\",\"line\":10,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":381,\"length\":7,\"target\":\"account\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":13,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3b66195d6335fa57e706cbcd69123495bc794489c7d943361d88963047bf255f.json b/site/.cache/twoslash.3b66195d6335fa57e706cbcd69123495bc794489c7d943361d88963047bf255f.json index c43dae0718..bd863fbdac 100644 --- a/site/.cache/twoslash.3b66195d6335fa57e706cbcd69123495bc794489c7d943361d88963047bf255f.json +++ b/site/.cache/twoslash.3b66195d6335fa57e706cbcd69123495bc794489c7d943361d88963047bf255f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const balance = await publicClient.getTransactionConfirmations({\\n hash: '0x...' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":67,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst balance = await publicClient.getTransactionConfirmations({\\n hash: '0x...' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":67,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const balance = await publicClient.getTransactionConfirmations({\\n hash: '0x...' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":67,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst balance = await publicClient.getTransactionConfirmations({\\n hash: '0x...' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":67,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3b7b9460d8ef288b4238bf66d83639b3e2d93a352c4a6b530f61882a7de3d149.json b/site/.cache/twoslash.3b7b9460d8ef288b4238bf66d83639b3e2d93a352c4a6b530f61882a7de3d149.json index 251729cae0..0396a78b6b 100644 --- a/site/.cache/twoslash.3b7b9460d8ef288b4238bf66d83639b3e2d93a352c4a6b530f61882a7de3d149.json +++ b/site/.cache/twoslash.3b7b9460d8ef288b4238bf66d83639b3e2d93a352c4a6b530f61882a7de3d149.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":62,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":62,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":62,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":62,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3b92787c183eed08cf43c5aede2078abc5254cb204679cd4f812f3e471f2b07f.json b/site/.cache/twoslash.3b92787c183eed08cf43c5aede2078abc5254cb204679cd4f812f3e471f2b07f.json index 85348ae281..4003af0036 100644 --- a/site/.cache/twoslash.3b92787c183eed08cf43c5aede2078abc5254cb204679cd4f812f3e471f2b07f.json +++ b/site/.cache/twoslash.3b92787c183eed08cf43c5aede2078abc5254cb204679cd4f812f3e471f2b07f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3bb800350ea8e3924dc372b2fd5eceb8e5190ada6ed9f874eed42d79ce1baad9.json b/site/.cache/twoslash.3bb800350ea8e3924dc372b2fd5eceb8e5190ada6ed9f874eed42d79ce1baad9.json index c2426fabe7..879b1c78bc 100644 --- a/site/.cache/twoslash.3bb800350ea8e3924dc372b2fd5eceb8e5190ada6ed9f874eed42d79ce1baad9.json +++ b/site/.cache/twoslash.3bb800350ea8e3924dc372b2fd5eceb8e5190ada6ed9f874eed42d79ce1baad9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":89,\"length\":14,\"target\":\"erc7821Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":145,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":154,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":211,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":218,\"length\":14,\"target\":\"erc7821Actions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":89,\"length\":14,\"target\":\"erc7821Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":145,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":154,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":211,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":218,\"length\":14,\"target\":\"erc7821Actions\",\"line\":7,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":89,\"length\":14,\"target\":\"erc7821Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":145,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":154,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":211,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":218,\"length\":14,\"target\":\"erc7821Actions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":89,\"length\":14,\"target\":\"erc7821Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":145,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":154,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":211,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":218,\"length\":14,\"target\":\"erc7821Actions\",\"line\":7,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3c1b3bd4a6580e08382f4b28353b7c3fdddbd25d4dfa5e6fffbd0e081fa86a84.json b/site/.cache/twoslash.3c1b3bd4a6580e08382f4b28353b7c3fdddbd25d4dfa5e6fffbd0e081fa86a84.json index 456181b26b..d46b8d2655 100644 --- a/site/.cache/twoslash.3c1b3bd4a6580e08382f4b28353b7c3fdddbd25d4dfa5e6fffbd0e081fa86a84.json +++ b/site/.cache/twoslash.3c1b3bd4a6580e08382f4b28353b7c3fdddbd25d4dfa5e6fffbd0e081fa86a84.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst {\\n maxFeePerGas,\\n maxPriorityFeePerGas\\n} = await publicClient.estimateFeesPerGas()\\n\\n\\n\\n\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy'\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":51,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":67,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"eip1559\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":111,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":5,\"character\":23},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" maxFeePerGas: 15_000_000_000n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":144,\"length\":8,\"target\":\"gasPrice\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":163,\"length\":12,\"target\":\"publicClient\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":176,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":10,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":199,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\"{ gasPrice: 15_000_000_000n } \",\"line\":14,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[570,610],[477,488],[427,476],[384,426],[372,383],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":372,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 15_000_000_000n,\",\"start\":384,\"end\":426},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"start\":427,\"end\":476},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":477,\"end\":488},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{ gasPrice: 15_000_000_000n } \",\"start\":570,\"end\":610}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst {\\n maxFeePerGas,\\n maxPriorityFeePerGas\\n} = await publicClient.estimateFeesPerGas()\\n// @log: {\\n\\n// @log: maxFeePerGas: 15_000_000_000n,\\n\\n// @log: maxPriorityFeePerGas: 1_000_000_000n,\\n\\n// @log: }\\n\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy'\\n})\\n// @log: { gasPrice: 15_000_000_000n } \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":51,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":67,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"eip1559\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":111,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":144,\"length\":8,\"target\":\"gasPrice\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":163,\"length\":12,\"target\":\"publicClient\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":176,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":10,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":199,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" maxFeePerGas: 15_000_000_000n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\"{ gasPrice: 15_000_000_000n } \",\"line\":14,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst {\\n maxFeePerGas,\\n maxPriorityFeePerGas\\n} = await publicClient.estimateFeesPerGas()\\n\\n\\n\\n\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy'\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":51,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":67,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"eip1559\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":111,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":5,\"character\":23},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" maxFeePerGas: 15_000_000_000n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":144,\"length\":8,\"target\":\"gasPrice\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":163,\"length\":12,\"target\":\"publicClient\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":176,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":10,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":199,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\"{ gasPrice: 15_000_000_000n } \",\"line\":14,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[570,610],[477,488],[427,476],[384,426],[372,383],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":372,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 15_000_000_000n,\",\"start\":384,\"end\":426},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"start\":427,\"end\":476},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":477,\"end\":488},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{ gasPrice: 15_000_000_000n } \",\"start\":570,\"end\":610}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst {\\n maxFeePerGas,\\n maxPriorityFeePerGas\\n} = await publicClient.estimateFeesPerGas()\\n// @log: {\\n\\n// @log: maxFeePerGas: 15_000_000_000n,\\n\\n// @log: maxPriorityFeePerGas: 1_000_000_000n,\\n\\n// @log: }\\n\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy'\\n})\\n// @log: { gasPrice: 15_000_000_000n } \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":51,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":67,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"eip1559\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":111,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":144,\"length\":8,\"target\":\"gasPrice\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":163,\"length\":12,\"target\":\"publicClient\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":176,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":10,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":199,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" maxFeePerGas: 15_000_000_000n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1_000_000_000n,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\"{ gasPrice: 15_000_000_000n } \",\"line\":14,\"character\":0}]}}" diff --git a/site/.cache/twoslash.3c61cc09e9277573a650f4018429e7f9605ca064a32af04959005bb614a76d02.json b/site/.cache/twoslash.3c61cc09e9277573a650f4018429e7f9605ca064a32af04959005bb614a76d02.json index b7a91b151b..31313464e4 100644 --- a/site/.cache/twoslash.3c61cc09e9277573a650f4018429e7f9605ca064a32af04959005bb614a76d02.json +++ b/site/.cache/twoslash.3c61cc09e9277573a650f4018429e7f9605ca064a32af04959005bb614a76d02.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":50,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":95,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":50,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":95,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":50,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":95,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":50,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":95,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3c93bb3f4e6e22fe1702f415a1e67e906962cdd23b07ce196a5ecf7f0fb47241.json b/site/.cache/twoslash.3c93bb3f4e6e22fe1702f415a1e67e906962cdd23b07ce196a5ecf7f0fb47241.json new file mode 100644 index 0000000000..0393b74da0 --- /dev/null +++ b/site/.cache/twoslash.3c93bb3f4e6e22fe1702f415a1e67e906962cdd23b07ce196a5ecf7f0fb47241.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3cf0da97efcfa7125c499ee042210c5a8b1468f1473ac5d9ea38979661e34963.json b/site/.cache/twoslash.3cf0da97efcfa7125c499ee042210c5a8b1468f1473ac5d9ea38979661e34963.json index 63d37bbfa2..eaa9e3c4b7 100644 --- a/site/.cache/twoslash.3cf0da97efcfa7125c499ee042210c5a8b1468f1473ac5d9ea38979661e34963.json +++ b/site/.cache/twoslash.3cf0da97efcfa7125c499ee042210c5a8b1468f1473ac5d9ea38979661e34963.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount(...)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":59,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":169,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":192,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":199,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":210,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":221,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":228,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":235,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"tag\",\"name\":\"log\",\"start\":250,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":263,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":319,\"length\":0,\"text\":\"↓ Local Account\",\"line\":11,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[381,406],[284,312],[0,34]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":59,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":169,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":192,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":199,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":210,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":221,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":228,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":235,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":263,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":250,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":319,\"length\":0,\"text\":\"↓ Local Account\",\"line\":11,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount(...)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":59,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":169,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":192,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":199,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":210,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":221,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":228,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":235,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"tag\",\"name\":\"log\",\"start\":250,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":263,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":319,\"length\":0,\"text\":\"↓ Local Account\",\"line\":11,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[381,406],[284,312],[0,34]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":59,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":111,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":169,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":192,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":199,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":210,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":221,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":228,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":235,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":263,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":250,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":319,\"length\":0,\"text\":\"↓ Local Account\",\"line\":11,\"character\":0}]}}" diff --git a/site/.cache/twoslash.3d3c2ce05b455f8b49b8b440a13c44fea1aaf2824f852bc4115402c0f89f7749.json b/site/.cache/twoslash.3d3c2ce05b455f8b49b8b440a13c44fea1aaf2824f852bc4115402c0f89f7749.json index d4fe988fdb..9a8c2b8e68 100644 --- a/site/.cache/twoslash.3d3c2ce05b455f8b49b8b440a13c44fea1aaf2824f852bc4115402c0f89f7749.json +++ b/site/.cache/twoslash.3d3c2ce05b455f8b49b8b440a13c44fea1aaf2824f852bc4115402c0f89f7749.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, undefined, {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":129,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":193,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":204,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, undefined, {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":129,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":193,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":204,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, undefined, {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":129,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":193,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":204,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, undefined, {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":129,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":193,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":204,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3d768186c0fb07817096f6341326f2f8e663daa3cd2bc8833b7536065c65eb2c.json b/site/.cache/twoslash.3d768186c0fb07817096f6341326f2f8e663daa3cd2bc8833b7536065c65eb2c.json index b922e4ec34..035c979826 100644 --- a/site/.cache/twoslash.3d768186c0fb07817096f6341326f2f8e663daa3cd2bc8833b7536065c65eb2c.json +++ b/site/.cache/twoslash.3d768186c0fb07817096f6341326f2f8e663daa3cd2bc8833b7536065c65eb2c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497', // [!code focus]\\n factoryData: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":172,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497', // [!code focus]\\n factoryData: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":172,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497', // [!code focus]\\n factoryData: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":172,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n factory: '0x0000000000ffe8b47b3e2130213b802212439497', // [!code focus]\\n factoryData: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":98,\"length\":7,\"target\":\"factory\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":172,\"length\":11,\"target\":\"factoryData\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3e7b0a42a7a3e98b9712b6ccb3d0cf312492b3b6a9f65d80c4ef8bd6957afff6.json b/site/.cache/twoslash.3e7b0a42a7a3e98b9712b6ccb3d0cf312492b3b6a9f65d80c4ef8bd6957afff6.json index a1ae6f02ca..9f299d6531 100644 --- a/site/.cache/twoslash.3e7b0a42a7a3e98b9712b6ccb3d0cf312492b3b6a9f65d80c4ef8bd6957afff6.json +++ b/site/.cache/twoslash.3e7b0a42a7a3e98b9712b6ccb3d0cf312492b3b6a9f65d80c4ef8bd6957afff6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3e7b47c97dcd605b710acb0294de89f820d7ed86704ce70e8fce7261aca80305.json b/site/.cache/twoslash.3e7b47c97dcd605b710acb0294de89f820d7ed86704ce70e8fce7261aca80305.json index cb66cb3a1a..49d28e1c38 100644 --- a/site/.cache/twoslash.3e7b47c97dcd605b710acb0294de89f820d7ed86704ce70e8fce7261aca80305.json +++ b/site/.cache/twoslash.3e7b47c97dcd605b710acb0294de89f820d7ed86704ce70e8fce7261aca80305.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":50,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":92,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":103,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":50,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":92,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":103,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":50,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":92,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":103,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n name: 'Public Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":50,\"length\":4,\"target\":\"name\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":92,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":103,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3f229f291d97c32985e3b05dee34cd993202e9581dd6671516ecf912d977bbfa.json b/site/.cache/twoslash.3f229f291d97c32985e3b05dee34cd993202e9581dd6671516ecf912d977bbfa.json deleted file mode 100644 index b601dbdd02..0000000000 --- a/site/.cache/twoslash.3f229f291d97c32985e3b05dee34cd993202e9581dd6671516ecf912d977bbfa.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0, // [!code focus]\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3f3d8ddaa9fac131f45c0a351386ec646aa0d135c1dd2198eef9c454b86d8363.json b/site/.cache/twoslash.3f3d8ddaa9fac131f45c0a351386ec646aa0d135c1dd2198eef9c454b86d8363.json new file mode 100644 index 0000000000..57c85785af --- /dev/null +++ b/site/.cache/twoslash.3f3d8ddaa9fac131f45c0a351386ec646aa0d135c1dd2198eef9c454b86d8363.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256'\\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":111,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":207,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":228,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256'\\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":111,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":207,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":228,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.3f464ac23ea8f1bbc2eb8c3afb9779d1a151db495dff8f3d120e3b38ca0cffb2.json b/site/.cache/twoslash.3f464ac23ea8f1bbc2eb8c3afb9779d1a151db495dff8f3d120e3b38ca0cffb2.json new file mode 100644 index 0000000000..13ee937726 --- /dev/null +++ b/site/.cache/twoslash.3f464ac23ea8f1bbc2eb8c3afb9779d1a151db495dff8f3d120e3b38ca0cffb2.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', // [!code focus]\\n type: 'undeployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":155,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":212,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":258,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',\\n factoryData: '0xdeadbeef', // [!code focus]\\n type: 'undeployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":155,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":212,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":258,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4036cb93a76fef8577c6cb69c1efc8dce9fdfd202b72a6ca07ad2fcad9ff927a.json b/site/.cache/twoslash.4036cb93a76fef8577c6cb69c1efc8dce9fdfd202b72a6ca07ad2fcad9ff927a.json deleted file mode 100644 index 38566b0ff1..0000000000 --- a/site/.cache/twoslash.4036cb93a76fef8577c6cb69c1efc8dce9fdfd202b72a6ca07ad2fcad9ff927a.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: false, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: false, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.404ba7ad9870ba873d074a15c78cd32a22e35417f10493a94fc140e87b3d03e3.json b/site/.cache/twoslash.404ba7ad9870ba873d074a15c78cd32a22e35417f10493a94fc140e87b3d03e3.json index 10e7a1158e..f40e71cd02 100644 --- a/site/.cache/twoslash.404ba7ad9870ba873d074a15c78cd32a22e35417f10493a94fc140e87b3d03e3.json +++ b/site/.cache/twoslash.404ba7ad9870ba873d074a15c78cd32a22e35417f10493a94fc140e87b3d03e3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":96,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":127,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":207,\"length\":6,\"target\":\"domain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":217,\"length\":5,\"target\":\"types\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":226,\"length\":11,\"target\":\"primaryType\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":249,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":264,\"length\":4,\"target\":\"from\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":278,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":297,\"length\":6,\"target\":\"wallet\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":362,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":374,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":393,\"length\":6,\"target\":\"wallet\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":458,\"length\":8,\"target\":\"contents\",\"line\":18,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":553,\"length\":8,\"target\":\"verifier\",\"line\":21,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":96,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":127,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":207,\"length\":6,\"target\":\"domain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":217,\"length\":5,\"target\":\"types\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":226,\"length\":11,\"target\":\"primaryType\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":249,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":264,\"length\":4,\"target\":\"from\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":278,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":297,\"length\":6,\"target\":\"wallet\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":362,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":374,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":393,\"length\":6,\"target\":\"wallet\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":458,\"length\":8,\"target\":\"contents\",\"line\":18,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":553,\"length\":8,\"target\":\"verifier\",\"line\":21,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":96,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":127,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":207,\"length\":6,\"target\":\"domain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":217,\"length\":5,\"target\":\"types\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":226,\"length\":11,\"target\":\"primaryType\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":249,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":264,\"length\":4,\"target\":\"from\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":278,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":297,\"length\":6,\"target\":\"wallet\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":362,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":374,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":393,\"length\":6,\"target\":\"wallet\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":458,\"length\":8,\"target\":\"contents\",\"line\":18,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":553,\"length\":8,\"target\":\"verifier\",\"line\":21,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n // Account used for signing.\\n account,\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n // Verifying contract address (e.g. ERC-4337 Smart Account).\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":58,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":66,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":96,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":114,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":127,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":207,\"length\":6,\"target\":\"domain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":217,\"length\":5,\"target\":\"types\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":226,\"length\":11,\"target\":\"primaryType\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":249,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":264,\"length\":4,\"target\":\"from\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":278,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":297,\"length\":6,\"target\":\"wallet\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":362,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":374,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":393,\"length\":6,\"target\":\"wallet\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":458,\"length\":8,\"target\":\"contents\",\"line\":18,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":553,\"length\":8,\"target\":\"verifier\",\"line\":21,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.40e0481f492169fd68d6ddbb96c4a55dc45a1ea4e9e5acbdd5866d7a30f8d954.json b/site/.cache/twoslash.40e0481f492169fd68d6ddbb96c4a55dc45a1ea4e9e5acbdd5866d7a30f8d954.json new file mode 100644 index 0000000000..beaa7ceed5 --- /dev/null +++ b/site/.cache/twoslash.40e0481f492169fd68d6ddbb96c4a55dc45a1ea4e9e5acbdd5866d7a30f8d954.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { // [!code focus]\\n unstable_signInWithEthereum: { // [!code focus]\\n chainId: 1, // [!code focus]\\n nonce: 'abcd1234', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":82,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":94,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_signInWithEthereum?: RequiredBy, \\\"nonce\\\" | \\\"chainId\\\"> | undefined\",\"start\":131,\"length\":27,\"target\":\"unstable_signInWithEthereum\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":220,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect({\\n capabilities: { // [!code focus]\\n unstable_signInWithEthereum: { // [!code focus]\\n chainId: 1, // [!code focus]\\n nonce: 'abcd1234', // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":82,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":94,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_signInWithEthereum?: RequiredBy, \\\"nonce\\\" | \\\"chainId\\\"> | undefined\",\"start\":131,\"length\":27,\"target\":\"unstable_signInWithEthereum\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":185,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":220,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.413a2f0bccb616b10077b844fe5fb687951af9bd593a2db23b1b640081540a3d.json b/site/.cache/twoslash.413a2f0bccb616b10077b844fe5fb687951af9bd593a2db23b1b640081540a3d.json deleted file mode 100644 index ebfa128134..0000000000 --- a/site/.cache/twoslash.413a2f0bccb616b10077b844fe5fb687951af9bd593a2db23b1b640081540a3d.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [ // [!code focus]\\n [ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n ] // [!code focus]\\n }), // [!code focus]\\n to: walletClient.account.address, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":29,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":103,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":147,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":169,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":182,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":204,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":231,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":244,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":257,\"length\":15,\"target\":\"sendTransaction\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":294,\"length\":17,\"target\":\"authorizationList\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":314,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":349,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":355,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":423,\"length\":12,\"target\":\"functionName\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":469,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":556,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":595,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":672,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":679,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":782,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":821,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":898,\"length\":5,\"target\":\"value\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":905,\"length\":10,\"target\":\"parseEther\",\"line\":23,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":1045,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":1049,\"length\":12,\"target\":\"walletClient\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":1062,\"length\":7,\"target\":\"account\",\"line\":28,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":1070,\"length\":7,\"target\":\"address\",\"line\":28,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.sendTransaction({ // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n data: encodeFunctionData({ // [!code focus]\\n abi, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [ // [!code focus]\\n [ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n ] // [!code focus]\\n }), // [!code focus]\\n to: walletClient.account.address, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":29,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":103,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":147,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":169,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":182,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":204,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":231,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":244,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":257,\"length\":15,\"target\":\"sendTransaction\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":294,\"length\":17,\"target\":\"authorizationList\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":314,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":349,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":355,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":423,\"length\":12,\"target\":\"functionName\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":469,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":556,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":595,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":672,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":679,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":782,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":821,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":898,\"length\":5,\"target\":\"value\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":905,\"length\":10,\"target\":\"parseEther\",\"line\":23,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":1045,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":1049,\"length\":12,\"target\":\"walletClient\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":1062,\"length\":7,\"target\":\"account\",\"line\":28,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":1070,\"length\":7,\"target\":\"address\",\"line\":28,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.413a35891c823d402bdbb4390f0215ae986d98b761c24a6ed57d5d0f4051377c.json b/site/.cache/twoslash.413a35891c823d402bdbb4390f0215ae986d98b761c24a6ed57d5d0f4051377c.json new file mode 100644 index 0000000000..e209615513 --- /dev/null +++ b/site/.cache/twoslash.413a35891c823d402bdbb4390f0215ae986d98b761c24a6ed57d5d0f4051377c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":172,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":230,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":259,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000', // [!code focus]\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', \\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":172,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":230,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":259,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.418a916c08a0c393d048e632a8920c8270fa04548b66486cf4106886b9001495.json b/site/.cache/twoslash.418a916c08a0c393d048e632a8920c8270fa04548b66486cf4106886b9001495.json index a8ca821c29..389323b2b7 100644 --- a/site/.cache/twoslash.418a916c08a0c393d048e632a8920c8270fa04548b66486cf4106886b9001495.json +++ b/site/.cache/twoslash.418a916c08a0c393d048e632a8920c8270fa04548b66486cf4106886b9001495.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":76,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":141,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":152,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":76,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":141,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":152,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":76,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":141,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":152,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":76,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":141,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":152,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.41c11d289638371383122567db3cd01e640a165db2f56375663b8d6bbeb535bf.json b/site/.cache/twoslash.41c11d289638371383122567db3cd01e640a165db2f56375663b8d6bbeb535bf.json index 7cac2b6d00..991071d339 100644 --- a/site/.cache/twoslash.41c11d289638371383122567db3cd01e640a165db2f56375663b8d6bbeb535bf.json +++ b/site/.cache/twoslash.41c11d289638371383122567db3cd01e640a165db2f56375663b8d6bbeb535bf.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":64,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":109,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":125,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":135,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":143,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":147,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":64,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":109,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":125,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":135,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":143,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":147,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":64,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":109,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":125,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":135,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":143,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":147,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":64,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":109,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":125,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":135,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":143,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":147,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.424010c7898df67bb50e18b1bcd608544c71c5131a45c54bfddfe4abcfce825a.json b/site/.cache/twoslash.424010c7898df67bb50e18b1bcd608544c71c5131a45c54bfddfe4abcfce825a.json index 4596f333ee..36f2381e1f 100644 --- a/site/.cache/twoslash.424010c7898df67bb50e18b1bcd608544c71c5131a45c54bfddfe4abcfce825a.json +++ b/site/.cache/twoslash.424010c7898df67bb50e18b1bcd608544c71c5131a45c54bfddfe4abcfce825a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,840]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,840]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities()\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":48,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":82,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.438c186056ccccfde0594d9d08ccd95f3f2dbd7cd8c3f3c9559c4367fcc72978.json b/site/.cache/twoslash.438c186056ccccfde0594d9d08ccd95f3f2dbd7cd8c3f3c9559c4367fcc72978.json index 38da42a017..245110794c 100644 --- a/site/.cache/twoslash.438c186056ccccfde0594d9d08ccd95f3f2dbd7cd8c3f3c9559c4367fcc72978.json +++ b/site/.cache/twoslash.438c186056ccccfde0594d9d08ccd95f3f2dbd7cd8c3f3c9559c4367fcc72978.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem' // [!code focus]\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":60,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":70,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":83,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":104,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":163,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":170,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":280,\"length\":6,\"target\":\"onLogs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":288,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":296,\"length\":7,\"target\":\"console\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":304,\"length\":3,\"target\":\"log\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":308,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem' // [!code focus]\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":60,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":70,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":83,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":104,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":163,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":170,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":280,\"length\":6,\"target\":\"onLogs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":288,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":296,\"length\":7,\"target\":\"console\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":304,\"length\":3,\"target\":\"log\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":308,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem' // [!code focus]\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":60,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":70,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":83,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":104,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":163,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":170,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":280,\"length\":6,\"target\":\"onLogs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":288,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":296,\"length\":7,\"target\":\"console\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":304,\"length\":3,\"target\":\"log\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":308,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem' // [!code focus]\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'), // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":60,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":70,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":83,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":104,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":163,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":170,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":280,\"length\":6,\"target\":\"onLogs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":288,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":296,\"length\":7,\"target\":\"console\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":304,\"length\":3,\"target\":\"log\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":308,\"length\":4,\"target\":\"logs\",\"line\":6,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.444ff6430722c80a8570c0f1ab8346e629ea235992b86e5d61688db590c1d465.json b/site/.cache/twoslash.444ff6430722c80a8570c0f1ab8346e629ea235992b86e5d61688db590c1d465.json index cc77986a01..68d41f0621 100644 --- a/site/.cache/twoslash.444ff6430722c80a8570c0f1ab8346e629ea235992b86e5d61688db590c1d465.json +++ b/site/.cache/twoslash.444ff6430722c80a8570c0f1ab8346e629ea235992b86e5d61688db590c1d465.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst permissions = await walletClient.getPermissions() // [!code focus:99]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: GetPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getPermissions: () => Promise\",\"docs\":\"Gets the wallets current permissions.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getPermissions\\n- JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"returns\",\"The wallet permissions. {@link GetPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.getPermissions()\"]],\"start\":81,\"length\":14,\"target\":\"getPermissions\",\"line\":2,\"character\":39}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst permissions = await walletClient.getPermissions() // [!code focus:99]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: GetPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getPermissions: () => Promise\",\"docs\":\"Gets the wallets current permissions.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getPermissions\\n- JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"returns\",\"The wallet permissions. {@link GetPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.getPermissions()\"]],\"start\":81,\"length\":14,\"target\":\"getPermissions\",\"line\":2,\"character\":39}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst permissions = await walletClient.getPermissions() // [!code focus:99]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: GetPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getPermissions: () => Promise\",\"docs\":\"Gets the wallets current permissions.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getPermissions\\n- JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"returns\",\"The wallet permissions. {@link GetPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.getPermissions()\"]],\"start\":81,\"length\":14,\"target\":\"getPermissions\",\"line\":2,\"character\":39}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst permissions = await walletClient.getPermissions() // [!code focus:99]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: GetPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getPermissions: () => Promise\",\"docs\":\"Gets the wallets current permissions.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getPermissions\\n- JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"returns\",\"The wallet permissions. {@link GetPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.getPermissions()\"]],\"start\":81,\"length\":14,\"target\":\"getPermissions\",\"line\":2,\"character\":39}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.44dafba4a0c3212564589d2e6c3a985391d708fef7b4eeca2ba339856377aaa1.json b/site/.cache/twoslash.44dafba4a0c3212564589d2e6c3a985391d708fef7b4eeca2ba339856377aaa1.json index fd76fd4d69..f50a74f751 100644 --- a/site/.cache/twoslash.44dafba4a0c3212564589d2e6c3a985391d708fef7b4eeca2ba339856377aaa1.json +++ b/site/.cache/twoslash.44dafba4a0c3212564589d2e6c3a985391d708fef7b4eeca2ba339856377aaa1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":153,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":196,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":211,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":243,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":153,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":196,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":211,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":243,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":153,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":196,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":211,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":243,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":153,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":196,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":211,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":234,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":243,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.457fa2acf4cd38476d0406d7460bdbcc77801bf10c58e90da1dd45a8a35e99fd.json b/site/.cache/twoslash.457fa2acf4cd38476d0406d7460bdbcc77801bf10c58e90da1dd45a8a35e99fd.json new file mode 100644 index 0000000000..9eed6d2148 --- /dev/null +++ b/site/.cache/twoslash.457fa2acf4cd38476d0406d7460bdbcc77801bf10c58e90da1dd45a8a35e99fd.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1156,1167],[1140,1155],[1121,1139],[1086,1120],[1050,1085],[1028,1049],[1012,1027],[994,1011],[960,993],[930,959],[912,929],[878,911],[843,877],[823,842],[811,822],[0,688]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":811,\"end\":822},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 8453: {\",\"start\":823,\"end\":842},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":843,\"end\":877},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":878,\"end\":911},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":912,\"end\":929},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sessionKeys: {\",\"start\":930,\"end\":959},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":960,\"end\":993},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":994,\"end\":1011},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1012,\"end\":1027},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 84532: {\",\"start\":1028,\"end\":1049},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":1050,\"end\":1085},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1086,\"end\":1120},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1121,\"end\":1139},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1140,\"end\":1155},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1156,\"end\":1167}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":649,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n\\n// @log: 8453: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: sessionKeys: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: 84532: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}]}}" diff --git a/site/.cache/twoslash.465e6f15f22435df3754b3e4535ccbd87b7586f24088133717e1512d370afa6d.json b/site/.cache/twoslash.465e6f15f22435df3754b3e4535ccbd87b7586f24088133717e1512d370afa6d.json new file mode 100644 index 0000000000..4fbcd2bf16 --- /dev/null +++ b/site/.cache/twoslash.465e6f15f22435df3754b3e4535ccbd87b7586f24088133717e1512d370afa6d.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { serializeErc6492Signature } from 'viem/utils'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function serializeErc6492Signature(parameters: SerializeErc6492SignatureParameters): SerializeErc6492SignatureReturnType\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":9,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) serializeErc6492Signature<\\\"hex\\\">(parameters: SerializeErc6492SignatureParameters<\\\"hex\\\">): `0x${string}`\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":56,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The ERC-4337 Account Factory address to use for counterfactual verification.\",\"start\":106,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\",\"start\":163,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":185,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { serializeErc6492Signature } from 'viem/utils'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function serializeErc6492Signature(parameters: SerializeErc6492SignatureParameters): SerializeErc6492SignatureReturnType\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":9,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) serializeErc6492Signature<\\\"hex\\\">(parameters: SerializeErc6492SignatureParameters<\\\"hex\\\">): `0x${string}`\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":56,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The ERC-4337 Account Factory address to use for counterfactual verification.\",\"start\":106,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\",\"start\":163,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":185,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.467f789473196542aad3e23c105577d61023aa80d2b33fd851ba3dca64907da8.json b/site/.cache/twoslash.467f789473196542aad3e23c105577d61023aa80d2b33fd851ba3dca64907da8.json index afc659ac8c..4d9f214fcf 100644 --- a/site/.cache/twoslash.467f789473196542aad3e23c105577d61023aa80d2b33fd851ba3dca64907da8.json +++ b/site/.cache/twoslash.467f789473196542aad3e23c105577d61023aa80d2b33fd851ba3dca64907da8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":169,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":190,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":246,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":253,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":288,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":169,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":190,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":246,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":253,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":288,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":169,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":190,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":246,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":253,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":288,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":38,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":112,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":169,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":190,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":246,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":253,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":288,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.46c1e417c408bbd617ef07f96657b2dcdd5f2ad9a1a27baf386bc0926d03d6ef.json b/site/.cache/twoslash.46c1e417c408bbd617ef07f96657b2dcdd5f2ad9a1a27baf386bc0926d03d6ef.json index bbf07e83d1..f28d0b845e 100644 --- a/site/.cache/twoslash.46c1e417c408bbd617ef07f96657b2dcdd5f2ad9a1a27baf386bc0926d03d6ef.json +++ b/site/.cache/twoslash.46c1e417c408bbd617ef07f96657b2dcdd5f2ad9a1a27baf386bc0926d03d6ef.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n functionName: 'ping', // [!code hl]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":80,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":86,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":122,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":148,\"length\":13,\"target\":\"writeContract\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":166,\"length\":3,\"target\":\"abi\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":173,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":182,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":197,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n functionName: 'ping', // [!code hl]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":80,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":86,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":122,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":148,\"length\":13,\"target\":\"writeContract\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":166,\"length\":3,\"target\":\"abi\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":173,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":182,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":197,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n functionName: 'ping', // [!code hl]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":80,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":86,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":122,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":148,\"length\":13,\"target\":\"writeContract\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":166,\"length\":3,\"target\":\"abi\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":173,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":182,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":197,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n functionName: 'ping', // [!code hl]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":80,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":86,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":122,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":148,\"length\":13,\"target\":\"writeContract\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":166,\"length\":3,\"target\":\"abi\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":173,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":182,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":197,\"length\":12,\"target\":\"functionName\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.46dc7b0213f2a10ef441a2da24983ac9c3b3341d4f908345b550f172cb6cdf16.json b/site/.cache/twoslash.46dc7b0213f2a10ef441a2da24983ac9c3b3341d4f908345b550f172cb6cdf16.json deleted file mode 100644 index 7ad20f1462..0000000000 --- a/site/.cache/twoslash.46dc7b0213f2a10ef441a2da24983ac9c3b3341d4f908345b550f172cb6cdf16.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { verifyAuthorization } from 'viem/experimental'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":9,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { verifyAuthorization } from 'viem/experimental'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":9,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.46ecdd4b24fa3cf625ba985881d8d5af4d494fdaa1aa71d24fe669e87b427367.json b/site/.cache/twoslash.46ecdd4b24fa3cf625ba985881d8d5af4d494fdaa1aa71d24fe669e87b427367.json index 3c66d3e582..4838b7a78d 100644 --- a/site/.cache/twoslash.46ecdd4b24fa3cf625ba985881d8d5af4d494fdaa1aa71d24fe669e87b427367.json +++ b/site/.cache/twoslash.46ecdd4b24fa3cf625ba985881d8d5af4d494fdaa1aa71d24fe669e87b427367.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,353]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/utils'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,353]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/utils'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.472431f698c41fc8889d0136772b7d1e4d4b4e4e49fbb02a8b91dc27d957d8f8.json b/site/.cache/twoslash.472431f698c41fc8889d0136772b7d1e4d4b4e4e49fbb02a8b91dc27d957d8f8.json index 97895801e2..7b4dcca302 100644 --- a/site/.cache/twoslash.472431f698c41fc8889d0136772b7d1e4d4b4e4e49fbb02a8b91dc27d957d8f8.json +++ b/site/.cache/twoslash.472431f698c41fc8889d0136772b7d1e4d4b4e4e49fbb02a8b91dc27d957d8f8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":44,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":82,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":89,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":44,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":82,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":89,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":44,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":82,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":89,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":44,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":82,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":89,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4801f35c4c6f500bade696f49954890ffc0c5f1c92101fe17bd3d062231af381.json b/site/.cache/twoslash.4801f35c4c6f500bade696f49954890ffc0c5f1c92101fe17bd3d062231af381.json index 525e3740db..8b24268206 100644 --- a/site/.cache/twoslash.4801f35c4c6f500bade696f49954890ffc0c5f1c92101fe17bd3d062231af381.json +++ b/site/.cache/twoslash.4801f35c4c6f500bade696f49954890ffc0c5f1c92101fe17bd3d062231af381.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":41,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":84,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":141,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":195,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":41,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":84,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":141,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":195,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":41,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":84,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":141,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":195,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n blockNumber: 15121123n, // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":41,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":84,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":141,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":195,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.49bcf98da3d9286ada8f424e8fc15a82113dbba608da231a78c082e7fe1e652e.json b/site/.cache/twoslash.49bcf98da3d9286ada8f424e8fc15a82113dbba608da231a78c082e7fe1e652e.json index e3ae4a182f..965d831755 100644 --- a/site/.cache/twoslash.49bcf98da3d9286ada8f424e8fc15a82113dbba608da231a78c082e7fe1e652e.json +++ b/site/.cache/twoslash.49bcf98da3d9286ada8f424e8fc15a82113dbba608da231a78c082e7fe1e652e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n pollingInterval: 10_000, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":15,\"target\":\"pollingInterval\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":82,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":93,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":100,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":107,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n pollingInterval: 10_000, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":15,\"target\":\"pollingInterval\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":82,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":93,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":100,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":107,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n pollingInterval: 10_000, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":15,\"target\":\"pollingInterval\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":82,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":93,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":100,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":107,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n pollingInterval: 10_000, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":15,\"target\":\"pollingInterval\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":82,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":93,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":100,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":107,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4a548198c1659fe806be5f36328076076ea0f79a953b1d0346b8e85a733c0ffc.json b/site/.cache/twoslash.4a548198c1659fe806be5f36328076076ea0f79a953b1d0346b8e85a733c0ffc.json index fe7e6655b7..764239ecc2 100644 --- a/site/.cache/twoslash.4a548198c1659fe806be5f36328076076ea0f79a953b1d0346b8e85a733c0ffc.json +++ b/site/.cache/twoslash.4a548198c1659fe806be5f36328076076ea0f79a953b1d0346b8e85a733c0ffc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":9,\"target\":\"signature\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":235,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":248,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":264,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":471,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":484,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":497,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":516,\"length\":9,\"target\":\"signature\",\"line\":11,\"character\":51}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":9,\"target\":\"signature\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":235,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":248,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":264,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":471,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":484,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":497,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":516,\"length\":9,\"target\":\"signature\",\"line\":11,\"character\":51}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":9,\"target\":\"signature\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":235,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":248,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":264,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":471,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":484,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":497,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":516,\"length\":9,\"target\":\"signature\",\"line\":11,\"character\":51}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, `0x${string}`>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, `0x${string}`, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":217,\"length\":9,\"target\":\"signature\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":235,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":248,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":264,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":471,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":484,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":497,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":516,\"length\":9,\"target\":\"signature\",\"line\":11,\"character\":51}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4a6704c7352a9ceaaf6146beb7f693ffe08682774a7f7cf96fbc2a217ec07b0d.json b/site/.cache/twoslash.4a6704c7352a9ceaaf6146beb7f693ffe08682774a7f7cf96fbc2a217ec07b0d.json index 10f3bb3905..6b27d76e7c 100644 --- a/site/.cache/twoslash.4a6704c7352a9ceaaf6146beb7f693ffe08682774a7f7cf96fbc2a217ec07b0d.json +++ b/site/.cache/twoslash.4a6704c7352a9ceaaf6146beb7f693ffe08682774a7f7cf96fbc2a217ec07b0d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":492,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":502,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":513,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":492,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":502,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":513,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":492,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":502,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":513,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account, // [!code ++]\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":492,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":502,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":513,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4b4a3039c158035663ca261f79c013575dad75429e7608cc512727967107e342.json b/site/.cache/twoslash.4b4a3039c158035663ca261f79c013575dad75429e7608cc512727967107e342.json index 712a2b595b..e793646b2e 100644 --- a/site/.cache/twoslash.4b4a3039c158035663ca261f79c013575dad75429e7608cc512727967107e342.json +++ b/site/.cache/twoslash.4b4a3039c158035663ca261f79c013575dad75429e7608cc512727967107e342.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import 'viem/window';\\n\\nconst hash = await window.ethereum.request({\\n method: 'e \\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await window.ethereum.request({\\n method: 'eth_getTransactionByHash',\\n params: [\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 17 more ... | null\",\"start\":29,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":42,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":49,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":58,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"e \\\"\",\"start\":70,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":2},{\"type\":\"completion\",\"start\":80,\"length\":0,\"completions\":[{\"name\":\"eth_blobBaseFee\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_blockNumber\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_chainId\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_coinbase\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_gasPrice\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_maxPriorityFeePerGas\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newBlockFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newPendingTransactionFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_protocolVersion\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_accounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_requestAccounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_syncing\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_supportedEntryPoints\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"e\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 17 more ... | null\",\"start\":99,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":128,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_getTransactionByHash\\\"\",\"start\":140,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2},{\"type\":\"query\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[216,226],[95,110],[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window';\\n\\nconst hash = await window.ethereum.request({\\n method: 'e \\n// ^|\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await window.ethereum.request({\\n method: 'eth_getTransactionByHash',\\n params: [\\n// ^?\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[211],\"positionCompletions\":[93],\"positionHighlights\":[]},\"queries\":[{\"type\":\"query\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"completions\":[{\"type\":\"completion\",\"start\":80,\"length\":0,\"completions\":[{\"name\":\"eth_blobBaseFee\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_blockNumber\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_chainId\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_coinbase\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_gasPrice\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_maxPriorityFeePerGas\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newBlockFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newPendingTransactionFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_protocolVersion\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_accounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_requestAccounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_syncing\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_supportedEntryPoints\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"e\",\"line\":3,\"character\":12}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 17 more ... | null\",\"start\":29,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":42,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":49,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":58,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"e \\\"\",\"start\":70,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 17 more ... | null\",\"start\":99,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":128,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_getTransactionByHash\\\"\",\"start\":140,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import 'viem/window';\\n\\nconst hash = await window.ethereum.request({\\n method: 'e \\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await window.ethereum.request({\\n method: 'eth_getTransactionByHash',\\n params: [\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 18 more ... | null\",\"start\":29,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":42,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":49,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":58,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"e \\\"\",\"start\":70,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":2},{\"type\":\"completion\",\"start\":80,\"length\":0,\"completions\":[{\"name\":\"eth_blobBaseFee\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_blockNumber\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_chainId\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_coinbase\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_gasPrice\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_maxPriorityFeePerGas\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newBlockFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newPendingTransactionFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_protocolVersion\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_accounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_requestAccounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_syncing\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_supportedEntryPoints\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"e\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 18 more ... | null\",\"start\":99,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":128,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_getTransactionByHash\\\"\",\"start\":140,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2},{\"type\":\"query\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[216,226],[95,110],[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window';\\n\\nconst hash = await window.ethereum.request({\\n method: 'e \\n// ^|\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await window.ethereum.request({\\n method: 'eth_getTransactionByHash',\\n params: [\\n// ^?\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[211],\"positionCompletions\":[93],\"positionHighlights\":[]},\"queries\":[{\"type\":\"query\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"completions\":[{\"type\":\"completion\",\"start\":80,\"length\":0,\"completions\":[{\"name\":\"eth_blobBaseFee\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_blockNumber\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_chainId\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_coinbase\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_gasPrice\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_maxPriorityFeePerGas\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newBlockFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_newPendingTransactionFilter\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_protocolVersion\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_accounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_requestAccounts\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_syncing\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]},{\"name\":\"eth_supportedEntryPoints\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":92,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"e\",\"line\":3,\"character\":12}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 18 more ... | null\",\"start\":29,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":42,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":49,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":58,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"e \\\"\",\"start\":70,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: string | boolean | void | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | RpcLog[] | ... 18 more ... | null\",\"start\":99,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":128,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_getTransactionByHash\\\"\",\"start\":140,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [hash: `0x${string}`]\",\"start\":178,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4b566c1649980041ffb5a48ee5e0bd816f61e9d91464eb063aa45b83c4a22810.json b/site/.cache/twoslash.4b566c1649980041ffb5a48ee5e0bd816f61e9d91464eb063aa45b83c4a22810.json new file mode 100644 index 0000000000..de833a9de3 --- /dev/null +++ b/site/.cache/twoslash.4b566c1649980041ffb5a48ee5e0bd816f61e9d91464eb063aa45b83c4a22810.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect()\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"tag\",\"name\":\"log\",\"start\":91,\"length\":0,\"text\":\"[{\",\"line\":3,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":92,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":93,\"length\":0,\"text\":\" capabilities: {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":94,\"length\":0,\"text\":\" unstable_subAccounts: [{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":95,\"length\":0,\"text\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":96,\"length\":0,\"text\":\" }],\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":97,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":98,\"length\":0,\"text\":\"}]\",\"line\":11,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[713,725],[698,712],[680,697],[609,679],[570,608],[542,569],[475,541],[462,474],[0,371]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[{\",\"start\":462,\"end\":474},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"start\":475,\"end\":541},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" capabilities: {\",\"start\":542,\"end\":569},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" unstable_subAccounts: [{\",\"start\":570,\"end\":608},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"start\":609,\"end\":679},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }],\",\"start\":680,\"end\":697},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":698,\"end\":712},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}]\",\"start\":713,\"end\":725}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect()\\n// @log: [{\\n\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n\\n// @log: capabilities: {\\n\\n// @log: unstable_subAccounts: [{\\n\\n// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\\n\\n// @log: }],\\n\\n// @log: },\\n\\n// @log: }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":91,\"length\":0,\"text\":\"[{\",\"line\":3,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":92,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":93,\"length\":0,\"text\":\" capabilities: {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":94,\"length\":0,\"text\":\" unstable_subAccounts: [{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":95,\"length\":0,\"text\":\" address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":96,\"length\":0,\"text\":\" }],\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":97,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":98,\"length\":0,\"text\":\"}]\",\"line\":11,\"character\":0}]}}" diff --git a/site/.cache/twoslash.4b7a4926b037075aeb69eca6532d918c644a2c342da5ce5c0ad2c2c32fd5ec42.json b/site/.cache/twoslash.4b7a4926b037075aeb69eca6532d918c644a2c342da5ce5c0ad2c2c32fd5ec42.json index 165c29c409..847c0596d2 100644 --- a/site/.cache/twoslash.4b7a4926b037075aeb69eca6532d918c644a2c342da5ce5c0ad2c2c32fd5ec42.json +++ b/site/.cache/twoslash.4b7a4926b037075aeb69eca6532d918c644a2c342da5ce5c0ad2c2c32fd5ec42.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 60_000, // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in milliseconds) to wait before stopping polling.\",\"tags\":[[\"default\",\"180_000\"]],\"start\":155,\"length\":7,\"target\":\"timeout\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 60_000, // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in milliseconds) to wait before stopping polling.\",\"tags\":[[\"default\",\"180_000\"]],\"start\":155,\"length\":7,\"target\":\"timeout\",\"line\":3,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 60_000, // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in milliseconds) to wait before stopping polling.\",\"tags\":[[\"default\",\"180_000\"]],\"start\":155,\"length\":7,\"target\":\"timeout\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 60_000, // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in milliseconds) to wait before stopping polling.\",\"tags\":[[\"default\",\"180_000\"]],\"start\":155,\"length\":7,\"target\":\"timeout\",\"line\":3,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4ba1b33a402f772050cad1eb22ef5388428f79adeea2eb8b8fd24dd11b4c6319.json b/site/.cache/twoslash.4ba1b33a402f772050cad1eb22ef5388428f79adeea2eb8b8fd24dd11b4c6319.json deleted file mode 100644 index 780b542df5..0000000000 --- a/site/.cache/twoslash.4ba1b33a402f772050cad1eb22ef5388428f79adeea2eb8b8fd24dd11b4c6319.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":48,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":59,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":72,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":106,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":190,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":225,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":251,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":48,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":59,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":72,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":106,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":190,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":225,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":251,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4bc201e17c2d9d36992858bea0d43115196950a31f1e5f686142cc24c4b716d6.json b/site/.cache/twoslash.4bc201e17c2d9d36992858bea0d43115196950a31f1e5f686142cc24c4b716d6.json index 53ef462894..2f8a21b0e1 100644 --- a/site/.cache/twoslash.4bc201e17c2d9d36992858bea0d43115196950a31f1e5f686142cc24c4b716d6.json +++ b/site/.cache/twoslash.4bc201e17c2d9d36992858bea0d43115196950a31f1e5f686142cc24c4b716d6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":48,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":74,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":48,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":74,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":48,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":74,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":48,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":74,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4c13454b46385276e262127e059ff5da941130a40a3abe1da0820be0becf4685.json b/site/.cache/twoslash.4c13454b46385276e262127e059ff5da941130a40a3abe1da0820be0becf4685.json new file mode 100644 index 0000000000..6176cc6d2c --- /dev/null +++ b/site/.cache/twoslash.4c13454b46385276e262127e059ff5da941130a40a3abe1da0820be0becf4685.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7846Actions(): (client: Client) => Erc7846Actions\\nimport erc7846Actions\",\"docs\":\"A suite of ERC-7846 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":97,\"length\":14,\"target\":\"erc7846Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7846Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7846Actions(): (client: Client) => Erc7846Actions\\nimport erc7846Actions\",\"docs\":\"A suite of ERC-7846 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":256,\"length\":14,\"target\":\"erc7846Actions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7846Actions(): (client: Client) => Erc7846Actions\\nimport erc7846Actions\",\"docs\":\"A suite of ERC-7846 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":97,\"length\":14,\"target\":\"erc7846Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7846Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7846Actions(): (client: Client) => Erc7846Actions\\nimport erc7846Actions\",\"docs\":\"A suite of ERC-7846 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":256,\"length\":14,\"target\":\"erc7846Actions\",\"line\":7,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4c1f49c8e4b31580a3fe8e1b677743e2c14f93c442926056c894bc08f13699e0.json b/site/.cache/twoslash.4c1f49c8e4b31580a3fe8e1b677743e2c14f93c442926056c894bc08f13699e0.json index 2259209d86..99371fd595 100644 --- a/site/.cache/twoslash.4c1f49c8e4b31580a3fe8e1b677743e2c14f93c442926056c894bc08f13699e0.json +++ b/site/.cache/twoslash.4c1f49c8e4b31580a3fe8e1b677743e2c14f93c442926056c894bc08f13699e0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH', // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH', // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH', // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH', // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":159,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4c2c6b7c2b3c90830c1a5e96f743423c28bdbb1043d98ec5b415bc208cb2a5a1.json b/site/.cache/twoslash.4c2c6b7c2b3c90830c1a5e96f743423c28bdbb1043d98ec5b415bc208cb2a5a1.json new file mode 100644 index 0000000000..4e32a81461 --- /dev/null +++ b/site/.cache/twoslash.4c2c6b7c2b3c90830c1a5e96f743423c28bdbb1043d98ec5b415bc208cb2a5a1.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7895Actions(): (client: Client) => Erc7895Actions\\nimport erc7895Actions\",\"docs\":\"A suite of ERC-7895 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":97,\"length\":14,\"target\":\"erc7895Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7895Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7895Actions(): (client: Client) => Erc7895Actions\\nimport erc7895Actions\",\"docs\":\"A suite of ERC-7895 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":256,\"length\":14,\"target\":\"erc7895Actions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7895Actions(): (client: Client) => Erc7895Actions\\nimport erc7895Actions\",\"docs\":\"A suite of ERC-7895 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":97,\"length\":14,\"target\":\"erc7895Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":153,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":168,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":191,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":198,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":209,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":220,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":227,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":234,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7895Actions) => Client<...>\",\"start\":249,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7895Actions(): (client: Client) => Erc7895Actions\\nimport erc7895Actions\",\"docs\":\"A suite of ERC-7895 Wallet Actions.\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":256,\"length\":14,\"target\":\"erc7895Actions\",\"line\":7,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4c58d4ec6d269952c04ff5fb603d7a2537cd6518155b4aefee82bc974277cdf5.json b/site/.cache/twoslash.4c58d4ec6d269952c04ff5fb603d7a2537cd6518155b4aefee82bc974277cdf5.json deleted file mode 100644 index 75546e4821..0000000000 --- a/site/.cache/twoslash.4c58d4ec6d269952c04ff5fb603d7a2537cd6518155b4aefee82bc974277cdf5.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { verifyAuthorization } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":9,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":82,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":120,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":142,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":155,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":247,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":261,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":302,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":311,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":324,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":332,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,410]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":9,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":82,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":120,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":142,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":155,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":177,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":247,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":261,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":302,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":311,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":324,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":332,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":360,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4c61e328da3134c9032ddbe5f0dd1ba48906b03a3729d19755837308e5195415.json b/site/.cache/twoslash.4c61e328da3134c9032ddbe5f0dd1ba48906b03a3729d19755837308e5195415.json index f891b781a5..7c692f6dfb 100644 --- a/site/.cache/twoslash.4c61e328da3134c9032ddbe5f0dd1ba48906b03a3729d19755837308e5195415.json +++ b/site/.cache/twoslash.4c61e328da3134c9032ddbe5f0dd1ba48906b03a3729d19755837308e5195415.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":36,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":74,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":81,\"length\":7,\"target\":\"foundry\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":92,\"length\":4,\"target\":\"mode\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":109,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":120,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":36,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":74,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":81,\"length\":7,\"target\":\"foundry\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":92,\"length\":4,\"target\":\"mode\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":109,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":120,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":36,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":74,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":81,\"length\":7,\"target\":\"foundry\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":92,\"length\":4,\"target\":\"mode\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":109,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":120,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":36,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":74,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":81,\"length\":7,\"target\":\"foundry\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":92,\"length\":4,\"target\":\"mode\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":109,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":120,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4cd7c18e6ce38b6887feead98562fa1228ebbaad127c52e978742d8d14b888ed.json b/site/.cache/twoslash.4cd7c18e6ce38b6887feead98562fa1228ebbaad127c52e978742d8d14b888ed.json index 826add5a53..5e7b5e4edd 100644 --- a/site/.cache/twoslash.4cd7c18e6ce38b6887feead98562fa1228ebbaad127c52e978742d8d14b888ed.json +++ b/site/.cache/twoslash.4cd7c18e6ce38b6887feead98562fa1228ebbaad127c52e978742d8d14b888ed.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses() // [!code focus:10]\\n// or: const [address] = await client.requestAddresses() // [!code focus:10]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":192,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":209,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":216,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses() // [!code focus:10]\\n// or: const [address] = await client.requestAddresses() // [!code focus:10]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":192,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":209,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":216,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses() // [!code focus:10]\\n// or: const [address] = await client.requestAddresses() // [!code focus:10]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":192,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":209,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":216,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\nconst [address] = await client.getAddresses() // [!code focus:10]\\n// or: const [address] = await client.requestAddresses() // [!code focus:10]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":192,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":7},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":209,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":216,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":31}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4db0fd1601dd264379bdbb9a2056026124728478aaf4f4e8c355bdcc3f31f23a.json b/site/.cache/twoslash.4db0fd1601dd264379bdbb9a2056026124728478aaf4f4e8c355bdcc3f31f23a.json index ca0ea30fd7..c33513cdef 100644 --- a/site/.cache/twoslash.4db0fd1601dd264379bdbb9a2056026124728478aaf4f4e8c355bdcc3f31f23a.json +++ b/site/.cache/twoslash.4db0fd1601dd264379bdbb9a2056026124728478aaf4f4e8c355bdcc3f31f23a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { // [!code focus]\\n createBundlerClient, // [!code focus]\\n toCoinbaseSmartAccount // [!code focus]\\n} from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code focus]\\n client, // [!code focus]\\n owners: [owner] // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":76,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":116,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":216,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":254,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":304,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":313,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":336,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":343,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":383,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":399,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":423,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":433,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":444,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":498,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":506,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":542,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":558,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":602,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":629,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":638,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { // [!code focus]\\n createBundlerClient, // [!code focus]\\n toCoinbaseSmartAccount // [!code focus]\\n} from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code focus]\\n client, // [!code focus]\\n owners: [owner] // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":76,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":116,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":216,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":254,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":304,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":313,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":336,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":343,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":383,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":399,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":423,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":433,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":444,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":498,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":506,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":542,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":558,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":602,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":629,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":638,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { // [!code focus]\\n createBundlerClient, // [!code focus]\\n toCoinbaseSmartAccount // [!code focus]\\n} from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code focus]\\n client, // [!code focus]\\n owners: [owner] // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":76,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":116,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":216,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":254,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":304,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":313,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":336,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":343,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":383,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":399,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":423,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":433,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":444,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":498,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":506,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":542,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":558,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":602,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":629,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":638,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { // [!code focus]\\n createBundlerClient, // [!code focus]\\n toCoinbaseSmartAccount // [!code focus]\\n} from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code focus]\\n client, // [!code focus]\\n owners: [owner] // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":76,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":116,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":216,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":254,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":304,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":313,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":336,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":343,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":354,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":365,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":383,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":399,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":423,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":433,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":444,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":498,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":506,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":542,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":558,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":602,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":629,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":638,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4de509e10b5d2c0720e19d02736c8595429a8b5c8de00c1e482db98ef0990649.json b/site/.cache/twoslash.4de509e10b5d2c0720e19d02736c8595429a8b5c8de00c1e482db98ef0990649.json index c17ca097ac..99f32391d0 100644 --- a/site/.cache/twoslash.4de509e10b5d2c0720e19d02736c8595429a8b5c8de00c1e482db98ef0990649.json +++ b/site/.cache/twoslash.4de509e10b5d2c0720e19d02736c8595429a8b5c8de00c1e482db98ef0990649.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onTransactions: transactions => console.log(transactions),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":210,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":245,\"length\":14,\"target\":\"onTransactions\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":261,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":277,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":36},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":285,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":44},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":289,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":308,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onTransactions: transactions => console.log(transactions),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":210,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":245,\"length\":14,\"target\":\"onTransactions\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":261,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":277,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":36},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":285,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":44},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":289,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":308,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onTransactions: transactions => console.log(transactions),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":210,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":245,\"length\":14,\"target\":\"onTransactions\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":261,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":277,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":36},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":285,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":44},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":289,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":308,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onTransactions: transactions => console.log(transactions),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":210,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":245,\"length\":14,\"target\":\"onTransactions\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":261,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":277,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":36},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":285,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":44},{\"type\":\"hover\",\"text\":\"(parameter) transactions: OnTransactionsParameter\",\"start\":289,\"length\":12,\"target\":\"transactions\",\"line\":10,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":308,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.4e755423298463f89e7d4f1fcc1bda27a69a29262a77a5a0de064c04faccd675.json b/site/.cache/twoslash.4e755423298463f89e7d4f1fcc1bda27a69a29262a77a5a0de064c04faccd675.json index 2daa86b13d..298d43e9ab 100644 --- a/site/.cache/twoslash.4e755423298463f89e7d4f1fcc1bda27a69a29262a77a5a0de064c04faccd675.json +++ b/site/.cache/twoslash.4e755423298463f89e7d4f1fcc1bda27a69a29262a77a5a0de064c04faccd675.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gasPrice: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":122,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":132,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":220,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":227,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gasPrice: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":122,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":132,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":220,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":227,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gasPrice: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":122,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":132,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":220,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":227,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gasPrice: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":122,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":132,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":220,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":227,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.50b429bb11cf96fa3979ca88684959788948204f83158427b4f24442f7897a16.json b/site/.cache/twoslash.50b429bb11cf96fa3979ca88684959788948204f83158427b4f24442f7897a16.json deleted file mode 100644 index dc4e64d8a3..0000000000 --- a/site/.cache/twoslash.50b429bb11cf96fa3979ca88684959788948204f83158427b4f24442f7897a16.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":265,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.522e6937111e695336b14728ccdcf81dd947eb4bfe94995c2bf079e33ffd0d5f.json b/site/.cache/twoslash.522e6937111e695336b14728ccdcf81dd947eb4bfe94995c2bf079e33ffd0d5f.json index c4d7cdbee7..f41d97b443 100644 --- a/site/.cache/twoslash.522e6937111e695336b14728ccdcf81dd947eb4bfe94995c2bf079e33ffd0d5f.json +++ b/site/.cache/twoslash.522e6937111e695336b14728ccdcf81dd947eb4bfe94995c2bf079e33ffd0d5f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":112,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":135,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":224,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":231,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":285,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":314,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":344,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":112,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":135,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":224,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":231,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":285,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":314,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":344,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":112,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":135,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":224,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":231,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":285,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":314,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":344,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":112,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":135,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":224,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":231,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":285,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":314,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":344,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.528b44bc99bf989e07b380b1bbaaea38dc47e19f2c6b5f16d3576ad33b5b41d1.json b/site/.cache/twoslash.528b44bc99bf989e07b380b1bbaaea38dc47e19f2c6b5f16d3576ad33b5b41d1.json index 4f70b980a0..c688779f7a 100644 --- a/site/.cache/twoslash.528b44bc99bf989e07b380b1bbaaea38dc47e19f2c6b5f16d3576ad33b5b41d1.json +++ b/site/.cache/twoslash.528b44bc99bf989e07b380b1bbaaea38dc47e19f2c6b5f16d3576ad33b5b41d1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":74,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":74,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":74,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":74,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.52fafb3e1f1d64835e875466cb038b31da14256d39757b365c4b7e67959d1be7.json b/site/.cache/twoslash.52fafb3e1f1d64835e875466cb038b31da14256d39757b365c4b7e67959d1be7.json deleted file mode 100644 index 4d786b463c..0000000000 --- a/site/.cache/twoslash.52fafb3e1f1d64835e875466cb038b31da14256d39757b365c4b7e67959d1be7.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":71,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":71,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.531d8b2567ae5687d1587da6a4301004743db356800138bc78910eff7f739ab1.json b/site/.cache/twoslash.531d8b2567ae5687d1587da6a4301004743db356800138bc78910eff7f739ab1.json index 9e50575594..ec000f56c1 100644 --- a/site/.cache/twoslash.531d8b2567ae5687d1587da6a4301004743db356800138bc78910eff7f739ab1.json +++ b/site/.cache/twoslash.531d8b2567ae5687d1587da6a4301004743db356800138bc78910eff7f739ab1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc') // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":222,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":229,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":240,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":251,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":268,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":284,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":325,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":352,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":363,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc') // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":222,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":229,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":240,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":251,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":268,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":284,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":325,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":352,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":363,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc') // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":222,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":229,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":240,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":251,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":268,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":284,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":325,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":352,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":363,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains' // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc') // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":222,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":229,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":240,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":251,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":268,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":284,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":325,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":352,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":363,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.53ae7886ee0ab13f55b35c6f592f9bb6130abd76b8a427f20101964bbf71c262.json b/site/.cache/twoslash.53ae7886ee0ab13f55b35c6f592f9bb6130abd76b8a427f20101964bbf71c262.json deleted file mode 100644 index 528d8eef93..0000000000 --- a/site/.cache/twoslash.53ae7886ee0ab13f55b35c6f592f9bb6130abd76b8a427f20101964bbf71c262.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":92,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":137,\"length\":5,\"target\":\"anvil\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":146,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":157,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":92,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":137,\"length\":5,\"target\":\"anvil\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":146,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":157,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.53f1eaa4c999076db7ac42516c059ca55e018c3a0bf3e1692a10ad566c88381f.json b/site/.cache/twoslash.53f1eaa4c999076db7ac42516c059ca55e018c3a0bf3e1692a10ad566c88381f.json index 6360a3ccaa..ddd638af36 100644 --- a/site/.cache/twoslash.53f1eaa4c999076db7ac42516c059ca55e018c3a0bf3e1692a10ad566c88381f.json +++ b/site/.cache/twoslash.53f1eaa4c999076db7ac42516c059ca55e018c3a0bf3e1692a10ad566c88381f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":55,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":91,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":100,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":121,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":128,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":139,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":55,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":91,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":100,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":121,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":128,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":139,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":55,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":91,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":100,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":121,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":128,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":139,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":55,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":91,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":100,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":121,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":128,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":139,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.54134afe199f9cc28ecb2c85a72b0ceef63fa099a73a0a45432d4952de89770a.json b/site/.cache/twoslash.54134afe199f9cc28ecb2c85a72b0ceef63fa099a73a0a45432d4952de89770a.json index ff7b4887f1..cfd2d28680 100644 --- a/site/.cache/twoslash.54134afe199f9cc28ecb2c85a72b0ceef63fa099a73a0a45432d4952de89770a.json +++ b/site/.cache/twoslash.54134afe199f9cc28ecb2c85a72b0ceef63fa099a73a0a45432d4952de89770a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5450618c78f9912ecd7d44323b4a90846b378040617616ba565833f5e836a6ac.json b/site/.cache/twoslash.5450618c78f9912ecd7d44323b4a90846b378040617616ba565833f5e836a6ac.json index 6cf6b189ac..e4efc362ad 100644 --- a/site/.cache/twoslash.5450618c78f9912ecd7d44323b4a90846b378040617616ba565833f5e836a6ac.json +++ b/site/.cache/twoslash.5450618c78f9912ecd7d44323b4a90846b378040617616ba565833f5e836a6ac.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, {\\n ...;\\n}, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,442]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & ... 1 more ... & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, {\\n ...;\\n}, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"any\",\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: string\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: any\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"any\",\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: any[]\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,442]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions, erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(eip7702Actions())\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"any\",\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress: string\",\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: any\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: any\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"any\",\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: any[]\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: any\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.558d3c7c270d37cdd74b1bd4ad3c812e4da29b508e5f6a51c5f6cb0b995605de.json b/site/.cache/twoslash.558d3c7c270d37cdd74b1bd4ad3c812e4da29b508e5f6a51c5f6cb0b995605de.json index 776e975856..7a45324096 100644 --- a/site/.cache/twoslash.558d3c7c270d37cdd74b1bd4ad3c812e4da29b508e5f6a51c5f6cb0b995605de.json +++ b/site/.cache/twoslash.558d3c7c270d37cdd74b1bd4ad3c812e4da29b508e5f6a51c5f6cb0b995605de.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.56548a7f9c66932d3aa8f192b510b21d00c03b3fb8b9f550260f42fe7df2c166.json b/site/.cache/twoslash.56548a7f9c66932d3aa8f192b510b21d00c03b3fb8b9f550260f42fe7df2c166.json index 5aa9dfd774..a077b4b7d4 100644 --- a/site/.cache/twoslash.56548a7f9c66932d3aa8f192b510b21d00c03b3fb8b9f550260f42fe7df2c166.json +++ b/site/.cache/twoslash.56548a7f9c66932d3aa8f192b510b21d00c03b3fb8b9f550260f42fe7df2c166.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":61,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":100,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":61,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":100,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":61,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":100,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":61,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":100,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.56e1c448eb0f8ec0ae2635649d6af84221096b8c674fb9b41dc5b2c7d50f36f6.json b/site/.cache/twoslash.56e1c448eb0f8ec0ae2635649d6af84221096b8c674fb9b41dc5b2c7d50f36f6.json deleted file mode 100644 index 65f2b8ec60..0000000000 --- a/site/.cache/twoslash.56e1c448eb0f8ec0ae2635649d6af84221096b8c674fb9b41dc5b2c7d50f36f6.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const status: \\\"PENDING\\\" | \\\"CONFIRMED\\\"\",\"start\":50,\"length\":6,\"target\":\"status\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const receipts: WalletCallReceipt[] | undefined\",\"start\":58,\"length\":8,\"target\":\"receipts\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) getCallsStatus: (parameters: GetCallsStatusParameters) => Promise\",\"docs\":\"Returns the status of a call batch that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Status of the calls. {@link GetCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":90,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { status, receipts } = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const status: \\\"PENDING\\\" | \\\"CONFIRMED\\\"\",\"start\":50,\"length\":6,\"target\":\"status\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const receipts: WalletCallReceipt[] | undefined\",\"start\":58,\"length\":8,\"target\":\"receipts\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":77,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) getCallsStatus: (parameters: GetCallsStatusParameters) => Promise\",\"docs\":\"Returns the status of a call batch that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Status of the calls. {@link GetCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":90,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5725b4463b2af22035376074ce7132a0a517ef4cd45438a0a1275d4f5e1b5baa.json b/site/.cache/twoslash.5725b4463b2af22035376074ce7132a0a517ef4cd45438a0a1275d4f5e1b5baa.json index f8c83687fe..2e6f054278 100644 --- a/site/.cache/twoslash.5725b4463b2af22035376074ce7132a0a517ef4cd45438a0a1275d4f5e1b5baa.json +++ b/site/.cache/twoslash.5725b4463b2af22035376074ce7132a0a517ef4cd45438a0a1275d4f5e1b5baa.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":87,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":105,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":118,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":156,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":166,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":175,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":198,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":227,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":246,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":311,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":323,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":342,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":407,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":87,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":105,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":118,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":156,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":166,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":175,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":198,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":227,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":246,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":311,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":323,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":342,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":407,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":87,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":105,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":118,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":156,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":166,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":175,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":198,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":227,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":246,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":311,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":323,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":342,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":407,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { domain, types } from './data'\\n \\nconst signature = await walletClient.signTypedData({ // [!code focus:99]\\n domain,\\n types,\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import domain\",\"start\":49,\"length\":6,\"target\":\"domain\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import types\",\"start\":57,\"length\":5,\"target\":\"types\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":87,\"length\":9,\"target\":\"signature\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":105,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: (parameters: SignTypedDataParameters) => Promise (+1 overload)\",\"start\":118,\"length\":13,\"target\":\"signTypedData\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) domain?: any\",\"start\":156,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) types: any\",\"start\":166,\"length\":5,\"target\":\"types\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) primaryType: any\",\"start\":175,\"length\":11,\"target\":\"primaryType\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: any\",\"start\":198,\"length\":7,\"target\":\"message\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: string;\\n}\",\"start\":213,\"length\":4,\"target\":\"from\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":227,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":246,\"length\":6,\"target\":\"wallet\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: string;\\n}\",\"start\":311,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":323,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: string\",\"start\":342,\"length\":6,\"target\":\"wallet\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":407,\"length\":8,\"target\":\"contents\",\"line\":16,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.57bc85ca7782ee99a4d6cfcd53b1a7dcfcb3364d5e5713e381df23a9ccd89afc.json b/site/.cache/twoslash.57bc85ca7782ee99a4d6cfcd53b1a7dcfcb3364d5e5713e381df23a9ccd89afc.json index 8c7da1653a..6c17639c0f 100644 --- a/site/.cache/twoslash.57bc85ca7782ee99a4d6cfcd53b1a7dcfcb3364d5e5713e381df23a9ccd89afc.json +++ b/site/.cache/twoslash.57bc85ca7782ee99a4d6cfcd53b1a7dcfcb3364d5e5713e381df23a9ccd89afc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.getUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":126,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[779,790],[748,778],[732,747],[666,731],[630,665],[537,629],[525,536],[0,321]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":525,\"end\":536},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":537,\"end\":629},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":630,\"end\":665},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":666,\"end\":731},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":732,\"end\":747},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":748,\"end\":778},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":779,\"end\":790}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.getUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":126,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.getUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":126,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[779,790],[748,778],[732,747],[666,731],[630,665],[537,629],[525,536],[0,321]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":525,\"end\":536},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":537,\"end\":629},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":630,\"end\":665},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":666,\"end\":731},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":732,\"end\":747},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":748,\"end\":778},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":779,\"end\":790}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.getUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":126,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.58760036a5e413fa734874132fd59f1025411deabf3575b7119a7ff1aaeaf736.json b/site/.cache/twoslash.58760036a5e413fa734874132fd59f1025411deabf3575b7119a7ff1aaeaf736.json deleted file mode 100644 index 6779b8bf5f..0000000000 --- a/site/.cache/twoslash.58760036a5e413fa734874132fd59f1025411deabf3575b7119a7ff1aaeaf736.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":145,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":211,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":255,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":270,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":304,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":311,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":320,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":331,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":342,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":349,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":145,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":211,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":255,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":270,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":304,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":311,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":320,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":331,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":342,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":349,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.58c7fac8734a28d074c3aafa1842b7bdb1bbf45795afa4d2465bd6607bff7051.json b/site/.cache/twoslash.58c7fac8734a28d074c3aafa1842b7bdb1bbf45795afa4d2465bd6607bff7051.json index b0fed20f44..08a3352e28 100644 --- a/site/.cache/twoslash.58c7fac8734a28d074c3aafa1842b7bdb1bbf45795afa4d2465bd6607bff7051.json +++ b/site/.cache/twoslash.58c7fac8734a28d074c3aafa1842b7bdb1bbf45795afa4d2465bd6607bff7051.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":162,\"length\":3,\"target\":\"raw\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":218,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":162,\"length\":3,\"target\":\"raw\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":218,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":162,\"length\":3,\"target\":\"raw\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":218,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":162,\"length\":3,\"target\":\"raw\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":218,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5a4bac681224f11b27fee8a480358ddb975bf8a36625ce64a93da309c4e97172.json b/site/.cache/twoslash.5a4bac681224f11b27fee8a480358ddb975bf8a36625ce64a93da309c4e97172.json index a0566c8f32..94fce24b39 100644 --- a/site/.cache/twoslash.5a4bac681224f11b27fee8a480358ddb975bf8a36625ce64a93da309c4e97172.json +++ b/site/.cache/twoslash.5a4bac681224f11b27fee8a480358ddb975bf8a36625ce64a93da309c4e97172.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":137,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":137,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":137,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":137,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5b0cda1939c6dd4533c209c05849f0aa89b8b0803274f007c7e3b8e75e84518a.json b/site/.cache/twoslash.5b0cda1939c6dd4533c209c05849f0aa89b8b0803274f007c7e3b8e75e84518a.json deleted file mode 100644 index 868d463d48..0000000000 --- a/site/.cache/twoslash.5b0cda1939c6dd4533c209c05849f0aa89b8b0803274f007c7e3b8e75e84518a.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":202,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":224,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":237,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":357,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":370,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: any;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: any;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":383,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":403,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: any\",\"start\":441,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":447,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":472,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":481,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":546,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":568,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":628,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":635,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":687,\"length\":4,\"target\":\"data\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":709,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":770,\"length\":5,\"target\":\"value\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":777,\"length\":10,\"target\":\"parseEther\",\"line\":25,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":835,\"length\":2,\"target\":\"to\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":839,\"length\":12,\"target\":\"walletClient\",\"line\":30,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":852,\"length\":7,\"target\":\"account\",\"line\":30,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":860,\"length\":7,\"target\":\"address\",\"line\":30,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\n// 1. Authorize injection of the Contract's bytecode into our Account.\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\n// 2. Invoke the Contract's `execute` function to perform batch calls.\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }, \\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":202,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":224,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":237,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":357,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":370,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: any;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: any;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":383,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":403,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: any\",\"start\":441,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":447,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":472,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":481,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":546,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":568,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":628,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":635,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":687,\"length\":4,\"target\":\"data\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":709,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":770,\"length\":5,\"target\":\"value\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":777,\"length\":10,\"target\":\"parseEther\",\"line\":25,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":835,\"length\":2,\"target\":\"to\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":839,\"length\":12,\"target\":\"walletClient\",\"line\":30,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":852,\"length\":7,\"target\":\"account\",\"line\":30,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":860,\"length\":7,\"target\":\"address\",\"line\":30,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5b5f81f94e88e7018269c4dbad53c9577e004efc41e3ed09862064970c42499f.json b/site/.cache/twoslash.5b5f81f94e88e7018269c4dbad53c9577e004efc41e3ed09862064970c42499f.json index 1f42b82e57..14bf9c6985 100644 --- a/site/.cache/twoslash.5b5f81f94e88e7018269c4dbad53c9577e004efc41e3ed09862064970c42499f.json +++ b/site/.cache/twoslash.5b5f81f94e88e7018269c4dbad53c9577e004efc41e3ed09862064970c42499f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":77,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":87,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":93,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":101,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":205,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":216,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":223,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":230,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":77,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":87,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":93,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":101,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":205,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":216,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":223,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":230,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":77,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":87,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":93,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":101,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":205,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":216,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":223,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":230,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":77,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":87,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":93,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":101,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":205,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":216,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":223,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":230,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5bf79b0f146e1f2ce159b827e0ed5d2c7e62e9ff452f20cbb29b61af6d61d1f9.json b/site/.cache/twoslash.5bf79b0f146e1f2ce159b827e0ed5d2c7e62e9ff452f20cbb29b61af6d61d1f9.json index d77906b51e..c38759872d 100644 --- a/site/.cache/twoslash.5bf79b0f146e1f2ce159b827e0ed5d2c7e62e9ff452f20cbb29b61af6d61d1f9.json +++ b/site/.cache/twoslash.5bf79b0f146e1f2ce159b827e0ed5d2c7e62e9ff452f20cbb29b61af6d61d1f9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5cccabadae1d1267e51afc895ecb6b82240edf5eebef0c4f0fecb376f97fdd80.json b/site/.cache/twoslash.5cccabadae1d1267e51afc895ecb6b82240edf5eebef0c4f0fecb376f97fdd80.json deleted file mode 100644 index 4eafb7da6d..0000000000 --- a/site/.cache/twoslash.5cccabadae1d1267e51afc895ecb6b82240edf5eebef0c4f0fecb376f97fdd80.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,519]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/experimental'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5ccdd6726adb794d183c185469c78b510ebc7b98e9bd8e34c3e7107b5a433c04.json b/site/.cache/twoslash.5ccdd6726adb794d183c185469c78b510ebc7b98e9bd8e34c3e7107b5a433c04.json index a79f3f8e2f..ae5c679d87 100644 --- a/site/.cache/twoslash.5ccdd6726adb794d183c185469c78b510ebc7b98e9bd8e34c3e7107b5a433c04.json +++ b/site/.cache/twoslash.5ccdd6726adb794d183c185469c78b510ebc7b98e9bd8e34c3e7107b5a433c04.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent(publicClient, {\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: { // [!code focus:8]\\n name: 'Transfer', \\n inputs: [\\n { type: 'address', indexed: true, name: 'from' },\\n { type: 'address', indexed: true, name: 'to' },\\n { type: 'uint256', indexed: false, name: 'value' }\\n ] \\n },\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":70,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":81,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":99,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n name: string;\\n inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n }[];\\n}\",\"start\":156,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":188,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n}[]\",\"start\":211,\"length\":6,\"target\":\"inputs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":229,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":246,\"length\":7,\"target\":\"indexed\",\"line\":7,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":261,\"length\":4,\"target\":\"name\",\"line\":7,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":302,\"length\":7,\"target\":\"indexed\",\"line\":8,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":317,\"length\":4,\"target\":\"name\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":339,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":356,\"length\":7,\"target\":\"indexed\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":372,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) onLogs: (logs: any) => void\",\"start\":402,\"length\":6,\"target\":\"onLogs\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":410,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":418,\"length\":7,\"target\":\"console\",\"line\":12,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":426,\"length\":3,\"target\":\"log\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":430,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1044]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent(publicClient, {\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: { // [!code focus:8]\\n name: 'Transfer', \\n inputs: [\\n { type: 'address', indexed: true, name: 'from' },\\n { type: 'address', indexed: true, name: 'to' },\\n { type: 'uint256', indexed: false, name: 'value' }\\n ] \\n },\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":70,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":81,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":99,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n name: string;\\n inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n }[];\\n}\",\"start\":156,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":188,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n}[]\",\"start\":211,\"length\":6,\"target\":\"inputs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":229,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":246,\"length\":7,\"target\":\"indexed\",\"line\":7,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":261,\"length\":4,\"target\":\"name\",\"line\":7,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":302,\"length\":7,\"target\":\"indexed\",\"line\":8,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":317,\"length\":4,\"target\":\"name\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":339,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":356,\"length\":7,\"target\":\"indexed\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":372,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) onLogs: (logs: any) => void\",\"start\":402,\"length\":6,\"target\":\"onLogs\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":410,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":418,\"length\":7,\"target\":\"console\",\"line\":12,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":426,\"length\":3,\"target\":\"log\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":430,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":30}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent(publicClient, {\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: { // [!code focus:8]\\n name: 'Transfer', \\n inputs: [\\n { type: 'address', indexed: true, name: 'from' },\\n { type: 'address', indexed: true, name: 'to' },\\n { type: 'uint256', indexed: false, name: 'value' }\\n ] \\n },\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":70,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":81,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":99,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n name: string;\\n inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n }[];\\n}\",\"start\":156,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":188,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n}[]\",\"start\":211,\"length\":6,\"target\":\"inputs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":229,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":246,\"length\":7,\"target\":\"indexed\",\"line\":7,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":261,\"length\":4,\"target\":\"name\",\"line\":7,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":302,\"length\":7,\"target\":\"indexed\",\"line\":8,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":317,\"length\":4,\"target\":\"name\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":339,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":356,\"length\":7,\"target\":\"indexed\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":372,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) onLogs: (logs: any) => void\",\"start\":402,\"length\":6,\"target\":\"onLogs\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":410,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":418,\"length\":7,\"target\":\"console\",\"line\":12,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":426,\"length\":3,\"target\":\"log\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":430,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1044]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent(publicClient, {\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: { // [!code focus:8]\\n name: 'Transfer', \\n inputs: [\\n { type: 'address', indexed: true, name: 'from' },\\n { type: 'address', indexed: true, name: 'to' },\\n { type: 'uint256', indexed: false, name: 'value' }\\n ] \\n },\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":70,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":81,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":99,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n name: string;\\n inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n }[];\\n}\",\"start\":156,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":188,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) inputs: {\\n type: string;\\n indexed: boolean;\\n name: string;\\n}[]\",\"start\":211,\"length\":6,\"target\":\"inputs\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":229,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":246,\"length\":7,\"target\":\"indexed\",\"line\":7,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":261,\"length\":4,\"target\":\"name\",\"line\":7,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":302,\"length\":7,\"target\":\"indexed\",\"line\":8,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":317,\"length\":4,\"target\":\"name\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type: string\",\"start\":339,\"length\":4,\"target\":\"type\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) indexed: boolean\",\"start\":356,\"length\":7,\"target\":\"indexed\",\"line\":9,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":372,\"length\":4,\"target\":\"name\",\"line\":9,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) onLogs: (logs: any) => void\",\"start\":402,\"length\":6,\"target\":\"onLogs\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":410,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":418,\"length\":7,\"target\":\"console\",\"line\":12,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":426,\"length\":3,\"target\":\"log\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: any\",\"start\":430,\"length\":4,\"target\":\"logs\",\"line\":12,\"character\":30}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5d2923149436e4cd7d5961969d978cd70a84efe58676270cfbf843de3d24ccb4.json b/site/.cache/twoslash.5d2923149436e4cd7d5961969d978cd70a84efe58676270cfbf843de3d24ccb4.json deleted file mode 100644 index 1908e95ead..0000000000 --- a/site/.cache/twoslash.5d2923149436e4cd7d5961969d978cd70a84efe58676270cfbf843de3d24ccb4.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n account: sponsor, // [!code ++]\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":131,\"length\":7,\"target\":\"sponsor\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":141,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":191,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":213,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":226,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":248,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":267,\"length\":7,\"target\":\"sponsor\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":326,\"length\":13,\"target\":\"writeContract\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | null | undefined\",\"start\":344,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":353,\"length\":7,\"target\":\"sponsor\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":378,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":385,\"length\":7,\"target\":\"address\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":394,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":407,\"length\":7,\"target\":\"account\",\"line\":14,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":415,\"length\":7,\"target\":\"address\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":426,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":453,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":474,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":492,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":549,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":556,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":593,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":611,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":668,\"length\":5,\"target\":\"value\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":675,\"length\":10,\"target\":\"parseEther\",\"line\":24,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":711,\"length\":17,\"target\":\"authorizationList\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":731,\"length\":13,\"target\":\"authorization\",\"line\":27,\"character\":22}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n account: sponsor, // [!code ++]\\n abi,\\n address: walletClient.account.address,\\n functionName: 'execute',\\n args: [[\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', \\n value: parseEther('0.001'), \\n }, {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', \\n value: parseEther('0.002'), \\n }\\n ]],\\n authorizationList: [authorization],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":131,\"length\":7,\"target\":\"sponsor\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":141,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":191,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":213,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":226,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":248,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":267,\"length\":7,\"target\":\"sponsor\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":326,\"length\":13,\"target\":\"writeContract\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | null | undefined\",\"start\":344,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":353,\"length\":7,\"target\":\"sponsor\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":378,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":385,\"length\":7,\"target\":\"address\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":394,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":407,\"length\":7,\"target\":\"account\",\"line\":14,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":415,\"length\":7,\"target\":\"address\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":426,\"length\":12,\"target\":\"functionName\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":453,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":474,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":492,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":549,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":556,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":593,\"length\":4,\"target\":\"data\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":611,\"length\":2,\"target\":\"to\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":668,\"length\":5,\"target\":\"value\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":675,\"length\":10,\"target\":\"parseEther\",\"line\":24,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":711,\"length\":17,\"target\":\"authorizationList\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":731,\"length\":13,\"target\":\"authorization\",\"line\":27,\"character\":22}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5e448d14d8249a06fe351366c57b3369550abc1bce908a13a34f831e51417696.json b/site/.cache/twoslash.5e448d14d8249a06fe351366c57b3369550abc1bce908a13a34f831e51417696.json deleted file mode 100644 index 743d6c82b9..0000000000 --- a/site/.cache/twoslash.5e448d14d8249a06fe351366c57b3369550abc1bce908a13a34f831e51417696.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [[ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n } // [!code focus]\\n ]], // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":132,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":167,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":189,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":216,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":242,\"length\":13,\"target\":\"writeContract\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":277,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":310,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":323,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":331,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":359,\"length\":12,\"target\":\"functionName\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":403,\"length\":4,\"target\":\"args\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":458,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":493,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":567,\"length\":5,\"target\":\"value\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":574,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":645,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":680,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":754,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":761,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":848,\"length\":17,\"target\":\"authorizationList\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":868,\"length\":13,\"target\":\"authorization\",\"line\":23,\"character\":22}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: walletClient.account.address, // [!code focus]\\n functionName: 'execute', // [!code focus]\\n args: [[ // [!code focus]\\n { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001'), // [!code focus]\\n }, { // [!code focus]\\n data: '0x', // [!code focus]\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', // [!code focus]\\n value: parseEther('0.002'), // [!code focus]\\n } // [!code focus]\\n ]], // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":43,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\\nimport abi\",\"start\":83,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":88,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":132,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":154,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":167,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":189,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":216,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":242,\"length\":13,\"target\":\"writeContract\",\"line\":8,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"execute\\\";\\n readonly inputs: readonly [{\\n readonly name: \\\"calls\\\";\\n readonly type: \\\"tuple[]\\\";\\n readonly components: readonly [{\\n readonly name: \\\"data\\\";\\n readonly type: \\\"bytes\\\";\\n }, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"address\\\";\\n }, {\\n ...;\\n }];\\n }];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"payable\\\";\\n}]\",\"start\":277,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":310,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":323,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":331,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"execute\\\"\",\"start\":359,\"length\":12,\"target\":\"functionName\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] | (readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]] & readonly [readonly {\\n data: `0x${string}`;\\n to: `0x${string}`;\\n value: bigint;\\n}[]])\",\"start\":403,\"length\":4,\"target\":\"args\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":458,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":493,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":567,\"length\":5,\"target\":\"value\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":574,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x\\\"\",\"start\":645,\"length\":4,\"target\":\"data\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xd2135CfB216b74109775236E36d4b433F1DF507B\\\"\",\"start\":680,\"length\":2,\"target\":\"to\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":754,\"length\":5,\"target\":\"value\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":761,\"length\":10,\"target\":\"parseEther\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":848,\"length\":17,\"target\":\"authorizationList\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":868,\"length\":13,\"target\":\"authorization\",\"line\":23,\"character\":22}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.5fe321729b7b2ff8ecf7b810de098bb1201cae0d7e5e9b41044682d147864064.json b/site/.cache/twoslash.5fe321729b7b2ff8ecf7b810de098bb1201cae0d7e5e9b41044682d147864064.json index fab751fd7b..132894a221 100644 --- a/site/.cache/twoslash.5fe321729b7b2ff8ecf7b810de098bb1201cae0d7e5e9b41044682d147864064.json +++ b/site/.cache/twoslash.5fe321729b7b2ff8ecf7b810de098bb1201cae0d7e5e9b41044682d147864064.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":438,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":501,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":548,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":438,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":501,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":548,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":438,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":501,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":548,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [ // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":438,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":501,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":548,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.60e954f09f323facbf4f0d8be1c2c8cd7721f72d64aab98da22be2625f522dc9.json b/site/.cache/twoslash.60e954f09f323facbf4f0d8be1c2c8cd7721f72d64aab98da22be2625f522dc9.json new file mode 100644 index 0000000000..bc964e7c94 --- /dev/null +++ b/site/.cache/twoslash.60e954f09f323facbf4f0d8be1c2c8cd7721f72d64aab98da22be2625f522dc9.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638, // [!code focus]\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.614e140d60045f67f475d0588e753463005a131b56bf6583f8ec03d7f94bcdf5.json b/site/.cache/twoslash.614e140d60045f67f475d0588e753463005a131b56bf6583f8ec03d7f94bcdf5.json index 4ce318ad8a..5d31e98a54 100644 --- a/site/.cache/twoslash.614e140d60045f67f475d0588e753463005a131b56bf6583f8ec03d7f94bcdf5.json +++ b/site/.cache/twoslash.614e140d60045f67f475d0588e753463005a131b56bf6583f8ec03d7f94bcdf5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":115,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":115,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":115,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":115,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.616e4de4c6895dfbc9c00946401aa9f51a17d5364a39dd98f2bd8286292de240.json b/site/.cache/twoslash.616e4de4c6895dfbc9c00946401aa9f51a17d5364a39dd98f2bd8286292de240.json deleted file mode 100644 index e839ad496f..0000000000 --- a/site/.cache/twoslash.616e4de4c6895dfbc9c00946401aa9f51a17d5364a39dd98f2bd8286292de240.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://eth-mainnet.g.alchemy.com/v2/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.621c0ad26ad6287bb37abf90113298d0facf46801bc5bd2cc692cd32ce8fe115.json b/site/.cache/twoslash.621c0ad26ad6287bb37abf90113298d0facf46801bc5bd2cc692cd32ce8fe115.json deleted file mode 100644 index a9867fa070..0000000000 --- a/site/.cache/twoslash.621c0ad26ad6287bb37abf90113298d0facf46801bc5bd2cc692cd32ce8fe115.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.625c1c69122fa15cf1d3adcc160cf207ed2ba1578d5584fa8fcaad706e84924f.json b/site/.cache/twoslash.625c1c69122fa15cf1d3adcc160cf207ed2ba1578d5584fa8fcaad706e84924f.json index e0067c7482..632fd988ca 100644 --- a/site/.cache/twoslash.625c1c69122fa15cf1d3adcc160cf207ed2ba1578d5584fa8fcaad706e84924f.json +++ b/site/.cache/twoslash.625c1c69122fa15cf1d3adcc160cf207ed2ba1578d5584fa8fcaad706e84924f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":192,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":210,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":217,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":292,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":369,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":376,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":411,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":467,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":478,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":519,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":575,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":586,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":618,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":718,\"length\":7,\"target\":\"console\",\"line\":32,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":726,\"length\":3,\"target\":\"log\",\"line\":32,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":730,\"length\":7,\"target\":\"results\",\"line\":32,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":739,\"length\":0,\"text\":\"[\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":740,\"length\":0,\"text\":\" {\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":741,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":742,\"length\":0,\"text\":\" logs: [],\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":743,\"length\":0,\"text\":\" result: undefined,\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":744,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":745,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":746,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":747,\"length\":0,\"text\":\" gasUsed: 78394n,\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":748,\"length\":0,\"text\":\" logs: [...],\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":749,\"length\":0,\"text\":\" result: undefined,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":750,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":751,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":752,\"length\":0,\"text\":\" {\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":753,\"length\":0,\"text\":\" gasUsed: 51859n,\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":754,\"length\":0,\"text\":\" logs: [...],\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":755,\"length\":0,\"text\":\" result: true,\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":756,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":757,\"length\":0,\"text\":\" },\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":758,\"length\":0,\"text\":\"]\",\"line\":53,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[2025,2036],[2010,2024],[1977,2009],[1949,1976],[1922,1948],[1891,1921],[1877,1890],[1862,1876],[1829,1861],[1796,1828],[1769,1795],[1738,1768],[1724,1737],[1709,1723],[1676,1708],[1643,1675],[1619,1642],[1588,1618],[1574,1587],[1562,1573],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1562,\"end\":1573},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1574,\"end\":1587},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1588,\"end\":1618},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1619,\"end\":1642},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: undefined,\",\"start\":1643,\"end\":1675},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1676,\"end\":1708},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1709,\"end\":1723},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1724,\"end\":1737},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 78394n,\",\"start\":1738,\"end\":1768},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [...],\",\"start\":1769,\"end\":1795},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: undefined,\",\"start\":1796,\"end\":1828},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1829,\"end\":1861},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1862,\"end\":1876},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1877,\"end\":1890},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 51859n,\",\"start\":1891,\"end\":1921},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [...],\",\"start\":1922,\"end\":1948},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: true,\",\"start\":1949,\"end\":1976},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1977,\"end\":2009},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2010,\"end\":2024},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":2025,\"end\":2036}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: result: undefined,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 78394n,\\n\\n// @log: logs: [...],\\n\\n// @log: result: undefined,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 51859n,\\n\\n// @log: logs: [...],\\n\\n// @log: result: true,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":192,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":210,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":217,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":292,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":369,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":376,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":411,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":467,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":478,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":519,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":575,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":586,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":618,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":718,\"length\":7,\"target\":\"console\",\"line\":32,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":726,\"length\":3,\"target\":\"log\",\"line\":32,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":730,\"length\":7,\"target\":\"results\",\"line\":32,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":739,\"length\":0,\"text\":\"[\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":740,\"length\":0,\"text\":\" {\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":741,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":742,\"length\":0,\"text\":\" logs: [],\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":743,\"length\":0,\"text\":\" result: undefined,\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":744,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":745,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":746,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":747,\"length\":0,\"text\":\" gasUsed: 78394n,\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":748,\"length\":0,\"text\":\" logs: [...],\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":749,\"length\":0,\"text\":\" result: undefined,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":750,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":751,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":752,\"length\":0,\"text\":\" {\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":753,\"length\":0,\"text\":\" gasUsed: 51859n,\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":754,\"length\":0,\"text\":\" logs: [...],\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":755,\"length\":0,\"text\":\" result: true,\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":756,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":757,\"length\":0,\"text\":\" },\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":758,\"length\":0,\"text\":\"]\",\"line\":53,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":192,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":210,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":217,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":292,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":369,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":376,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":411,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":467,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":478,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":519,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":575,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":586,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":618,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":718,\"length\":7,\"target\":\"console\",\"line\":32,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":726,\"length\":3,\"target\":\"log\",\"line\":32,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":730,\"length\":7,\"target\":\"results\",\"line\":32,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":739,\"length\":0,\"text\":\"[\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":740,\"length\":0,\"text\":\" {\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":741,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":742,\"length\":0,\"text\":\" logs: [],\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":743,\"length\":0,\"text\":\" result: undefined,\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":744,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":745,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":746,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":747,\"length\":0,\"text\":\" gasUsed: 78394n,\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":748,\"length\":0,\"text\":\" logs: [...],\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":749,\"length\":0,\"text\":\" result: undefined,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":750,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":751,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":752,\"length\":0,\"text\":\" {\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":753,\"length\":0,\"text\":\" gasUsed: 51859n,\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":754,\"length\":0,\"text\":\" logs: [...],\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":755,\"length\":0,\"text\":\" result: true,\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":756,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":757,\"length\":0,\"text\":\" },\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":758,\"length\":0,\"text\":\"]\",\"line\":53,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[2025,2036],[2010,2024],[1977,2009],[1949,1976],[1922,1948],[1891,1921],[1877,1890],[1862,1876],[1829,1861],[1796,1828],[1769,1795],[1738,1768],[1724,1737],[1709,1723],[1676,1708],[1643,1675],[1619,1642],[1588,1618],[1574,1587],[1562,1573],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1562,\"end\":1573},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1574,\"end\":1587},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1588,\"end\":1618},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1619,\"end\":1642},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: undefined,\",\"start\":1643,\"end\":1675},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1676,\"end\":1708},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1709,\"end\":1723},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1724,\"end\":1737},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 78394n,\",\"start\":1738,\"end\":1768},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [...],\",\"start\":1769,\"end\":1795},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: undefined,\",\"start\":1796,\"end\":1828},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1829,\"end\":1861},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1862,\"end\":1876},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1877,\"end\":1890},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 51859n,\",\"start\":1891,\"end\":1921},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [...],\",\"start\":1922,\"end\":1948},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: true,\",\"start\":1949,\"end\":1976},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1977,\"end\":2009},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2010,\"end\":2024},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":2025,\"end\":2036}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: result: undefined,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 78394n,\\n\\n// @log: logs: [...],\\n\\n// @log: result: undefined,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 51859n,\\n\\n// @log: logs: [...],\\n\\n// @log: result: true,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":192,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":210,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":217,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":292,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":369,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":376,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":411,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":467,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":478,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":519,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":575,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":586,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":618,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":718,\"length\":7,\"target\":\"console\",\"line\":32,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":726,\"length\":3,\"target\":\"log\",\"line\":32,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":730,\"length\":7,\"target\":\"results\",\"line\":32,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":739,\"length\":0,\"text\":\"[\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":740,\"length\":0,\"text\":\" {\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":741,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":742,\"length\":0,\"text\":\" logs: [],\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":743,\"length\":0,\"text\":\" result: undefined,\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":744,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":745,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":746,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":747,\"length\":0,\"text\":\" gasUsed: 78394n,\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":748,\"length\":0,\"text\":\" logs: [...],\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":749,\"length\":0,\"text\":\" result: undefined,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":750,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":751,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":752,\"length\":0,\"text\":\" {\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":753,\"length\":0,\"text\":\" gasUsed: 51859n,\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":754,\"length\":0,\"text\":\" logs: [...],\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":755,\"length\":0,\"text\":\" result: true,\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":756,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":757,\"length\":0,\"text\":\" },\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":758,\"length\":0,\"text\":\"]\",\"line\":53,\"character\":0}]}}" diff --git a/site/.cache/twoslash.6279b61ebc8d1e80ae0157a1651ce3fe40369949be50410ec28dc1562f1fe107.json b/site/.cache/twoslash.6279b61ebc8d1e80ae0157a1651ce3fe40369949be50410ec28dc1562f1fe107.json index 86de948266..6eb3b8e661 100644 --- a/site/.cache/twoslash.6279b61ebc8d1e80ae0157a1651ce3fe40369949be50410ec28dc1562f1fe107.json +++ b/site/.cache/twoslash.6279b61ebc8d1e80ae0157a1651ce3fe40369949be50410ec28dc1562f1fe107.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":63,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":81,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, {\\n ...;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":94,\"length\":15,\"target\":\"signTransaction\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":121,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":150,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":161,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":213,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":63,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":81,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, {\\n ...;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":94,\"length\":15,\"target\":\"signTransaction\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":121,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":150,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":161,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":213,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":63,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":81,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, {\\n ...;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":94,\"length\":15,\"target\":\"signTransaction\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":121,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":150,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":161,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":213,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst signature = await walletClient.signTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":63,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":81,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, {\\n ...;\\n}>(args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":94,\"length\":15,\"target\":\"signTransaction\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":121,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":150,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":161,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":213,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.62ca05cd1f96747bace79beee9ee3919bb421d5303c5f5a822b4ae02227c090c.json b/site/.cache/twoslash.62ca05cd1f96747bace79beee9ee3919bb421d5303c5f5a822b4ae02227c090c.json deleted file mode 100644 index a6c3013da2..0000000000 --- a/site/.cache/twoslash.62ca05cd1f96747bace79beee9ee3919bb421d5303c5f5a822b4ae02227c090c.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.63c6da6d61ddc4bc3a065e9ada98b8a29537d68da42e136e5a4428215942569c.json b/site/.cache/twoslash.63c6da6d61ddc4bc3a065e9ada98b8a29537d68da42e136e5a4428215942569c.json index ad42161241..80650baacf 100644 --- a/site/.cache/twoslash.63c6da6d61ddc4bc3a065e9ada98b8a29537d68da42e136e5a4428215942569c.json +++ b/site/.cache/twoslash.63c6da6d61ddc4bc3a065e9ada98b8a29537d68da42e136e5a4428215942569c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":56,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":81,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":163,\"end\":191},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":260,\"end\":285}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":432,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":56,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":81,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":56,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":81,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":163,\"end\":191},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":260,\"end\":285}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":432,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst gas = await publicClient.estimateGas({ // [!code focus:7]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":56,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":81,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":186,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.64f5c09d4935a184ace48fdc904f66bca39fbd42162d9aec262358c0a32f5c59.json b/site/.cache/twoslash.64f5c09d4935a184ace48fdc904f66bca39fbd42162d9aec262358c0a32f5c59.json index 78b34038fe..9c54b232ae 100644 --- a/site/.cache/twoslash.64f5c09d4935a184ace48fdc904f66bca39fbd42162d9aec262358c0a32f5c59.json +++ b/site/.cache/twoslash.64f5c09d4935a184ace48fdc904f66bca39fbd42162d9aec262358c0a32f5c59.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.64fd72ad3cfe9d50d0f166a7f0604a0d3a909e8724581e86450ec0fe1c5ea462.json b/site/.cache/twoslash.64fd72ad3cfe9d50d0f166a7f0604a0d3a909e8724581e86450ec0fe1c5ea462.json index bcb7912d98..cabffd2fdc 100644 --- a/site/.cache/twoslash.64fd72ad3cfe9d50d0f166a7f0604a0d3a909e8724581e86450ec0fe1c5ea462.json +++ b/site/.cache/twoslash.64fd72ad3cfe9d50d0f166a7f0604a0d3a909e8724581e86450ec0fe1c5ea462.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":153,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":220,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":243,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":252,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":261,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":268,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":279,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":290,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":153,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":220,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":243,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":252,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":261,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":268,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":279,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":290,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":153,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":220,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":243,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":252,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":261,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":268,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":279,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":290,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":153,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":161,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":205,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":220,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":243,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":252,\"length\":5,\"target\":\"relay\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":261,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":268,\"length\":7,\"target\":\"sepolia\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":279,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":290,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.650554dd398123539c2d17616da331d2c3bf37cd1abac616fdefe22b71ec0097.json b/site/.cache/twoslash.650554dd398123539c2d17616da331d2c3bf37cd1abac616fdefe22b71ec0097.json index 5cef69eeba..1ed12bd266 100644 --- a/site/.cache/twoslash.650554dd398123539c2d17616da331d2c3bf37cd1abac616fdefe22b71ec0097.json +++ b/site/.cache/twoslash.650554dd398123539c2d17616da331d2c3bf37cd1abac616fdefe22b71ec0097.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address, // [!code --]\\n address: walletClient.account.address, // [!code ++]\\n authorizationList: [authorization],\\n functionName: 'initialize',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":97,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":119,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":132,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":154,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":163,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":184,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":203,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":245,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":258,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":271,\"length\":13,\"target\":\"writeContract\",\"line\":9,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":289,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":305,\"length\":3,\"target\":\"eoa\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":334,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":343,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":356,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":364,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":389,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":409,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":427,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address, // [!code --]\\n address: walletClient.account.address, // [!code ++]\\n authorizationList: [authorization],\\n functionName: 'initialize',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":97,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":119,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":132,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":154,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":163,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":184,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":203,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":245,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":258,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":271,\"length\":13,\"target\":\"writeContract\",\"line\":9,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":289,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":305,\"length\":3,\"target\":\"eoa\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":334,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":343,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":356,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":364,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":389,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":409,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":427,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address, // [!code --]\\n address: walletClient.account.address, // [!code ++]\\n authorizationList: [authorization],\\n functionName: 'initialize',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":97,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":119,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":132,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":154,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":163,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":184,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":203,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":245,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":258,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":271,\"length\":13,\"target\":\"writeContract\",\"line\":9,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":289,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":305,\"length\":3,\"target\":\"eoa\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":334,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":343,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":356,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":364,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":389,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":409,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":427,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address, // [!code --]\\n address: walletClient.account.address, // [!code ++]\\n authorizationList: [authorization],\\n functionName: 'initialize',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":97,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":119,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":132,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":154,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":163,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":184,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":203,\"length\":8,\"target\":\"executor\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":245,\"length\":4,\"target\":\"hash\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":258,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":271,\"length\":13,\"target\":\"writeContract\",\"line\":9,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":289,\"length\":3,\"target\":\"abi\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":305,\"length\":3,\"target\":\"eoa\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":334,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":343,\"length\":12,\"target\":\"walletClient\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":356,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":364,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":389,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":409,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":427,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6654c2eeefe7a1da8dbfe0aba66c000912ae14ba1ef6dd5b1158fe57d4377f91.json b/site/.cache/twoslash.6654c2eeefe7a1da8dbfe0aba66c000912ae14ba1ef6dd5b1158fe57d4377f91.json index cbf2a0a19f..df720c07d2 100644 --- a/site/.cache/twoslash.6654c2eeefe7a1da8dbfe0aba66c000912ae14ba1ef6dd5b1158fe57d4377f91.json +++ b/site/.cache/twoslash.6654c2eeefe7a1da8dbfe0aba66c000912ae14ba1ef6dd5b1158fe57d4377f91.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.666904384533af70263a2865585396b877bf468aa234377c024bb878987d7628.json b/site/.cache/twoslash.666904384533af70263a2865585396b877bf468aa234377c024bb878987d7628.json index e7f5148071..834dedc717 100644 --- a/site/.cache/twoslash.666904384533af70263a2865585396b877bf468aa234377c024bb878987d7628.json +++ b/site/.cache/twoslash.666904384533af70263a2865585396b877bf468aa234377c024bb878987d7628.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: webSocket('wss://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":107,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":130,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":149,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":160,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.668cdd230cb21a77a8170fb6be502335dea6e19a45f05510a84c18b69435910c.json b/site/.cache/twoslash.668cdd230cb21a77a8170fb6be502335dea6e19a45f05510a84c18b69435910c.json index 7fdd4d9b09..5a13a34c31 100644 --- a/site/.cache/twoslash.668cdd230cb21a77a8170fb6be502335dea6e19a45f05510a84c18b69435910c.json +++ b/site/.cache/twoslash.668cdd230cb21a77a8170fb6be502335dea6e19a45f05510a84c18b69435910c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 1_000 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":146,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 1_000 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":146,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 1_000 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":146,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 1_000 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":146,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.66bb896050e25a0d91facb080e98747e34f8dec3e42218b5359a129f12db00b2.json b/site/.cache/twoslash.66bb896050e25a0d91facb080e98747e34f8dec3e42218b5359a129f12db00b2.json deleted file mode 100644 index fffd6f1241..0000000000 --- a/site/.cache/twoslash.66bb896050e25a0d91facb080e98747e34f8dec3e42218b5359a129f12db00b2.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.66f41973e181a835e08ff0c2da287a7a4108c1e29e4ea1c71e235c9208117257.json b/site/.cache/twoslash.66f41973e181a835e08ff0c2da287a7a4108c1e29e4ea1c71e235c9208117257.json new file mode 100644 index 0000000000..9f0d07b315 --- /dev/null +++ b/site/.cache/twoslash.66f41973e181a835e08ff0c2da287a7a4108c1e29e4ea1c71e235c9208117257.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":162,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":281,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":307,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":162,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":281,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":307,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.67aa6c598ec33452f758a1a19a03aa5947fa5a28a7bb546c6769cb2dc4e1b8c1.json b/site/.cache/twoslash.67aa6c598ec33452f758a1a19a03aa5947fa5a28a7bb546c6769cb2dc4e1b8c1.json index 1ac250b498..58a6bc971c 100644 --- a/site/.cache/twoslash.67aa6c598ec33452f758a1a19a03aa5947fa5a28a7bb546c6769cb2dc4e1b8c1.json +++ b/site/.cache/twoslash.67aa6c598ec33452f758a1a19a03aa5947fa5a28a7bb546c6769cb2dc4e1b8c1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockNumber: 15121123n, // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":90,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockNumber: 15121123n, // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":90,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockNumber: 15121123n, // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":90,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockNumber: 15121123n, // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockNumber?: bigint | undefined\",\"docs\":\"The balance of the account at a block number.\",\"start\":90,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":133,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.67ad9376558084a19a01675f226c9f798aa88124e6c585cb0bc25c52498cfe58.json b/site/.cache/twoslash.67ad9376558084a19a01675f226c9f798aa88124e6c585cb0bc25c52498cfe58.json index f5f66b65ff..455c405d12 100644 --- a/site/.cache/twoslash.67ad9376558084a19a01675f226c9f798aa88124e6c585cb0bc25c52498cfe58.json +++ b/site/.cache/twoslash.67ad9376558084a19a01675f226c9f798aa88124e6c585cb0bc25c52498cfe58.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":314,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":328,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":314,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":328,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":314,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":328,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":314,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":328,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.67e32c19671775cbba00cc4c2a6894946073a0ba51fc9c83578a30a9a9430657.json b/site/.cache/twoslash.67e32c19671775cbba00cc4c2a6894946073a0ba51fc9c83578a30a9a9430657.json index 90e32be88a..c68fc58e17 100644 --- a/site/.cache/twoslash.67e32c19671775cbba00cc4c2a6894946073a0ba51fc9c83578a30a9a9430657.json +++ b/site/.cache/twoslash.67e32c19671775cbba00cc4c2a6894946073a0ba51fc9c83578a30a9a9430657.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst result = await bundlerClient.getUserOperation({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n blockHash: Hash;\\n blockNumber: bigint;\\n entryPoint: Address;\\n transactionHash: Hash;\\n userOperation: UserOperation;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":63,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getUserOperation: (parameters: GetUserOperationParameters) => Promise\",\"docs\":\"Returns the information about a User Operation given a hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperation({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":77,\"length\":16,\"target\":\"getUserOperation\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":118,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,321]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst result = await bundlerClient.getUserOperation({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n blockHash: Hash;\\n blockNumber: bigint;\\n entryPoint: Address;\\n transactionHash: Hash;\\n userOperation: UserOperation;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":63,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getUserOperation: (parameters: GetUserOperationParameters) => Promise\",\"docs\":\"Returns the information about a User Operation given a hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperation({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":77,\"length\":16,\"target\":\"getUserOperation\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":118,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst result = await bundlerClient.getUserOperation({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n blockHash: Hash;\\n blockNumber: bigint;\\n entryPoint: Address;\\n transactionHash: Hash;\\n userOperation: UserOperation;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":63,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getUserOperation: (parameters: GetUserOperationParameters) => Promise\",\"docs\":\"Returns the information about a User Operation given a hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperation({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":77,\"length\":16,\"target\":\"getUserOperation\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":118,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,321]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst result = await bundlerClient.getUserOperation({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n blockHash: Hash;\\n blockNumber: bigint;\\n entryPoint: Address;\\n transactionHash: Hash;\\n userOperation: UserOperation;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":63,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getUserOperation: (parameters: GetUserOperationParameters) => Promise\",\"docs\":\"Returns the information about a User Operation given a hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperation({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":77,\"length\":16,\"target\":\"getUserOperation\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":118,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6890411f56c61b92c37ef07f717a16c4b3d725f4dd06c8487f3e4263b79b3fba.json b/site/.cache/twoslash.6890411f56c61b92c37ef07f717a16c4b3d725f4dd06c8487f3e4263b79b3fba.json index ce5d8a2e80..26b9fee325 100644 --- a/site/.cache/twoslash.6890411f56c61b92c37ef07f717a16c4b3d725f4dd06c8487f3e4263b79b3fba.json +++ b/site/.cache/twoslash.6890411f56c61b92c37ef07f717a16c4b3d725f4dd06c8487f3e4263b79b3fba.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient } from 'viem'\\nimport { ipc } from 'viem/node'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: ipc('/tmp/reth.ipc'), // [!code hl]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":3,\"target\":\"ipc\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":119,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":128,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":158,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: IpcTransport\",\"docs\":\"The RPC transport\",\"start\":170,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":181,\"length\":3,\"target\":\"ipc\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient } from 'viem'\\nimport { ipc } from 'viem/node'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: ipc('/tmp/reth.ipc'), // [!code hl]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":3,\"target\":\"ipc\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":119,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":128,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":158,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: IpcTransport\",\"docs\":\"The RPC transport\",\"start\":170,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":181,\"length\":3,\"target\":\"ipc\",\"line\":6,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient } from 'viem'\\nimport { ipc } from 'viem/node'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: ipc('/tmp/reth.ipc'), // [!code hl]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":3,\"target\":\"ipc\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":119,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":128,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":158,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: IpcTransport\",\"docs\":\"The RPC transport\",\"start\":170,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":181,\"length\":3,\"target\":\"ipc\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient } from 'viem'\\nimport { ipc } from 'viem/node'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet, \\n transport: ipc('/tmp/reth.ipc'), // [!code hl]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":3,\"target\":\"ipc\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":119,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":128,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":158,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: IpcTransport\",\"docs\":\"The RPC transport\",\"start\":170,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) ipc(path: string, config?: IpcTransportConfig): IpcTransport\\nimport ipc\",\"tags\":[[\"description\",\"Creates an IPC transport that connects to a JSON-RPC API.\"]],\"start\":181,\"length\":3,\"target\":\"ipc\",\"line\":6,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6984aba9b64acec84e1f48d13257408ba7e3e81a05207a20cfbd7ffbe8066311.json b/site/.cache/twoslash.6984aba9b64acec84e1f48d13257408ba7e3e81a05207a20cfbd7ffbe8066311.json index fb05e1e2fc..15d589c9a9 100644 --- a/site/.cache/twoslash.6984aba9b64acec84e1f48d13257408ba7e3e81a05207a20cfbd7ffbe8066311.json +++ b/site/.cache/twoslash.6984aba9b64acec84e1f48d13257408ba7e3e81a05207a20cfbd7ffbe8066311.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { onTransactions: hashes => console.log(hashes) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":59,\"length\":14,\"target\":\"onTransactions\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":75,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":85,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":93,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":97,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchPendingTransactions(\\n { onTransactions: hashes => console.log(hashes) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":59,\"length\":14,\"target\":\"onTransactions\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":75,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":85,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":93,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":97,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":42}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { onTransactions: hashes => console.log(hashes) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":59,\"length\":14,\"target\":\"onTransactions\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":75,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":85,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":93,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":97,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchPendingTransactions(\\n { onTransactions: hashes => console.log(hashes) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":59,\"length\":14,\"target\":\"onTransactions\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":75,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":85,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":93,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":97,\"length\":6,\"target\":\"hashes\",\"line\":1,\"character\":42}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.699578655c3be37007b0af74c019546322d16f973cfb3f00ae64ac5b2c004781.json b/site/.cache/twoslash.699578655c3be37007b0af74c019546322d16f973cfb3f00ae64ac5b2c004781.json deleted file mode 100644 index 4172023996..0000000000 --- a/site/.cache/twoslash.699578655c3be37007b0af74c019546322d16f973cfb3f00ae64ac5b2c004781.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', // [!code focus]\\n chainId: 1,\\n nonce: 0,\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":159,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":173,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', // [!code focus]\\n chainId: 1,\\n nonce: 0,\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":159,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":173,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.69ae762b9bea87e431ac99a85a5874ede9b11a34fa22a83fd4e16d9aba1a1e6b.json b/site/.cache/twoslash.69ae762b9bea87e431ac99a85a5874ede9b11a34fa22a83fd4e16d9aba1a1e6b.json deleted file mode 100644 index b56f1cc639..0000000000 --- a/site/.cache/twoslash.69ae762b9bea87e431ac99a85a5874ede9b11a34fa22a83fd4e16d9aba1a1e6b.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":91,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":115,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":129,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":140,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":154,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const status: \\\"PENDING\\\" | \\\"CONFIRMED\\\"\",\"start\":250,\"length\":6,\"target\":\"status\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"const receipts: WalletCallReceipt[] | undefined\",\"start\":258,\"length\":8,\"target\":\"receipts\",\"line\":11,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":277,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) waitForCallsStatus: (parameters: WaitForCallsStatusParameters) => Promise\",\"docs\":\"Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/waitForCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForCallsStatusParameters}\"],[\"returns\",\"Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { waitForCallsStatus } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\"]],\"start\":290,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"docs\":\"The id of the call batch to wait for.\",\"start\":330,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst { status, receipts } = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":91,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":115,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":129,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":140,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":154,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const status: \\\"PENDING\\\" | \\\"CONFIRMED\\\"\",\"start\":250,\"length\":6,\"target\":\"status\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"const receipts: WalletCallReceipt[] | undefined\",\"start\":258,\"length\":8,\"target\":\"receipts\",\"line\":11,\"character\":16},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":277,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) waitForCallsStatus: (parameters: WaitForCallsStatusParameters) => Promise\",\"docs\":\"Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/waitForCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForCallsStatusParameters}\"],[\"returns\",\"Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { waitForCallsStatus } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\"]],\"start\":290,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":48},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"docs\":\"The id of the call batch to wait for.\",\"start\":330,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6a1e4ab4b91603f938c85f9b474a1d74834c5fc9340353472f6338417a4456e5.json b/site/.cache/twoslash.6a1e4ab4b91603f938c85f9b474a1d74834c5fc9340353472f6338417a4456e5.json new file mode 100644 index 0000000000..e3ce01361c --- /dev/null +++ b/site/.cache/twoslash.6a1e4ab4b91603f938c85f9b474a1d74834c5fc9340353472f6338417a4456e5.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":133,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":144,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":212,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":219,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":252,\"length\":6,\"target\":\"result\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":267,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: any\",\"start\":320,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":361,\"length\":0,\"text\":\"{\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":362,\"length\":0,\"text\":\" atomic: false,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":363,\"length\":0,\"text\":\" chainId: 1,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":364,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":365,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\" status: 'success',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":367,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":368,\"length\":0,\"text\":\"}\",\"line\":22,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[910,921],[877,909],[846,876],[817,845],[779,816],[755,778],[728,754],[716,727],[0,355]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":716,\"end\":727},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: false,\",\"start\":728,\"end\":754},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":755,\"end\":778},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" id: '0x1234567890abcdef',\",\"start\":779,\"end\":816},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" statusCode: 200,\",\"start\":817,\"end\":845},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":846,\"end\":876},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" receipts: [{ ... }],\",\"start\":877,\"end\":909},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":910,\"end\":921}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: atomic: false,\\n\\n// @log: chainId: 1,\\n\\n// @log: id: '0x1234567890abcdef',\\n\\n// @log: statusCode: 200,\\n\\n// @log: status: 'success',\\n\\n// @log: receipts: [{ ... }],\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":133,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":144,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":212,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":219,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":252,\"length\":6,\"target\":\"result\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":267,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: any\",\"start\":320,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":361,\"length\":0,\"text\":\"{\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":362,\"length\":0,\"text\":\" atomic: false,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":363,\"length\":0,\"text\":\" chainId: 1,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":364,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":365,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\" status: 'success',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":367,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":368,\"length\":0,\"text\":\"}\",\"line\":22,\"character\":0}]}}" diff --git a/site/.cache/twoslash.6a638bf67cd95d302983ff2d6dd311bbda64521f52fb9d628854bb4f9a668ff7.json b/site/.cache/twoslash.6a638bf67cd95d302983ff2d6dd311bbda64521f52fb9d628854bb4f9a668ff7.json new file mode 100644 index 0000000000..2a6cbc21ee --- /dev/null +++ b/site/.cache/twoslash.6a638bf67cd95d302983ff2d6dd311bbda64521f52fb9d628854bb4f9a668ff7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6b81c7e7f341bb4fb3e5845e6cc663a074259e4869887bd90a1657b8174b447c.json b/site/.cache/twoslash.6b81c7e7f341bb4fb3e5845e6cc663a074259e4869887bd90a1657b8174b447c.json new file mode 100644 index 0000000000..69ef6eb0c1 --- /dev/null +++ b/site/.cache/twoslash.6b81c7e7f341bb4fb3e5845e6cc663a074259e4869887bd90a1657b8174b447c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":168,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":168,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6b934e07f5e08a3e245ebfd09a41a36665e4eacd8b515f960ecad9d455f4426f.json b/site/.cache/twoslash.6b934e07f5e08a3e245ebfd09a41a36665e4eacd8b515f960ecad9d455f4426f.json index 03452ca18b..05355eeff5 100644 --- a/site/.cache/twoslash.6b934e07f5e08a3e245ebfd09a41a36665e4eacd8b515f960ecad9d455f4426f.json +++ b/site/.cache/twoslash.6b934e07f5e08a3e245ebfd09a41a36665e4eacd8b515f960ecad9d455f4426f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const authorization = await account.signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: Authorization) => Promise\",\"start\":36,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID.\",\"start\":86,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":100,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":120,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":138,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":146,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":166,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":186,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":221,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,110]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { privateKeyToAccount } from 'viem/accounts'\\nconst account = privateKeyToAccount('0x...')\\n// ---cut---\\nconst authorization = await account.signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: Authorization) => Promise\",\"start\":36,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID.\",\"start\":86,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":100,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":120,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":138,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":146,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":166,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":186,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":221,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const authorization = await account.signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: AuthorizationRequest) => Promise\",\"start\":36,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID.\",\"start\":86,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":100,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":120,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":138,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":146,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":166,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":186,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":221,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,110]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { privateKeyToAccount } from 'viem/accounts'\\nconst account = privateKeyToAccount('0x...')\\n// ---cut---\\nconst authorization = await account.signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: AuthorizationRequest) => Promise\",\"start\":36,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID.\",\"start\":86,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":100,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":120,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":138,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":146,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":166,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":186,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":221,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6c60b3e72ef3855bf733eac9f4fa072358a7ad4347668f30a4c14272be1eff84.json b/site/.cache/twoslash.6c60b3e72ef3855bf733eac9f4fa072358a7ad4347668f30a4c14272be1eff84.json index 2f361ac98d..ac341dc0ea 100644 --- a/site/.cache/twoslash.6c60b3e72ef3855bf733eac9f4fa072358a7ad4347668f30a4c14272be1eff84.json +++ b/site/.cache/twoslash.6c60b3e72ef3855bf733eac9f4fa072358a7ad4347668f30a4c14272be1eff84.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[971,982],[947,970],[872,946],[847,871],[835,846],[0,629]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":835,\"end\":846},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":847,\"end\":871},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":872,\"end\":946},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":947,\"end\":970},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":971,\"end\":982}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[971,982],[947,970],[872,946],[847,871],[835,846],[0,629]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":835,\"end\":846},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":847,\"end\":871},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":872,\"end\":946},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":947,\"end\":970},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":971,\"end\":982}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":108,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":173,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":217,\"length\":19,\"target\":\"signedAuthorization\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":245,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":258,\"length\":17,\"target\":\"signAuthorization\",\"line\":11,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":276,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" chainId: 10,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" nonce: 420,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0}]}}" diff --git a/site/.cache/twoslash.6c66b548c0c9a3ff27983d7580468cb6d6511fe4027892d73962caa6c3a02eb1.json b/site/.cache/twoslash.6c66b548c0c9a3ff27983d7580468cb6d6511fe4027892d73962caa6c3a02eb1.json index 8bc86e70e2..31b76cda5d 100644 --- a/site/.cache/twoslash.6c66b548c0c9a3ff27983d7580468cb6d6511fe4027892d73962caa6c3a02eb1.json +++ b/site/.cache/twoslash.6c66b548c0c9a3ff27983d7580468cb6d6511fe4027892d73962caa6c3a02eb1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":276,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":287,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":294,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":305,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":316,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":327,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":334,\"length\":14,\"target\":\"erc7821Actions\",\"line\":11,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":276,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":287,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":294,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":305,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":316,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":327,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":334,\"length\":14,\"target\":\"erc7821Actions\",\"line\":11,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":276,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":287,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":294,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":305,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":316,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":327,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":334,\"length\":14,\"target\":\"erc7821Actions\",\"line\":11,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":276,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":287,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":294,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":305,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":316,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":327,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":334,\"length\":14,\"target\":\"erc7821Actions\",\"line\":11,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6d2f0918b5698878ef177b50830a11725601da15cb2bb9cc24ea01067839142a.json b/site/.cache/twoslash.6d2f0918b5698878ef177b50830a11725601da15cb2bb9cc24ea01067839142a.json index 7a7193fef5..47a455e4db 100644 --- a/site/.cache/twoslash.6d2f0918b5698878ef177b50830a11725601da15cb2bb9cc24ea01067839142a.json +++ b/site/.cache/twoslash.6d2f0918b5698878ef177b50830a11725601da15cb2bb9cc24ea01067839142a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":278,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":293,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":316,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":323,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":334,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":345,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[236,261],[139,167]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":139,\"end\":167},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":236,\"end\":261}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":278,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":293,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":316,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":323,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":334,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":345,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":278,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":293,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":316,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":323,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":334,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":345,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[236,261],[139,167]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":139,\"end\":167},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":236,\"end\":261}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount('0x...')\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":278,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":293,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":316,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":323,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":334,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":345,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0}]}}" diff --git a/site/.cache/twoslash.6dcdd501561d16521d75f46d35f1c9d00eafa8ac3f44d4bb7ebcbc866952e38e.json b/site/.cache/twoslash.6dcdd501561d16521d75f46d35f1c9d00eafa8ac3f44d4bb7ebcbc866952e38e.json index fb70f8fada..8b1f65fbf3 100644 --- a/site/.cache/twoslash.6dcdd501561d16521d75f46d35f1c9d00eafa8ac3f44d4bb7ebcbc866952e38e.json +++ b/site/.cache/twoslash.6dcdd501561d16521d75f46d35f1c9d00eafa8ac3f44d4bb7ebcbc866952e38e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":87,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":96,\"length\":12,\"target\":\"createClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":132,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":143,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":87,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":96,\"length\":12,\"target\":\"createClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":132,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":143,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":87,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":96,\"length\":12,\"target\":\"createClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":132,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":143,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":87,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":96,\"length\":12,\"target\":\"createClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":114,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":121,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":132,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":143,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6e0e6292c6bd006f6e732c71b2b0b727bc8c71c3282299f90cd7bfd149ebbd0c.json b/site/.cache/twoslash.6e0e6292c6bd006f6e732c71b2b0b727bc8c71c3282299f90cd7bfd149ebbd0c.json new file mode 100644 index 0000000000..464b6001a7 --- /dev/null +++ b/site/.cache/twoslash.6e0e6292c6bd006f6e732c71b2b0b727bc8c71c3282299f90cd7bfd149ebbd0c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":298,\"length\":2,\"target\":\"id\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":298,\"length\":2,\"target\":\"id\",\"line\":13,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6e12ee6c2557d59cc599d2d2fba8acea2e42699df8b6738088d27fa307389cac.json b/site/.cache/twoslash.6e12ee6c2557d59cc599d2d2fba8acea2e42699df8b6738088d27fa307389cac.json index bcb652f5f3..0e2fd43c0b 100644 --- a/site/.cache/twoslash.6e12ee6c2557d59cc599d2d2fba8acea2e42699df8b6738088d27fa307389cac.json +++ b/site/.cache/twoslash.6e12ee6c2557d59cc599d2d2fba8acea2e42699df8b6738088d27fa307389cac.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":50,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":59,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":68,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":76,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":80,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":111,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":119,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":127,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":135,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":139,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":50,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":59,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":68,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":76,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":80,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":111,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":119,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":127,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":135,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":139,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":50,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":59,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":68,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":76,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":80,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":111,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":119,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":127,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":135,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":139,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":50,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":59,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":68,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":76,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":80,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":111,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":119,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":127,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":135,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":139,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6e695e676895ec9d3064b60a3e5c736ec7a68b40ce5ad9ca4a982372992fdfd5.json b/site/.cache/twoslash.6e695e676895ec9d3064b60a3e5c736ec7a68b40ce5ad9ca4a982372992fdfd5.json index 54c0e97559..6e9cde33d1 100644 --- a/site/.cache/twoslash.6e695e676895ec9d3064b60a3e5c736ec7a68b40ce5ad9ca4a982372992fdfd5.json +++ b/site/.cache/twoslash.6e695e676895ec9d3064b60a3e5c736ec7a68b40ce5ad9ca4a982372992fdfd5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6f6bac3ab6b8955e4a9182bf5ab444b95665d17127cd29471d61f4a99fe837cf.json b/site/.cache/twoslash.6f6bac3ab6b8955e4a9182bf5ab444b95665d17127cd29471d61f4a99fe837cf.json index 58934549a7..359dfaae96 100644 --- a/site/.cache/twoslash.6f6bac3ab6b8955e4a9182bf5ab444b95665d17127cd29471d61f4a99fe837cf.json +++ b/site/.cache/twoslash.6f6bac3ab6b8955e4a9182bf5ab444b95665d17127cd29471d61f4a99fe837cf.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":61,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":61,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":61,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":61,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6f803d255e6720b48501bb5b9b4135132775a68bfe9afca212e570fd854ba528.json b/site/.cache/twoslash.6f803d255e6720b48501bb5b9b4135132775a68bfe9afca212e570fd854ba528.json index a3f13971d1..590389c985 100644 --- a/site/.cache/twoslash.6f803d255e6720b48501bb5b9b4135132775a68bfe9afca212e570fd854ba528.json +++ b/site/.cache/twoslash.6f803d255e6720b48501bb5b9b4135132775a68bfe9afca212e570fd854ba528.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":151,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":151,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":151,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":151,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6fa0859a962d8e45c6dcc0db405151a0a38e3d85b12c2fa6e4adabb7d8936060.json b/site/.cache/twoslash.6fa0859a962d8e45c6dcc0db405151a0a38e3d85b12c2fa6e4adabb7d8936060.json index 0ad31cb1d1..9cca1cdb83 100644 --- a/site/.cache/twoslash.6fa0859a962d8e45c6dcc0db405151a0a38e3d85b12c2fa6e4adabb7d8936060.json +++ b/site/.cache/twoslash.6fa0859a962d8e45c6dcc0db405151a0a38e3d85b12c2fa6e4adabb7d8936060.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":331,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":349,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":363,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":389,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":405,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":435,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":451,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":465,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":491,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":503,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":529,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":547,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":579,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":602,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":617,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":631,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":650,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":715,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":727,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":746,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":811,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":331,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":349,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":363,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":389,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":405,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":435,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":451,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":465,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":491,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":503,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":529,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":547,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":579,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":602,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":617,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":631,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":650,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":715,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":727,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":746,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":811,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":331,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":349,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":363,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":389,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":405,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":435,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":451,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":465,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":491,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":503,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":529,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":547,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":579,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":602,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":617,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":631,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":650,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":715,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":727,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":746,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":811,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":331,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":349,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":363,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":389,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":405,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":435,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":451,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":465,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":491,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":503,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":529,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":547,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":579,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":602,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":617,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":631,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":650,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":715,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":727,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":746,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":811,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.6fbaa6ab8cb16b9a0a7326e62a4674fe965ae1672c5edef7e6f8baf76ee8675c.json b/site/.cache/twoslash.6fbaa6ab8cb16b9a0a7326e62a4674fe965ae1672c5edef7e6f8baf76ee8675c.json index b673925e8f..eb1071a1ec 100644 --- a/site/.cache/twoslash.6fbaa6ab8cb16b9a0a7326e62a4674fe965ae1672c5edef7e6f8baf76ee8675c.json +++ b/site/.cache/twoslash.6fbaa6ab8cb16b9a0a7326e62a4674fe965ae1672c5edef7e6f8baf76ee8675c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":136,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":216,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":232,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":258,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":282,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":304,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":325,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":349,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":136,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":216,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":232,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":258,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":282,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":304,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":325,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":349,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":136,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":216,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":232,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":258,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":282,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":304,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":325,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":349,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback(\\n [\\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ],\\n { // [!code focus:9]\\n rank: {\\n interval: 60_000,\\n sampleCount: 5,\\n timeout: 500,\\n weights: {\\n latency: 0.3,\\n stability: 0.7\\n }\\n }\\n }\\n ),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":89,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":136,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":216,\"length\":4,\"target\":\"rank\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":232,\"length\":8,\"target\":\"interval\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":258,\"length\":11,\"target\":\"sampleCount\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":282,\"length\":7,\"target\":\"timeout\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":304,\"length\":7,\"target\":\"weights\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":325,\"length\":7,\"target\":\"latency\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":349,\"length\":9,\"target\":\"stability\",\"line\":14,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.70237c5cee97b4c59c947eb70ecdaf2658d7dbebfcd273140eefd0d4e562118a.json b/site/.cache/twoslash.70237c5cee97b4c59c947eb70ecdaf2658d7dbebfcd273140eefd0d4e562118a.json index 16baaba61b..3eea867b0d 100644 --- a/site/.cache/twoslash.70237c5cee97b4c59c947eb70ecdaf2658d7dbebfcd273140eefd0d4e562118a.json +++ b/site/.cache/twoslash.70237c5cee97b4c59c947eb70ecdaf2658d7dbebfcd273140eefd0d4e562118a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":186,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":196,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":232,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":186,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":196,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":232,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":186,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":196,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":232,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":186,\"length\":8,\"target\":\"gasPrice\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":196,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":232,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7031343df5c4d41a650ea4d8d3104bffe15bcc18dfc9ba59073715b5e58d80ea.json b/site/.cache/twoslash.7031343df5c4d41a650ea4d8d3104bffe15bcc18dfc9ba59073715b5e58d80ea.json index 821e3a5957..e16a6da10c 100644 --- a/site/.cache/twoslash.7031343df5c4d41a650ea4d8d3104bffe15bcc18dfc9ba59073715b5e58d80ea.json +++ b/site/.cache/twoslash.7031343df5c4d41a650ea4d8d3104bffe15bcc18dfc9ba59073715b5e58d80ea.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code ++] // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":239,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":248,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":271,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":278,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":289,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":300,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":318,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":334,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":358,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":368,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":379,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":433,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":441,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code ++] // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":239,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":248,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":271,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":278,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":289,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":300,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":318,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":334,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":358,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":368,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":379,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":433,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":441,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code ++] // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":239,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":248,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":271,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":278,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":289,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":300,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":318,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":334,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":358,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":368,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":379,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":433,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":441,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code ++] // [!code focus]\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...') // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":120,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":158,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":239,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":248,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":271,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":278,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":289,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":300,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":318,\"length\":13,\"target\":\"bundlerClient\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":334,\"length\":19,\"target\":\"createBundlerClient\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":358,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":368,\"length\":9,\"target\":\"transport\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":379,\"length\":4,\"target\":\"http\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":433,\"length\":5,\"target\":\"owner\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":441,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":15,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.70da271ecaa29028973f545ddbef10a9699c00bcfd1e7651d8ae0876a1b98266.json b/site/.cache/twoslash.70da271ecaa29028973f545ddbef10a9699c00bcfd1e7651d8ae0876a1b98266.json index 1230e1f096..c8d616dff1 100644 --- a/site/.cache/twoslash.70da271ecaa29028973f545ddbef10a9699c00bcfd1e7651d8ae0876a1b98266.json +++ b/site/.cache/twoslash.70da271ecaa29028973f545ddbef10a9699c00bcfd1e7651d8ae0876a1b98266.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":77,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":93,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":101,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":105,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":77,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":93,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":101,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":105,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":77,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":93,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":101,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":105,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":61,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":77,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":93,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":101,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":105,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.70eb22f9bccaa0099590d8bd9119d42f565ccfb7c9d653c7266a200dab5386fe.json b/site/.cache/twoslash.70eb22f9bccaa0099590d8bd9119d42f565ccfb7c9d653c7266a200dab5386fe.json deleted file mode 100644 index 0853a3e7c2..0000000000 --- a/site/.cache/twoslash.70eb22f9bccaa0099590d8bd9119d42f565ccfb7c9d653c7266a200dab5386fe.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":145,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":211,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":255,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":270,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":304,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":311,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":320,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":331,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":342,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":349,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":93,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":145,\"length\":14,\"target\":\"eip7702Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":201,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":211,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":255,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":270,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":293,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":304,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":311,\"length\":5,\"target\":\"anvil\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":320,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":331,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>>(fn: (client: Client<...>) => Eip7702Actions<...>) => Client<...>\",\"start\":342,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":349,\"length\":14,\"target\":\"eip7702Actions\",\"line\":11,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.70f731babca9f89948cc1c66df31cd916955726255c4f6cb52f13842a4b867e9.json b/site/.cache/twoslash.70f731babca9f89948cc1c66df31cd916955726255c4f6cb52f13842a4b867e9.json index dca17c9090..7bd94e3b4b 100644 --- a/site/.cache/twoslash.70f731babca9f89948cc1c66df31cd916955726255c4f6cb52f13842a4b867e9.json +++ b/site/.cache/twoslash.70f731babca9f89948cc1c66df31cd916955726255c4f6cb52f13842a4b867e9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2', // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":177,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2', // [!code focus:1]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":177,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2', // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":177,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2', // [!code focus:1]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":177,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.71ae66249b03b919ab6bb6c03c500dfcf4e6300c075001a2ed8bab70395afe23.json b/site/.cache/twoslash.71ae66249b03b919ab6bb6c03c500dfcf4e6300c075001a2ed8bab70395afe23.json index 61450d5afb..335a001323 100644 --- a/site/.cache/twoslash.71ae66249b03b919ab6bb6c03c500dfcf4e6300c075001a2ed8bab70395afe23.json +++ b/site/.cache/twoslash.71ae66249b03b919ab6bb6c03c500dfcf4e6300c075001a2ed8bab70395afe23.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n batch: false, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":50,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":85,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":93,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":113,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n batch: false, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":50,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":85,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":93,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":113,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n batch: false, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":50,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":85,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":93,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":113,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n batch: false, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":50,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":85,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":93,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":113,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.730c1451c6e36e853199f157c39fb9e3b3e951bf95db10e9d74abcab9d8d9619.json b/site/.cache/twoslash.730c1451c6e36e853199f157c39fb9e3b3e951bf95db10e9d74abcab9d8d9619.json index 69dd3c2991..7d99a837e7 100644 --- a/site/.cache/twoslash.730c1451c6e36e853199f157c39fb9e3b3e951bf95db10e9d74abcab9d8d9619.json +++ b/site/.cache/twoslash.730c1451c6e36e853199f157c39fb9e3b3e951bf95db10e9d74abcab9d8d9619.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":61,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":76,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":61,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":76,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":61,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":76,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":61,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":76,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7326597023af20fe8ddc814725329cb3ef4892e448972ab2eeaa802396152178.json b/site/.cache/twoslash.7326597023af20fe8ddc814725329cb3ef4892e448972ab2eeaa802396152178.json index 0827a1f9f7..63b7258c9c 100644 --- a/site/.cache/twoslash.7326597023af20fe8ddc814725329cb3ef4892e448972ab2eeaa802396152178.json +++ b/site/.cache/twoslash.7326597023af20fe8ddc814725329cb3ef4892e448972ab2eeaa802396152178.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.73c37c139134925dd7186c4143d1e88bba68b8a9bda8eca7e65d6b140e172dbc.json b/site/.cache/twoslash.73c37c139134925dd7186c4143d1e88bba68b8a9bda8eca7e65d6b140e172dbc.json index b6942fa9f4..13ab78af68 100644 --- a/site/.cache/twoslash.73c37c139134925dd7186c4143d1e88bba68b8a9bda8eca7e65d6b140e172dbc.json +++ b/site/.cache/twoslash.73c37c139134925dd7186c4143d1e88bba68b8a9bda8eca7e65d6b140e172dbc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { onLogs: logs => console.log(logs) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":45,\"length\":6,\"target\":\"onLogs\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":53,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":61,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":69,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":73,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { onLogs: logs => console.log(logs) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":45,\"length\":6,\"target\":\"onLogs\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":53,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":61,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":69,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":73,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { onLogs: logs => console.log(logs) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":45,\"length\":6,\"target\":\"onLogs\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":53,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":61,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":69,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":73,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { onLogs: logs => console.log(logs) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":45,\"length\":6,\"target\":\"onLogs\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":53,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":61,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":69,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":73,\"length\":4,\"target\":\"logs\",\"line\":1,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7444f4e9e527dce015b68b861c23c0a9d0debc0ddee06943659252a24fa0f5c8.json b/site/.cache/twoslash.7444f4e9e527dce015b68b861c23c0a9d0debc0ddee06943659252a24fa0f5c8.json index a66ca9539e..683a962865 100644 --- a/site/.cache/twoslash.7444f4e9e527dce015b68b861c23c0a9d0debc0ddee06943659252a24fa0f5c8.json +++ b/site/.cache/twoslash.7444f4e9e527dce015b68b861c23c0a9d0debc0ddee06943659252a24fa0f5c8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":82,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":215,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.745d2e863fdb4ea3d2ebe2b83872bf8e9a90778cef55bdb462049c887f423d51.json b/site/.cache/twoslash.745d2e863fdb4ea3d2ebe2b83872bf8e9a90778cef55bdb462049c887f423d51.json index a375980745..b0d648b9dd 100644 --- a/site/.cache/twoslash.745d2e863fdb4ea3d2ebe2b83872bf8e9a90778cef55bdb462049c887f423d51.json +++ b/site/.cache/twoslash.745d2e863fdb4ea3d2ebe2b83872bf8e9a90778cef55bdb462049c887f423d51.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,470]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,470]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n// ---cut---\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n authorization,\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":6,\"length\":5,\"target\":\"valid\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":20,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":44,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":118,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.74bf77a09a441bbe26f1b12d4238d3f0c1d9073fbb5cb33420b9b57ffd72387b.json b/site/.cache/twoslash.74bf77a09a441bbe26f1b12d4238d3f0c1d9073fbb5cb33420b9b57ffd72387b.json deleted file mode 100644 index 3cfe781d27..0000000000 --- a/site/.cache/twoslash.74bf77a09a441bbe26f1b12d4238d3f0c1d9073fbb5cb33420b9b57ffd72387b.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":171,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":196,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,443]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":171,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":196,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.75660e60a1e5e83c3139c9dcbff7814de2e543ab705878c05effa848ec0c2a82.json b/site/.cache/twoslash.75660e60a1e5e83c3139c9dcbff7814de2e543ab705878c05effa848ec0c2a82.json index c6697304cf..2dd2cf52eb 100644 --- a/site/.cache/twoslash.75660e60a1e5e83c3139c9dcbff7814de2e543ab705878c05effa848ec0c2a82.json +++ b/site/.cache/twoslash.75660e60a1e5e83c3139c9dcbff7814de2e543ab705878c05effa848ec0c2a82.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n ccipRead: false, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":74,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":85,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":92,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":99,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n ccipRead: false, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":74,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":85,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":92,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":99,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n ccipRead: false, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":74,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":85,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":92,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":99,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n ccipRead: false, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":38,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":74,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":85,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":92,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":99,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.789efae3a786a3677849e22cd5d3ea533c108644ced5b7f4742410ee73d877bc.json b/site/.cache/twoslash.789efae3a786a3677849e22cd5d3ea533c108644ced5b7f4742410ee73d877bc.json deleted file mode 100644 index 2707c2162a..0000000000 --- a/site/.cache/twoslash.789efae3a786a3677849e22cd5d3ea533c108644ced5b7f4742410ee73d877bc.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n shouldThrow: (err: Error) => { // [!code focus]\\n return err.message.includes('sad times') // [!code focus]\\n }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) shouldThrow?: ((error: Error) => boolean | undefined) | undefined\",\"docs\":\"Callback on whether an error should throw or try the next transport in the fallback.\",\"start\":50,\"length\":11,\"target\":\"shouldThrow\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) err: Error\",\"start\":64,\"length\":3,\"target\":\"err\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"interface Error\",\"start\":69,\"length\":5,\"target\":\"Error\",\"line\":1,\"character\":21},{\"type\":\"hover\",\"text\":\"(parameter) err: Error\",\"start\":109,\"length\":3,\"target\":\"err\",\"line\":2,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) Error.message: string\",\"start\":113,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(method) String.includes(searchString: string, position?: number): boolean\",\"docs\":\"Returns true if searchString appears as a substring of the result of converting this\\nobject to a String, at one or more positions that are\\ngreater than or equal to position; otherwise, returns false.\",\"tags\":[[\"param\",\"searchString search string\"],[\"param\",\"position If position is undefined, 0 is assumed, so as to search all of the String.\"]],\"start\":121,\"length\":8,\"target\":\"includes\",\"line\":2,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n shouldThrow: (err: Error) => { // [!code focus]\\n return err.message.includes('sad times') // [!code focus]\\n }, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) shouldThrow?: ((error: Error) => boolean | undefined) | undefined\",\"docs\":\"Callback on whether an error should throw or try the next transport in the fallback.\",\"start\":50,\"length\":11,\"target\":\"shouldThrow\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) err: Error\",\"start\":64,\"length\":3,\"target\":\"err\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"interface Error\",\"start\":69,\"length\":5,\"target\":\"Error\",\"line\":1,\"character\":21},{\"type\":\"hover\",\"text\":\"(parameter) err: Error\",\"start\":109,\"length\":3,\"target\":\"err\",\"line\":2,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) Error.message: string\",\"start\":113,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(method) String.includes(searchString: string, position?: number): boolean\",\"docs\":\"Returns true if searchString appears as a substring of the result of converting this\\nobject to a String, at one or more positions that are\\ngreater than or equal to position; otherwise, returns false.\",\"tags\":[[\"param\",\"searchString search string\"],[\"param\",\"position If position is undefined, 0 is assumed, so as to search all of the String.\"]],\"start\":121,\"length\":8,\"target\":\"includes\",\"line\":2,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.79f55e7294ed7f10eb783992456decb409fb7bd01255bae2d72433168096c48a.json b/site/.cache/twoslash.79f55e7294ed7f10eb783992456decb409fb7bd01255bae2d72433168096c48a.json deleted file mode 100644 index c4aa16d334..0000000000 --- a/site/.cache/twoslash.79f55e7294ed7f10eb783992456decb409fb7bd01255bae2d72433168096c48a.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: false, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: false, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7a9acb387847c9db8fa763a25c057f6337670d9c448c68d54b2d2b01d8b7d357.json b/site/.cache/twoslash.7a9acb387847c9db8fa763a25c057f6337670d9c448c68d54b2d2b01d8b7d357.json deleted file mode 100644 index 71a16056d7..0000000000 --- a/site/.cache/twoslash.7a9acb387847c9db8fa763a25c057f6337670d9c448c68d54b2d2b01d8b7d357.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":71,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":71,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7ae5a3d71bf90ef8ca1f107d28c18c0c414eef1b552a0afd5dc82e84e48c7ad0.json b/site/.cache/twoslash.7ae5a3d71bf90ef8ca1f107d28c18c0c414eef1b552a0afd5dc82e84e48c7ad0.json index 307145e1d5..91281dd025 100644 --- a/site/.cache/twoslash.7ae5a3d71bf90ef8ca1f107d28c18c0c414eef1b552a0afd5dc82e84e48c7ad0.json +++ b/site/.cache/twoslash.7ae5a3d71bf90ef8ca1f107d28c18c0c414eef1b552a0afd5dc82e84e48c7ad0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import {\\n zksync, // [!code hl]\\n zksyncSepoliaTestnet, // [!code hl]\\n} from 'viem/chains'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":11,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksyncSepoliaTestnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia-era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-sepolia-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://sepolia.explorer.zksync.io/\\\";\\n readonly blockExplorerApi: \\\"https://block-explorer-api.sepolia.zksync.dev/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-sepolia-testnet\\\";\\n}\\nimport zksyncSepoliaTestnet\",\"start\":35,\"length\":20,\"target\":\"zksyncSepoliaTestnet\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import {\\n zksync, // [!code hl]\\n zksyncSepoliaTestnet, // [!code hl]\\n} from 'viem/chains'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":11,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksyncSepoliaTestnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia-era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-sepolia-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://sepolia.explorer.zksync.io/\\\";\\n readonly blockExplorerApi: \\\"https://block-explorer-api.sepolia.zksync.dev/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-sepolia-testnet\\\";\\n}\\nimport zksyncSepoliaTestnet\",\"start\":35,\"length\":20,\"target\":\"zksyncSepoliaTestnet\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import {\\n zksync, // [!code hl]\\n zksyncSepoliaTestnet, // [!code hl]\\n} from 'viem/chains'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":11,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksyncSepoliaTestnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia-era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-sepolia-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://sepolia.explorer.zksync.io/\\\";\\n readonly blockExplorerApi: \\\"https://block-explorer-api.sepolia.zksync.dev/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-sepolia-testnet\\\";\\n}\\nimport zksyncSepoliaTestnet\",\"start\":35,\"length\":20,\"target\":\"zksyncSepoliaTestnet\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import {\\n zksync, // [!code hl]\\n zksyncSepoliaTestnet, // [!code hl]\\n} from 'viem/chains'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":11,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksyncSepoliaTestnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia-era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-sepolia-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://sepolia.explorer.zksync.io/\\\";\\n readonly blockExplorerApi: \\\"https://block-explorer-api.sepolia.zksync.dev/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-sepolia-testnet\\\";\\n}\\nimport zksyncSepoliaTestnet\",\"start\":35,\"length\":20,\"target\":\"zksyncSepoliaTestnet\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7ae94bb8acf15c1ce6763b38e306bf455862438a6bdc71fce40677c8bbaf204d.json b/site/.cache/twoslash.7ae94bb8acf15c1ce6763b38e306bf455862438a6bdc71fce40677c8bbaf204d.json index ab1ff3b21c..383c76a52a 100644 --- a/site/.cache/twoslash.7ae94bb8acf15c1ce6763b38e306bf455862438a6bdc71fce40677c8bbaf204d.json +++ b/site/.cache/twoslash.7ae94bb8acf15c1ce6763b38e306bf455862438a6bdc71fce40677c8bbaf204d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise\",\"docs\":\"Requests for the wallet to show information about a call batch\\nthat was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/showCallsStatus\\n- JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Displays status of the calls in wallet. {@link ShowCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nawait client.showCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise\",\"docs\":\"Requests for the wallet to show information about a call batch\\nthat was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/showCallsStatus\\n- JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Displays status of the calls in wallet. {@link ShowCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nawait client.showCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise\",\"docs\":\"Requests for the wallet to show information about a call batch\\nthat was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/showCallsStatus\\n- JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Displays status of the calls in wallet. {@link ShowCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nawait client.showCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nawait walletClient.showCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":48,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) showCallsStatus: (parameters: ShowCallsStatusParameters) => Promise\",\"docs\":\"Requests for the wallet to show information about a call batch\\nthat was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/showCallsStatus\\n- JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Displays status of the calls in wallet. {@link ShowCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nawait client.showCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":61,\"length\":15,\"target\":\"showCallsStatus\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":101,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7c6b0791ffb3b26a9b2419bbbf4a70f1dd3df7b0e3a6ce47b71c697c5eb52b28.json b/site/.cache/twoslash.7c6b0791ffb3b26a9b2419bbbf4a70f1dd3df7b0e3a6ce47b71c697c5eb52b28.json index c2c31f5d41..7aca621d3c 100644 --- a/site/.cache/twoslash.7c6b0791ffb3b26a9b2419bbbf4a70f1dd3df7b0e3a6ce47b71c697c5eb52b28.json +++ b/site/.cache/twoslash.7c6b0791ffb3b26a9b2419bbbf4a70f1dd3df7b0e3a6ce47b71c697c5eb52b28.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":105,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":105,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":105,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":105,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7c8e60c4df28ad516802d71d85fee184a1c78c94b18289b7eb774132d2cdc856.json b/site/.cache/twoslash.7c8e60c4df28ad516802d71d85fee184a1c78c94b18289b7eb774132d2cdc856.json index 7a38aedd65..b655d3e8b1 100644 --- a/site/.cache/twoslash.7c8e60c4df28ad516802d71d85fee184a1c78c94b18289b7eb774132d2cdc856.json +++ b/site/.cache/twoslash.7c8e60c4df28ad516802d71d85fee184a1c78c94b18289b7eb774132d2cdc856.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":121,\"length\":3,\"target\":\"raw\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":121,\"length\":3,\"target\":\"raw\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":121,\"length\":3,\"target\":\"raw\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: { raw: '0x68656c6c6f20776f726c64' }, // [!code focus:1]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) raw: `0x${string}` | ByteArray\",\"docs\":\"Raw data representation of the message.\",\"start\":121,\"length\":3,\"target\":\"raw\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7d46f84d2cbce31cd51c0fe1195dc36999953fa10a55de602cd8bbe6e711814b.json b/site/.cache/twoslash.7d46f84d2cbce31cd51c0fe1195dc36999953fa10a55de602cd8bbe6e711814b.json index 8822143785..3cae61d302 100644 --- a/site/.cache/twoslash.7d46f84d2cbce31cd51c0fe1195dc36999953fa10a55de602cd8bbe6e711814b.json +++ b/site/.cache/twoslash.7d46f84d2cbce31cd51c0fe1195dc36999953fa10a55de602cd8bbe6e711814b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n emitMissed: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed blocks to the callback.\",\"start\":51,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":90,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":99,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":108,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":116,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":120,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n emitMissed: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed blocks to the callback.\",\"start\":51,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":90,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":99,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":108,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":116,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":120,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n emitMissed: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed blocks to the callback.\",\"start\":51,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":90,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":99,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":108,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":116,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":120,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n emitMissed: true, // [!code focus]\\n onBlock: block => console.log(block),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitMissed?: boolean | undefined\",\"docs\":\"Whether or not to emit the missed blocks to the callback.\",\"start\":51,\"length\":10,\"target\":\"emitMissed\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":90,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":99,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":108,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":116,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":120,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7dcb8288825aa858a7514aecfa70d417589903c131902076b73a96d7f2340d79.json b/site/.cache/twoslash.7dcb8288825aa858a7514aecfa70d417589903c131902076b73a96d7f2340d79.json index 6f1e2fc67d..7ed6e0bf7a 100644 --- a/site/.cache/twoslash.7dcb8288825aa858a7514aecfa70d417589903c131902076b73a96d7f2340d79.json +++ b/site/.cache/twoslash.7dcb8288825aa858a7514aecfa70d417589903c131902076b73a96d7f2340d79.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":97,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":103,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":140,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":162,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":175,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":206,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":213,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":253,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":266,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":301,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":325,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":334,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":338,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":366,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":386,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":421,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":97,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":103,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":140,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":162,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":175,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":206,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":213,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":253,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":266,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":301,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":325,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":334,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":338,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":366,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":386,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":421,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":97,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":103,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":140,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":162,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":175,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":206,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":213,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":253,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":266,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":301,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":325,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":334,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":338,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":366,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":386,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":421,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\nconst hash = await walletClient.writeContract({ // [!code focus]\\n abi, // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorizationList: [authorization], // [!code focus]\\n functionName: 'initialize', // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":49,\"length\":3,\"target\":\"abi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":54,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":97,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":103,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":140,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":162,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":175,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":206,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":213,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":240,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":253,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":266,\"length\":13,\"target\":\"writeContract\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":301,\"length\":3,\"target\":\"abi\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":325,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":334,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":338,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":366,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":386,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":421,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7e4a3fea264af8d88c16f087680fc6af4eb5d5233eb8af34099b406226e754d8.json b/site/.cache/twoslash.7e4a3fea264af8d88c16f087680fc6af4eb5d5233eb8af34099b406226e754d8.json new file mode 100644 index 0000000000..578064fbe0 --- /dev/null +++ b/site/.cache/twoslash.7e4a3fea264af8d88c16f087680fc6af4eb5d5233eb8af34099b406226e754d8.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":233,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":246,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":259,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n to: string;\\n abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n }, {\\n ...;\\n }];\\n functionName: string;\\n args: (string | bigint)[];\\n})[]\",\"start\":293,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":370,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":377,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":468,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":479,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":614,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":670,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":681,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":717,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":233,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":246,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":259,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n to: string;\\n abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n }, {\\n ...;\\n }];\\n functionName: string;\\n args: (string | bigint)[];\\n})[]\",\"start\":293,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":370,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":377,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":468,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":479,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":614,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":670,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":681,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":717,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7e4f0e5693af4a6383d3c01c7d1040097584ed6e77283be2852029fcac33e2b1.json b/site/.cache/twoslash.7e4f0e5693af4a6383d3c01c7d1040097584ed6e77283be2852029fcac33e2b1.json index 333421ad15..94b6d857e7 100644 --- a/site/.cache/twoslash.7e4f0e5693af4a6383d3c01c7d1040097584ed6e77283be2852029fcac33e2b1.json +++ b/site/.cache/twoslash.7e4f0e5693af4a6383d3c01c7d1040097584ed6e77283be2852029fcac33e2b1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const owner = privateKeyToAccount('0x...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":161,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":184,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":191,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":202,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":213,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":237,\"length\":5,\"target\":\"owner\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":21}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const owner = privateKeyToAccount('0x...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":161,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":184,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":191,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":202,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":213,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":237,\"length\":5,\"target\":\"owner\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":21}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const owner = privateKeyToAccount('0x...')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":161,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":184,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":191,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":202,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":213,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":237,\"length\":5,\"target\":\"owner\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":21}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const owner = privateKeyToAccount('0x...')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":161,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":184,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":191,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":202,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":213,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":237,\"length\":5,\"target\":\"owner\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":245,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":21}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7e7024f8766300626914d930d4f8208ca010e898cc2d3ccaceb5215c283b60a0.json b/site/.cache/twoslash.7e7024f8766300626914d930d4f8208ca010e898cc2d3ccaceb5215c283b60a0.json index 71b9076f9a..057dc330c1 100644 --- a/site/.cache/twoslash.7e7024f8766300626914d930d4f8208ca010e898cc2d3ccaceb5215c283b60a0.json +++ b/site/.cache/twoslash.7e7024f8766300626914d930d4f8208ca010e898cc2d3ccaceb5215c283b60a0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world', // [!code focus:1]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":110,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7e7d53a95e578a72980692e60471e11ccb6473f366b531673503e311b1e54c2f.json b/site/.cache/twoslash.7e7d53a95e578a72980692e60471e11ccb6473f366b531673503e311b1e54c2f.json index 1a09ec5bb7..689e9059b8 100644 --- a/site/.cache/twoslash.7e7d53a95e578a72980692e60471e11ccb6473f366b531673503e311b1e54c2f.json +++ b/site/.cache/twoslash.7e7d53a95e578a72980692e60471e11ccb6473f366b531673503e311b1e54c2f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7f1dcdeecb611b81319f6f81dc45d29016212d884cf1de6eff730ce96f94f734.json b/site/.cache/twoslash.7f1dcdeecb611b81319f6f81dc45d29016212d884cf1de6eff730ce96f94f734.json new file mode 100644 index 0000000000..44cdb32483 --- /dev/null +++ b/site/.cache/twoslash.7f1dcdeecb611b81319f6f81dc45d29016212d884cf1de6eff730ce96f94f734.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":117,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,893]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":117,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7f401869467cae3e2cb39fbde89840ce08c026755de3ee4aea8d1694c4d9a3c5.json b/site/.cache/twoslash.7f401869467cae3e2cb39fbde89840ce08c026755de3ee4aea8d1694c4d9a3c5.json index 1d61008e9e..a22d2a98a3 100644 --- a/site/.cache/twoslash.7f401869467cae3e2cb39fbde89840ce08c026755de3ee4aea8d1694c4d9a3c5.json +++ b/site/.cache/twoslash.7f401869467cae3e2cb39fbde89840ce08c026755de3ee4aea8d1694c4d9a3c5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":62,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":73,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":62,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":73,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":62,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":73,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":62,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":73,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7f7d3a587687f9930bddef28a13e175fa42c2258fffbb16a84b5abbed4bb50d2.json b/site/.cache/twoslash.7f7d3a587687f9930bddef28a13e175fa42c2258fffbb16a84b5abbed4bb50d2.json index 992965b056..1597c72a28 100644 --- a/site/.cache/twoslash.7f7d3a587687f9930bddef28a13e175fa42c2258fffbb16a84b5abbed4bb50d2.json +++ b/site/.cache/twoslash.7f7d3a587687f9930bddef28a13e175fa42c2258fffbb16a84b5abbed4bb50d2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.7fcefa4bdb4fd56814d1acaea35b289a9bb61a28356466b8935682588e1dd422.json b/site/.cache/twoslash.7fcefa4bdb4fd56814d1acaea35b289a9bb61a28356466b8935682588e1dd422.json index be394ed95a..d0c7035491 100644 --- a/site/.cache/twoslash.7fcefa4bdb4fd56814d1acaea35b289a9bb61a28356466b8935682588e1dd422.json +++ b/site/.cache/twoslash.7fcefa4bdb4fd56814d1acaea35b289a9bb61a28356466b8935682588e1dd422.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) accessList: {\\n address: \\\"0x1\\\";\\n storageKeys: \\\"0x1\\\"[];\\n}[]\",\"start\":98,\"length\":10,\"target\":\"accessList\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":143,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly `0x${string}`[]\",\"start\":165,\"length\":11,\"target\":\"storageKeys\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":201,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) accessList: {\\n address: \\\"0x1\\\";\\n storageKeys: \\\"0x1\\\"[];\\n}[]\",\"start\":98,\"length\":10,\"target\":\"accessList\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":143,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly `0x${string}`[]\",\"start\":165,\"length\":11,\"target\":\"storageKeys\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":201,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) accessList: {\\n address: \\\"0x1\\\";\\n storageKeys: \\\"0x1\\\"[];\\n}[]\",\"start\":98,\"length\":10,\"target\":\"accessList\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":143,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly `0x${string}`[]\",\"start\":165,\"length\":11,\"target\":\"storageKeys\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":201,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) accessList: {\\n address: \\\"0x1\\\";\\n storageKeys: \\\"0x1\\\"[];\\n}[]\",\"start\":98,\"length\":10,\"target\":\"accessList\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":143,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly `0x${string}`[]\",\"start\":165,\"length\":11,\"target\":\"storageKeys\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":201,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.803a7305add31386ace7e67dd5cd24d527752cd0939847d9f550d0fb8a630b6a.json b/site/.cache/twoslash.803a7305add31386ace7e67dd5cd24d527752cd0939847d9f550d0fb8a630b6a.json index a064e56208..20f02c60bc 100644 --- a/site/.cache/twoslash.803a7305add31386ace7e67dd5cd24d527752cd0939847d9f550d0fb8a630b6a.json +++ b/site/.cache/twoslash.803a7305add31386ace7e67dd5cd24d527752cd0939847d9f550d0fb8a630b6a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/zksync'\\n\\nexport const zkStackExample = defineChain({\\n ...chainConfig,\\n name: 'ZKsync Example',\\n // ...\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function defineChain>(chain: chain): Prettify, chain>>\\nimport defineChain\",\"start\":9,\"length\":11,\"target\":\"defineChain\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\" ...\\nimport chainConfig\",\"start\":44,\"length\":11,\"target\":\"chainConfig\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const zkStackExample: {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\",\"start\":91,\"length\":14,\"target\":\"zkStackExample\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) defineChain>(chain: Chain): {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport defineChain\",\"start\":108,\"length\":11,\"target\":\"defineChain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\" ...\\nimport chainConfig\",\"start\":127,\"length\":11,\"target\":\"chainConfig\",\"line\":4,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"docs\":\"Human-readable name\",\"start\":142,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/zksync'\\n\\nexport const zkStackExample = defineChain({\\n ...chainConfig,\\n name: 'ZKsync Example',\\n // ...\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function defineChain>(chain: chain): Prettify, chain>>\\nimport defineChain\",\"start\":9,\"length\":11,\"target\":\"defineChain\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\" ...\\nimport chainConfig\",\"start\":44,\"length\":11,\"target\":\"chainConfig\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const zkStackExample: {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\",\"start\":91,\"length\":14,\"target\":\"zkStackExample\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) defineChain>(chain: Chain): {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport defineChain\",\"start\":108,\"length\":11,\"target\":\"defineChain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\" ...\\nimport chainConfig\",\"start\":127,\"length\":11,\"target\":\"chainConfig\",\"line\":4,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"docs\":\"Human-readable name\",\"start\":142,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { defineChain } from 'viem'\\nimport { chainConfig } from 'viem/zksync'\\n\\nexport const zkStackExample = defineChain({\\n ...chainConfig,\\n name: 'ZKsync Example',\\n // ...\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function defineChain>(chain: chain): Prettify, chain>>\\nimport defineChain\",\"start\":9,\"length\":11,\"target\":\"defineChain\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: `0x${string}` | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncTransaction | undefined;\\n}\",\"start\":91,\"length\":14,\"target\":\"zkStackExample\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) defineChain>(chain: Chain): {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport defineChain\",\"start\":108,\"length\":11,\"target\":\"defineChain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: `0x${string}` | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncTransaction>(chain: chain): Prettify, chain>>\\nimport defineChain\",\"start\":9,\"length\":11,\"target\":\"defineChain\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: `0x${string}` | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncTransaction | undefined;\\n}\",\"start\":91,\"length\":14,\"target\":\"zkStackExample\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) defineChain>(chain: Chain): {\\n blockExplorers?: {\\n [key: string]: ChainBlockExplorer;\\n default: ChainBlockExplorer;\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport defineChain\",\"start\":108,\"length\":11,\"target\":\"defineChain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const chainConfig: {\\n readonly formatters: {\\n readonly block: {\\n exclude: [] | undefined;\\n format: (args: import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncRpcBlock) => {\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n gasLimit: bigint;\\n gasUsed: bigint;\\n hash: `0x${string}` | null;\\n logsBloom: `0x${string}` | null;\\n miner: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Address;\\n mixHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n nonce: `0x${string}` | null;\\n number: bigint | null;\\n parentBeaconBlockRoot?: `0x${string}` | undefined;\\n parentHash: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n receiptsRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex;\\n sealFields: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hex[];\\n sha3Uncles: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n size: bigint;\\n stateRoot: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").Hash;\\n timestamp: bigint;\\n totalDifficulty: bigint | null;\\n transactions: `0x${string}`[] | import(\\\"/Users/jakemoxey/git/viem/src/_types/zksync/index\\\").ZkSyncTransaction(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.81b57705ab48ab027344ee982323844308a03776b53850bc3f7951ed5c798349.json b/site/.cache/twoslash.81b57705ab48ab027344ee982323844308a03776b53850bc3f7951ed5c798349.json index c1b49a0ff3..c811bb2f86 100644 --- a/site/.cache/twoslash.81b57705ab48ab027344ee982323844308a03776b53850bc3f7951ed5c798349.json +++ b/site/.cache/twoslash.81b57705ab48ab027344ee982323844308a03776b53850bc3f7951ed5c798349.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":232,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":233,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" nonce: 69,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\"}\",\"line\":15,\"character\":0},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":246,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":276,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":289,\"length\":15,\"target\":\"signTransaction\",\"line\":17,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":17,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":320,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":333,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":346,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":367,\"length\":21,\"target\":\"serializedTransaction\",\"line\":18,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1310,1321],[1270,1309],[1241,1269],[1218,1240],[1171,1217],[1130,1170],[1068,1129],[1001,1067],[989,1000],[0,759]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":546,\"end\":574},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":643,\"end\":668},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":989,\"end\":1000},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"start\":1001,\"end\":1067},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"start\":1068,\"end\":1129},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 150000000000n,\",\"start\":1130,\"end\":1170},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1000000000n,\",\"start\":1171,\"end\":1217},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 69,\",\"start\":1218,\"end\":1240},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" type: 'eip1559',\",\"start\":1241,\"end\":1269},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: 1000000000000000000n\",\"start\":1270,\"end\":1309},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1310,\"end\":1321}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":720,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n\\n// @log: maxFeePerGas: 150000000000n,\\n\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n\\n// @log: nonce: 69,\\n\\n// @log: type: 'eip1559',\\n\\n// @log: value: 1000000000000000000n\\n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":246,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":276,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":289,\"length\":15,\"target\":\"signTransaction\",\"line\":17,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":17,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":320,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":333,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":346,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":367,\"length\":21,\"target\":\"serializedTransaction\",\"line\":18,\"character\":53}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":232,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":233,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" nonce: 69,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\"}\",\"line\":15,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":232,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":233,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" nonce: 69,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\"}\",\"line\":15,\"character\":0},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":246,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":276,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":289,\"length\":15,\"target\":\"signTransaction\",\"line\":17,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":17,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":320,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":333,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":346,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":367,\"length\":21,\"target\":\"serializedTransaction\",\"line\":18,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1310,1321],[1270,1309],[1241,1269],[1218,1240],[1171,1217],[1130,1170],[1068,1129],[1001,1067],[989,1000],[0,759]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":546,\"end\":574},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":643,\"end\":668},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":989,\"end\":1000},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"start\":1001,\"end\":1067},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"start\":1068,\"end\":1129},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 150000000000n,\",\"start\":1130,\"end\":1170},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1000000000n,\",\"start\":1171,\"end\":1217},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 69,\",\"start\":1218,\"end\":1240},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" type: 'eip1559',\",\"start\":1241,\"end\":1269},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: 1000000000000000000n\",\"start\":1270,\"end\":1309},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1310,\"end\":1321}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":720,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n\\n// @log: maxFeePerGas: 150000000000n,\\n\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n\\n// @log: nonce: 69,\\n\\n// @log: type: 'eip1559',\\n\\n// @log: value: 1000000000000000000n\\n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":73,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":86,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":246,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":276,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":289,\"length\":15,\"target\":\"signTransaction\",\"line\":17,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":17,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":320,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":333,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":346,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":367,\"length\":21,\"target\":\"serializedTransaction\",\"line\":18,\"character\":53}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"{\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":232,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":233,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":234,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":235,\"length\":0,\"text\":\" nonce: 69,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":236,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":237,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":238,\"length\":0,\"text\":\"}\",\"line\":15,\"character\":0}]}}" diff --git a/site/.cache/twoslash.81dfc8478786de7c026384246efc8f5f9b698594548ed018d9eca4aaf17a9fa7.json b/site/.cache/twoslash.81dfc8478786de7c026384246efc8f5f9b698594548ed018d9eca4aaf17a9fa7.json new file mode 100644 index 0000000000..5bbd80a455 --- /dev/null +++ b/site/.cache/twoslash.81dfc8478786de7c026384246efc8f5f9b698594548ed018d9eca4aaf17a9fa7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8298f41465bc82b130b09cfae1a68df1f174c43c79383b7ef71e254ca9462cc5.json b/site/.cache/twoslash.8298f41465bc82b130b09cfae1a68df1f174c43c79383b7ef71e254ca9462cc5.json index 1052d36f8e..07c5d6d48c 100644 --- a/site/.cache/twoslash.8298f41465bc82b130b09cfae1a68df1f174c43c79383b7ef71e254ca9462cc5.json +++ b/site/.cache/twoslash.8298f41465bc82b130b09cfae1a68df1f174c43c79383b7ef71e254ca9462cc5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const balance = await publicClient.getTransactionConfirmations({\\n transactionReceipt: { ... }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: any\",\"start\":67,\"length\":18,\"target\":\"transactionReceipt\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst balance = await publicClient.getTransactionConfirmations({\\n transactionReceipt: { ... }, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: any\",\"start\":67,\"length\":18,\"target\":\"transactionReceipt\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const balance = await publicClient.getTransactionConfirmations({\\n transactionReceipt: { ... }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: any\",\"start\":67,\"length\":18,\"target\":\"transactionReceipt\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst balance = await publicClient.getTransactionConfirmations({\\n transactionReceipt: { ... }, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":6,\"length\":7,\"target\":\"balance\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":35,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: any\",\"start\":67,\"length\":18,\"target\":\"transactionReceipt\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.82f7940cfc8497a256ed8eb30cdd679a2a09744935941a95a751d8f75522bfe1.json b/site/.cache/twoslash.82f7940cfc8497a256ed8eb30cdd679a2a09744935941a95a751d8f75522bfe1.json deleted file mode 100644 index 25310ad5ca..0000000000 --- a/site/.cache/twoslash.82f7940cfc8497a256ed8eb30cdd679a2a09744935941a95a751d8f75522bfe1.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.83252873c62723721e8f14440a7c99c17d31b480d531871f5be3ee4b1f4efdfd.json b/site/.cache/twoslash.83252873c62723721e8f14440a7c99c17d31b480d531871f5be3ee4b1f4efdfd.json index b1186829dd..ede0c72011 100644 --- a/site/.cache/twoslash.83252873c62723721e8f14440a7c99c17d31b480d531871f5be3ee4b1f4efdfd.json +++ b/site/.cache/twoslash.83252873c62723721e8f14440a7c99c17d31b480d531871f5be3ee4b1f4efdfd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.83561172180a9b0b404ecb4ac868b136aa3958141405c0320c8ca00151ae2bb6.json b/site/.cache/twoslash.83561172180a9b0b404ecb4ac868b136aa3958141405c0320c8ca00151ae2bb6.json index 7fc322d9a8..b562168122 100644 --- a/site/.cache/twoslash.83561172180a9b0b404ecb4ac868b136aa3958141405c0320c8ca00151ae2bb6.json +++ b/site/.cache/twoslash.83561172180a9b0b404ecb4ac868b136aa3958141405c0320c8ca00151ae2bb6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":164,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":164,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":164,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":164,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":186,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.83612477ef8008ec16d99114b017ff76369d65067a5f538959c6f0e743c4d636.json b/site/.cache/twoslash.83612477ef8008ec16d99114b017ff76369d65067a5f538959c6f0e743c4d636.json index 8cfe4c6b02..a94f164639 100644 --- a/site/.cache/twoslash.83612477ef8008ec16d99114b017ff76369d65067a5f538959c6f0e743c4d636.json +++ b/site/.cache/twoslash.83612477ef8008ec16d99114b017ff76369d65067a5f538959c6f0e743c4d636.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":108,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":108,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":108,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({ \\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":108,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.84d241a522aea49c837d5a0cbc5ccb317cc744a99c1f76e52f50b73801643beb.json b/site/.cache/twoslash.84d241a522aea49c837d5a0cbc5ccb317cc744a99c1f76e52f50b73801643beb.json index 66aa53cb43..d611ae7c7c 100644 --- a/site/.cache/twoslash.84d241a522aea49c837d5a0cbc5ccb317cc744a99c1f76e52f50b73801643beb.json +++ b/site/.cache/twoslash.84d241a522aea49c837d5a0cbc5ccb317cc744a99c1f76e52f50b73801643beb.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":177,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":177,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":177,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,109]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ \\n http('https://1.rpc.thirdweb.com/...'), \\n http('https://mainnet.infura.io/v3/...') \\n ], { rank: true }), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":56,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":67,\"length\":8,\"target\":\"fallback\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":177,\"length\":4,\"target\":\"rank\",\"line\":5,\"character\":7}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.853da70c2136b7491c6af02ee92df5014bff57022643ea7e3c88f27357f6e2ac.json b/site/.cache/twoslash.853da70c2136b7491c6af02ee92df5014bff57022643ea7e3c88f27357f6e2ac.json index 5052f791d6..ef1d666f0d 100644 --- a/site/.cache/twoslash.853da70c2136b7491c6af02ee92df5014bff57022643ea7e3c88f27357f6e2ac.json +++ b/site/.cache/twoslash.853da70c2136b7491c6af02ee92df5014bff57022643ea7e3c88f27357f6e2ac.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient, publicClient } from './client'\\n\\nconst signature = await walletClient.signMessage({\\n account,\\n message: 'hello world',\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyMessage({\\n address: account.address,\\n message: 'hello world',\\n signature,\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":70,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":101,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":117,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":128,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":181,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":195,\"length\":12,\"target\":\"publicClient\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyMessage: (args: VerifyMessageParameters) => Promise\",\"docs\":\"Verify that a message was signed by the provided address.\\n\\nCompatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyMessage\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyMessageParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyMessageReturnType}\"]],\"start\":208,\"length\":13,\"target\":\"verifyMessage\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\",\"start\":226,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"docs\":\"The message to be verified.\",\"start\":254,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\",\"start\":280,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\"true\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[853,867],[0,559]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"true\",\"start\":853,\"end\":867}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient, publicClient } from './client'\\n\\nconst signature = await walletClient.signMessage({\\n account,\\n message: 'hello world',\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyMessage({\\n address: account.address,\\n message: 'hello world',\\n signature,\\n})\\n// @log: true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":70,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":101,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":117,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":128,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":181,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":195,\"length\":12,\"target\":\"publicClient\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyMessage: (args: VerifyMessageParameters) => Promise\",\"docs\":\"Verify that a message was signed by the provided address.\\n\\nCompatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyMessage\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyMessageParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyMessageReturnType}\"]],\"start\":208,\"length\":13,\"target\":\"verifyMessage\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\",\"start\":226,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"docs\":\"The message to be verified.\",\"start\":254,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\",\"start\":280,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\"true\",\"line\":13,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { account, walletClient, publicClient } from './client'\\n\\nconst signature = await walletClient.signMessage({\\n account,\\n message: 'hello world',\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyMessage({\\n address: account.address,\\n message: 'hello world',\\n signature,\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":70,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":101,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":117,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":128,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":181,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":195,\"length\":12,\"target\":\"publicClient\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyMessage: (args: VerifyMessageParameters) => Promise\",\"docs\":\"Verify that a message was signed by the provided address.\\n\\nCompatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyMessage\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyMessageParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyMessageReturnType}\"]],\"start\":208,\"length\":13,\"target\":\"verifyMessage\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\",\"start\":226,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"docs\":\"The message to be verified.\",\"start\":254,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\",\"start\":280,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\"true\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[853,867],[0,559]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"true\",\"start\":853,\"end\":867}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient, publicClient } from './client'\\n\\nconst signature = await walletClient.signMessage({\\n account,\\n message: 'hello world',\\n})\\n// [!code focus:99]\\nconst valid = await publicClient.verifyMessage({\\n address: account.address,\\n message: 'hello world',\\n signature,\\n})\\n// @log: true\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":32,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":70,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":101,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":117,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":128,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":181,\"length\":5,\"target\":\"valid\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":195,\"length\":12,\"target\":\"publicClient\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) verifyMessage: (args: VerifyMessageParameters) => Promise\",\"docs\":\"Verify that a message was signed by the provided address.\\n\\nCompatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/actions/public/verifyMessage\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyMessageParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyMessageReturnType}\"]],\"start\":208,\"length\":13,\"target\":\"verifyMessage\",\"line\":7,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the original message.\",\"start\":226,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":235,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":7,\"target\":\"address\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"docs\":\"The message to be verified.\",\"start\":254,\"length\":7,\"target\":\"message\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | Signature\",\"docs\":\"The signature that was generated by signing the message with the address's private key.\",\"start\":280,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\"true\",\"line\":13,\"character\":0}]}}" diff --git a/site/.cache/twoslash.85ca7204f86d777c2a2dcca0e407312a01b92b53a16a0ac0f619a4c34bed67c0.json b/site/.cache/twoslash.85ca7204f86d777c2a2dcca0e407312a01b92b53a16a0ac0f619a4c34bed67c0.json deleted file mode 100644 index cef6bd7172..0000000000 --- a/site/.cache/twoslash.85ca7204f86d777c2a2dcca0e407312a01b92b53a16a0ac0f619a4c34bed67c0.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', { \\n name: 'Alchemy WebSocket Provider', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the WebSocket transport.\",\"start\":75,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', { \\n name: 'Alchemy WebSocket Provider', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the WebSocket transport.\",\"start\":75,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8606204d7798b11ae0c50847df229984e7d81f9ca050cba68577cbf57f0f111a.json b/site/.cache/twoslash.8606204d7798b11ae0c50847df229984e7d81f9ca050cba68577cbf57f0f111a.json index 049164dd23..d7a0d4e496 100644 --- a/site/.cache/twoslash.8606204d7798b11ae0c50847df229984e7d81f9ca050cba68577cbf57f0f111a.json +++ b/site/.cache/twoslash.8606204d7798b11ae0c50847df229984e7d81f9ca050cba68577cbf57f0f111a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const receipt = await bundlerClient.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":64,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":64,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const receipt = await bundlerClient.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":64,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) getUserOperationReceipt: (parameters: GetUserOperationReceiptParameters) => Promise\",\"docs\":\"Returns the User Operation Receipt given a User Operation hash.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/getUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link GetUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.getUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":23,\"target\":\"getUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":64,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.862d76d1122959d41ef898a5ecaee0b85e4d7a71453024ec682a854f3a8f0cd3.json b/site/.cache/twoslash.862d76d1122959d41ef898a5ecaee0b85e4d7a71453024ec682a854f3a8f0cd3.json index ec7bba27c5..1893f79b3f 100644 --- a/site/.cache/twoslash.862d76d1122959d41ef898a5ecaee0b85e4d7a71453024ec682a854f3a8f0cd3.json +++ b/site/.cache/twoslash.862d76d1122959d41ef898a5ecaee0b85e4d7a71453024ec682a854f3a8f0cd3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":183,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":205,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":240,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":183,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":205,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":240,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":183,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":205,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":240,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":183,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":205,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":240,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":292,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":299,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8693648f83577907162c5c9195fe5db003d7e73dfd5061b66456e806493b0113.json b/site/.cache/twoslash.8693648f83577907162c5c9195fe5db003d7e73dfd5061b66456e806493b0113.json index 06e7875f0d..745f36173a 100644 --- a/site/.cache/twoslash.8693648f83577907162c5c9195fe5db003d7e73dfd5061b66456e806493b0113.json +++ b/site/.cache/twoslash.8693648f83577907162c5c9195fe5db003d7e73dfd5061b66456e806493b0113.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createTestClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 41 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":68,\"length\":16,\"target\":\"createTestClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":147,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":154,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":165,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":182,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":193,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createTestClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 41 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":68,\"length\":16,\"target\":\"createTestClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":147,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":154,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":165,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":182,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":193,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createTestClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 41 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":68,\"length\":16,\"target\":\"createTestClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":147,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":154,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":165,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":182,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":193,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createTestClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 41 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":68,\"length\":16,\"target\":\"createTestClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":147,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":154,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":165,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":182,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":193,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.86fd669294aad8fac9a14258f3cf32e1f7f2e5ecbcefed7767a4d1b64339181c.json b/site/.cache/twoslash.86fd669294aad8fac9a14258f3cf32e1f7f2e5ecbcefed7767a4d1b64339181c.json new file mode 100644 index 0000000000..c36139294b --- /dev/null +++ b/site/.cache/twoslash.86fd669294aad8fac9a14258f3cf32e1f7f2e5ecbcefed7767a4d1b64339181c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":200,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":273,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":409,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":200,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":273,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":280,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":409,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.87a32f6294444512f2f0134e124469174b1c87713603c56146c6e105c2a8ed0b.json b/site/.cache/twoslash.87a32f6294444512f2f0134e124469174b1c87713603c56146c6e105c2a8ed0b.json index e804e2c13b..5d18af52a1 100644 --- a/site/.cache/twoslash.87a32f6294444512f2f0134e124469174b1c87713603c56146c6e105c2a8ed0b.json +++ b/site/.cache/twoslash.87a32f6294444512f2f0134e124469174b1c87713603c56146c6e105c2a8ed0b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":130,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[783,794],[752,782],[736,751],[670,735],[634,669],[541,633],[529,540],[0,321]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":529,\"end\":540},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":541,\"end\":633},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":634,\"end\":669},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":670,\"end\":735},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":736,\"end\":751},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":752,\"end\":782},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":783,\"end\":794}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":130,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":130,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[783,794],[752,782],[736,751],[670,735],[634,669],[541,633],[529,540],[0,321]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":529,\"end\":540},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":541,\"end\":633},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":634,\"end\":669},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":670,\"end\":735},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":736,\"end\":751},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":752,\"end\":782},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":783,\"end\":794}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ // [!code focus:99]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d'\\n})\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":9,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":48,\"length\":7,\"target\":\"receipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":64,\"length\":13,\"target\":\"bundlerClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":78,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":2,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":130,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":209,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" sender: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.8a0463443486a695387f2d95c9857fa639309bb74a53a84de0e5a735f295d1a5.json b/site/.cache/twoslash.8a0463443486a695387f2d95c9857fa639309bb74a53a84de0e5a735f295d1a5.json index ecae001477..5b27bb408e 100644 --- a/site/.cache/twoslash.8a0463443486a695387f2d95c9857fa639309bb74a53a84de0e5a735f295d1a5.json +++ b/site/.cache/twoslash.8a0463443486a695387f2d95c9857fa639309bb74a53a84de0e5a735f295d1a5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the latest block number to the callback when the subscription opens.\",\"start\":56,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":96,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":111,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":126,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":134,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":138,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the latest block number to the callback when the subscription opens.\",\"start\":56,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":96,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":111,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":126,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":134,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":138,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the latest block number to the callback when the subscription opens.\",\"start\":56,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":96,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":111,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":126,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":134,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":138,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n emitOnBegin: true, // [!code focus]\\n onBlockNumber: blockNumber => console.log(blockNumber),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) emitOnBegin?: boolean | undefined\",\"docs\":\"Whether or not to emit the latest block number to the callback when the subscription opens.\",\"start\":56,\"length\":11,\"target\":\"emitOnBegin\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":96,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":111,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":126,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":134,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":138,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8a402b37195a83943731903a57b9c4152aa24357188aa19fc67308125c3f038f.json b/site/.cache/twoslash.8a402b37195a83943731903a57b9c4152aa24357188aa19fc67308125c3f038f.json index 1020f2aad2..c2b782ed18 100644 --- a/site/.cache/twoslash.8a402b37195a83943731903a57b9c4152aa24357188aa19fc67308125c3f038f.json +++ b/site/.cache/twoslash.8a402b37195a83943731903a57b9c4152aa24357188aa19fc67308125c3f038f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":72,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":117,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":72,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":117,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":72,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":117,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":72,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":117,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":128,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8a542da988bc08b089d53e05a9d9d3553c7a472b9ff2351be9a465bd553c0f87.json b/site/.cache/twoslash.8a542da988bc08b089d53e05a9d9d3553c7a472b9ff2351be9a465bd553c0f87.json index ccd73e8dd9..220e712a76 100644 --- a/site/.cache/twoslash.8a542da988bc08b089d53e05a9d9d3553c7a472b9ff2351be9a465bd553c0f87.json +++ b/site/.cache/twoslash.8a542da988bc08b089d53e05a9d9d3553c7a472b9ff2351be9a465bd553c0f87.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n blockTag: 'safe',\\n onBlock: block => console.log(block), // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag. Defaults to \\\"latest\\\".\",\"start\":51,\"length\":8,\"target\":\"blockTag\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":73,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":82,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":103,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n blockTag: 'safe',\\n onBlock: block => console.log(block), // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag. Defaults to \\\"latest\\\".\",\"start\":51,\"length\":8,\"target\":\"blockTag\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":73,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":82,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":103,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n blockTag: 'safe',\\n onBlock: block => console.log(block), // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag. Defaults to \\\"latest\\\".\",\"start\":51,\"length\":8,\"target\":\"blockTag\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":73,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":82,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":103,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n blockTag: 'safe',\\n onBlock: block => console.log(block), // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag. Defaults to \\\"latest\\\".\",\"start\":51,\"length\":8,\"target\":\"blockTag\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"safe\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":73,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":82,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":91,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":99,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":103,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8a62a1952c909f572da7a76f0aa50eebfc1962470bc0fb27e1b8d55835e0c8aa.json b/site/.cache/twoslash.8a62a1952c909f572da7a76f0aa50eebfc1962470bc0fb27e1b8d55835e0c8aa.json index fe903c27de..d2f31480a7 100644 --- a/site/.cache/twoslash.8a62a1952c909f572da7a76f0aa50eebfc1962470bc0fb27e1b8d55835e0c8aa.json +++ b/site/.cache/twoslash.8a62a1952c909f572da7a76f0aa50eebfc1962470bc0fb27e1b8d55835e0c8aa.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":100,\"length\":5,\"target\":\"owner\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":167,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":100,\"length\":5,\"target\":\"owner\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":167,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":100,\"length\":5,\"target\":\"owner\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":167,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":100,\"length\":5,\"target\":\"owner\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":167,\"length\":12,\"target\":\"publicClient\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8ad4b2ea1c07c0532ee8f6d8c3f57cb5ae8c48e3ba414f848f6b4a3894a28c8f.json b/site/.cache/twoslash.8ad4b2ea1c07c0532ee8f6d8c3f57cb5ae8c48e3ba414f848f6b4a3894a28c8f.json index fba1f9bca3..bce9ea79df 100644 --- a/site/.cache/twoslash.8ad4b2ea1c07c0532ee8f6d8c3f57cb5ae8c48e3ba414f848f6b4a3894a28c8f.json +++ b/site/.cache/twoslash.8ad4b2ea1c07c0532ee8f6d8c3f57cb5ae8c48e3ba414f848f6b4a3894a28c8f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":90,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":147,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8ba012871dd6544b58a6fcba1b22e258737f762af154a6ce5d56c77ee1b8ba20.json b/site/.cache/twoslash.8ba012871dd6544b58a6fcba1b22e258737f762af154a6ce5d56c77ee1b8ba20.json index 84afb37e7d..a3239969fb 100644 --- a/site/.cache/twoslash.8ba012871dd6544b58a6fcba1b22e258737f762af154a6ce5d56c77ee1b8ba20.json +++ b/site/.cache/twoslash.8ba012871dd6544b58a6fcba1b22e258737f762af154a6ce5d56c77ee1b8ba20.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n hash: '0x...'\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":47,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":82,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":135,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\"15n\",\"line\":6,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[593,606],[0,441]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"15n\",\"start\":593,\"end\":606}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n hash: '0x...'\\n})\\n// @log: 15n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":47,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":82,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":135,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\"15n\",\"line\":6,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n hash: '0x...'\\n})\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":47,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":82,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":135,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\"15n\",\"line\":6,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[593,606],[0,441]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"15n\",\"start\":593,\"end\":606}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n hash: '0x...'\\n})\\n// @log: 15n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":47,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":69,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":82,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The transaction hash.\",\"start\":135,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\"15n\",\"line\":6,\"character\":0}]}}" diff --git a/site/.cache/twoslash.8be367783a80176e5e26ce73d30167f8eda5c919ef36bc3fead18ef4477aba9c.json b/site/.cache/twoslash.8be367783a80176e5e26ce73d30167f8eda5c919ef36bc3fead18ef4477aba9c.json index a1745f2eec..3b85b55a32 100644 --- a/site/.cache/twoslash.8be367783a80176e5e26ce73d30167f8eda5c919ef36bc3fead18ef4477aba9c.json +++ b/site/.cache/twoslash.8be367783a80176e5e26ce73d30167f8eda5c919ef36bc3fead18ef4477aba9c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { recoverTransactionAddress } from 'viem'\\nimport { walletClient } from './client'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst address = await recoverTransactionAddress({ // [!code focus:99]\\n serializedTransaction,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":9,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":96,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":125,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":3,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":245,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}>(args: ({\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} & ... 2 more ... & {\\n ...;\\n}) | ... 4 more ... | ({\\n ...;\\n} & ... 2 more ... & {\\n ...;\\n})) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":288,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":304,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":320,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":336,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":386,\"length\":21,\"target\":\"serializedTransaction\",\"line\":11,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,277]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverTransactionAddress } from 'viem'\\nimport { walletClient } from './client'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst address = await recoverTransactionAddress({ // [!code focus:99]\\n serializedTransaction,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":9,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":96,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":125,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":3,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":245,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}>(args: ({\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} & ... 2 more ... & {\\n ...;\\n}) | ... 4 more ... | ({\\n ...;\\n} & ... 2 more ... & {\\n ...;\\n})) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":288,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":304,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":320,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":336,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":386,\"length\":21,\"target\":\"serializedTransaction\",\"line\":11,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { recoverTransactionAddress } from 'viem'\\nimport { walletClient } from './client'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst address = await recoverTransactionAddress({ // [!code focus:99]\\n serializedTransaction,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":9,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":96,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":125,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":3,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":245,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}>(args: ({\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} & ... 2 more ... & {\\n ...;\\n}) | ... 4 more ... | ({\\n ...;\\n} & ... 2 more ... & {\\n ...;\\n})) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":288,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":304,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":320,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":336,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":386,\"length\":21,\"target\":\"serializedTransaction\",\"line\":11,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,277]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverTransactionAddress } from 'viem'\\nimport { walletClient } from './client'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\n\\nconst address = await recoverTransactionAddress({ // [!code focus:99]\\n serializedTransaction,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":9,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":96,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":125,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":3,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":155,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":245,\"length\":21,\"target\":\"serializedTransaction\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}>(args: ({\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} & ... 2 more ... & {\\n ...;\\n}) | ... 4 more ... | ({\\n ...;\\n} & ... 2 more ... & {\\n ...;\\n})) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":288,\"length\":15,\"target\":\"signTransaction\",\"line\":8,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":304,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":65},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":320,\"length\":7,\"target\":\"address\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverTransactionAddress(parameters: RecoverTransactionAddressParameters): Promise\\nimport recoverTransactionAddress\",\"start\":336,\"length\":25,\"target\":\"recoverTransactionAddress\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":386,\"length\":21,\"target\":\"serializedTransaction\",\"line\":11,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8bf4a5c799bdb34acfdc66b1b91e5620d24be853d53a455c09dd6cdb8d5699d3.json b/site/.cache/twoslash.8bf4a5c799bdb34acfdc66b1b91e5620d24be853d53a455c09dd6cdb8d5699d3.json index 476d6322af..377358d18b 100644 --- a/site/.cache/twoslash.8bf4a5c799bdb34acfdc66b1b91e5620d24be853d53a455c09dd6cdb8d5699d3.json +++ b/site/.cache/twoslash.8bf4a5c799bdb34acfdc66b1b91e5620d24be853d53a455c09dd6cdb8d5699d3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":213,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":235,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":270,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":213,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":235,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":270,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":213,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":235,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":270,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":213,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":235,\"length\":9,\"target\":\"parseGwei\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":270,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8c69cbdee2d16ac4a546fc86105ca3f845ef0274afca81ca715e050034582679.json b/site/.cache/twoslash.8c69cbdee2d16ac4a546fc86105ca3f845ef0274afca81ca715e050034582679.json new file mode 100644 index 0000000000..d3fda243a1 --- /dev/null +++ b/site/.cache/twoslash.8c69cbdee2d16ac4a546fc86105ca3f845ef0274afca81ca715e050034582679.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n type: 'deployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"start\":155,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"deployed\\\"\",\"start\":186,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n chainId: 1, // [!code focus]\\n type: 'deployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"start\":155,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"deployed\\\"\",\"start\":186,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8c864f7cc826fd434d01caa34a71ef76593c89a81efcc22c41f1a971930544b4.json b/site/.cache/twoslash.8c864f7cc826fd434d01caa34a71ef76593c89a81efcc22c41f1a971930544b4.json index 7d25778317..988efdf0b5 100644 --- a/site/.cache/twoslash.8c864f7cc826fd434d01caa34a71ef76593c89a81efcc22c41f1a971930544b4.json +++ b/site/.cache/twoslash.8c864f7cc826fd434d01caa34a71ef76593c89a81efcc22c41f1a971930544b4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":167,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":190,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":199,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":231,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":238,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":249,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":260,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":167,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":190,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":199,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":231,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":238,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":249,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":260,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":167,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":190,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":199,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":231,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":238,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":249,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":260,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":152,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":167,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":190,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":199,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":231,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":238,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":249,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":260,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8cbdcc2f38e8d85156e625b285ea039a652e49d81550c2296efef28fc017bcf2.json b/site/.cache/twoslash.8cbdcc2f38e8d85156e625b285ea039a652e49d81550c2296efef28fc017bcf2.json index 2b0a303f60..d7ddefff44 100644 --- a/site/.cache/twoslash.8cbdcc2f38e8d85156e625b285ea039a652e49d81550c2296efef28fc017bcf2.json +++ b/site/.cache/twoslash.8cbdcc2f38e8d85156e625b285ea039a652e49d81550c2296efef28fc017bcf2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":467,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":477,\"length\":9,\"target\":\"transport\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":488,\"length\":4,\"target\":\"http\",\"line\":17,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":467,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":477,\"length\":9,\"target\":\"transport\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":488,\"length\":4,\"target\":\"http\",\"line\":17,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":467,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":477,\"length\":9,\"target\":\"transport\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":488,\"length\":4,\"target\":\"http\",\"line\":17,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":467,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":477,\"length\":9,\"target\":\"transport\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":488,\"length\":4,\"target\":\"http\",\"line\":17,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8cf3fa85dd51c2727ab101231bbe2f954ae3b4d22d5c0e80dc4e71dc3a1f36db.json b/site/.cache/twoslash.8cf3fa85dd51c2727ab101231bbe2f954ae3b4d22d5c0e80dc4e71dc3a1f36db.json deleted file mode 100644 index a8636d3237..0000000000 --- a/site/.cache/twoslash.8cf3fa85dd51c2727ab101231bbe2f954ae3b4d22d5c0e80dc4e71dc3a1f36db.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":71,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":110,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n fetchOptions: { // [!code focus:5]\\n headers: {\\n 'Authorization': 'Bearer ...'\\n }\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) fetchOptions?: Omit | undefined\",\"docs\":\"Request configuration to pass to `fetch`.\",\"tags\":[[\"link\",\"https://developer.mozilla.org/en-US/docs/Web/API/fetch\"]],\"start\":71,\"length\":12,\"target\":\"fetchOptions\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) headers?: HeadersInit | undefined\",\"docs\":\"A Headers object, an object literal, or an array of two-item arrays to set request's headers.\",\"start\":110,\"length\":7,\"target\":\"headers\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8d3daf6080498a1a62da08b87cd36de8e466e3dac0a241b15df80d33a6cfebb5.json b/site/.cache/twoslash.8d3daf6080498a1a62da08b87cd36de8e466e3dac0a241b15df80d33a6cfebb5.json index ebc0fa596b..1db242fc6a 100644 --- a/site/.cache/twoslash.8d3daf6080498a1a62da08b87cd36de8e466e3dac0a241b15df80d33a6cfebb5.json +++ b/site/.cache/twoslash.8d3daf6080498a1a62da08b87cd36de8e466e3dac0a241b15df80d33a6cfebb5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8d526d25106c5431d378888a1e839d72e0bead0495e7f41a3e1a706e7cd57d2d.json b/site/.cache/twoslash.8d526d25106c5431d378888a1e839d72e0bead0495e7f41a3e1a706e7cd57d2d.json index f1e4488416..0873913f24 100644 --- a/site/.cache/twoslash.8d526d25106c5431d378888a1e839d72e0bead0495e7f41a3e1a706e7cd57d2d.json +++ b/site/.cache/twoslash.8d526d25106c5431d378888a1e839d72e0bead0495e7f41a3e1a706e7cd57d2d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":132,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":132,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":132,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":132,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8d8d662454bd896df6d73cfa366912c4c0faa88a49ade227400ab5c3f6a8403a.json b/site/.cache/twoslash.8d8d662454bd896df6d73cfa366912c4c0faa88a49ade227400ab5c3f6a8403a.json deleted file mode 100644 index bdfb75c5ea..0000000000 --- a/site/.cache/twoslash.8d8d662454bd896df6d73cfa366912c4c0faa88a49ade227400ab5c3f6a8403a.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":166,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined, {\\n ...;\\n}>(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":179,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":5,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n}) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":209,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":220,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":240,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":275,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":297,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,365]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":166,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined, {\\n ...;\\n}>(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":179,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":5,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n}) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":209,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":220,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":240,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":275,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":297,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8daa8c00d440e7cdfcdb29d0a290328732c3a8b1e2ef376dbf66e7d7cd0fe90f.json b/site/.cache/twoslash.8daa8c00d440e7cdfcdb29d0a290328732c3a8b1e2ef376dbf66e7d7cd0fe90f.json index 567476345c..6cbae74848 100644 --- a/site/.cache/twoslash.8daa8c00d440e7cdfcdb29d0a290328732c3a8b1e2ef376dbf66e7d7cd0fe90f.json +++ b/site/.cache/twoslash.8daa8c00d440e7cdfcdb29d0a290328732c3a8b1e2ef376dbf66e7d7cd0fe90f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 12_000, // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":155,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 12_000, // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":155,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 12_000, // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":155,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n pollingInterval: 12_000, // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":155,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8de506712878734f51b8e983c26276792424842e6cdb94c44d5bf0ce357d6108.json b/site/.cache/twoslash.8de506712878734f51b8e983c26276792424842e6cdb94c44d5bf0ce357d6108.json index 66fa5fcf09..67ad39a66c 100644 --- a/site/.cache/twoslash.8de506712878734f51b8e983c26276792424842e6cdb94c44d5bf0ce357d6108.json +++ b/site/.cache/twoslash.8de506712878734f51b8e983c26276792424842e6cdb94c44d5bf0ce357d6108.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":52,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":52,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":52,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":52,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8e634b6e95ec02cd82474f3fc260ef7e45be425ad7c982b153571e1c1c43b428.json b/site/.cache/twoslash.8e634b6e95ec02cd82474f3fc260ef7e45be425ad7c982b153571e1c1c43b428.json deleted file mode 100644 index 0b8b4f526c..0000000000 --- a/site/.cache/twoslash.8e634b6e95ec02cd82474f3fc260ef7e45be425ad7c982b153571e1c1c43b428.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8eee05c0377aab2193ab2af1598c7fc7d6e90bacfc49ab60e4a00f2923b36eb5.json b/site/.cache/twoslash.8eee05c0377aab2193ab2af1598c7fc7d6e90bacfc49ab60e4a00f2923b36eb5.json index 11f45745f8..1c686210fa 100644 --- a/site/.cache/twoslash.8eee05c0377aab2193ab2af1598c7fc7d6e90bacfc49ab60e4a00f2923b36eb5.json +++ b/site/.cache/twoslash.8eee05c0377aab2193ab2af1598c7fc7d6e90bacfc49ab60e4a00f2923b36eb5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":262,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8f36aedfb62dda93563af8f994b2725ce091beda5db139bdc8062a9898b3dfb2.json b/site/.cache/twoslash.8f36aedfb62dda93563af8f994b2725ce091beda5db139bdc8062a9898b3dfb2.json index f25c0d1aee..43e259bdcc 100644 --- a/site/.cache/twoslash.8f36aedfb62dda93563af8f994b2725ce091beda5db139bdc8062a9898b3dfb2.json +++ b/site/.cache/twoslash.8f36aedfb62dda93563af8f994b2725ce091beda5db139bdc8062a9898b3dfb2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { customRpc } from './rpc'\\n\\nconst client = createWalletClient({ \\n chain: mainnet,\\n transport: custom({\\n async request({ method, params }) {\\n const response = await customRpc.request(method, params)\\n return response\\n }\\n })\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":97,\"length\":9,\"target\":\"customRpc\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":129,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":138,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":162,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":169,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":180,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n request({ method, params }: any): Promise;\\n}>(provider: {\\n request({ method, params }: any): Promise;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":191,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(method) request({ method, params }: any): Promise\",\"start\":210,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":220,\"length\":6,\"target\":\"method\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":228,\"length\":6,\"target\":\"params\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":252,\"length\":8,\"target\":\"response\",\"line\":8,\"character\":12},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":269,\"length\":9,\"target\":\"customRpc\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"any\",\"start\":279,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":287,\"length\":6,\"target\":\"method\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":295,\"length\":6,\"target\":\"params\",\"line\":8,\"character\":55},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":316,\"length\":8,\"target\":\"response\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { customRpc } from './rpc'\\n\\nconst client = createWalletClient({ \\n chain: mainnet,\\n transport: custom({\\n async request({ method, params }) {\\n const response = await customRpc.request(method, params)\\n return response\\n }\\n })\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":97,\"length\":9,\"target\":\"customRpc\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":129,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":138,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":162,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":169,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":180,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n request({ method, params }: any): Promise;\\n}>(provider: {\\n request({ method, params }: any): Promise;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":191,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(method) request({ method, params }: any): Promise\",\"start\":210,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":220,\"length\":6,\"target\":\"method\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":228,\"length\":6,\"target\":\"params\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":252,\"length\":8,\"target\":\"response\",\"line\":8,\"character\":12},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":269,\"length\":9,\"target\":\"customRpc\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"any\",\"start\":279,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":287,\"length\":6,\"target\":\"method\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":295,\"length\":6,\"target\":\"params\",\"line\":8,\"character\":55},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":316,\"length\":8,\"target\":\"response\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { customRpc } from './rpc'\\n\\nconst client = createWalletClient({ \\n chain: mainnet,\\n transport: custom({\\n async request({ method, params }) {\\n const response = await customRpc.request(method, params)\\n return response\\n }\\n })\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":97,\"length\":9,\"target\":\"customRpc\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":129,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":138,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":162,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":169,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":180,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n request({ method, params }: any): Promise;\\n}>(provider: {\\n request({ method, params }: any): Promise;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":191,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(method) request({ method, params }: any): Promise\",\"start\":210,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":220,\"length\":6,\"target\":\"method\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":228,\"length\":6,\"target\":\"params\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":252,\"length\":8,\"target\":\"response\",\"line\":8,\"character\":12},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":269,\"length\":9,\"target\":\"customRpc\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"any\",\"start\":279,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":287,\"length\":6,\"target\":\"method\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":295,\"length\":6,\"target\":\"params\",\"line\":8,\"character\":55},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":316,\"length\":8,\"target\":\"response\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { customRpc } from './rpc'\\n\\nconst client = createWalletClient({ \\n chain: mainnet,\\n transport: custom({\\n async request({ method, params }) {\\n const response = await customRpc.request(method, params)\\n return response\\n }\\n })\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":97,\"length\":9,\"target\":\"customRpc\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":129,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":138,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":162,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":169,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":180,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n request({ method, params }: any): Promise;\\n}>(provider: {\\n request({ method, params }: any): Promise;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":191,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(method) request({ method, params }: any): Promise\",\"start\":210,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":220,\"length\":6,\"target\":\"method\",\"line\":7,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":228,\"length\":6,\"target\":\"params\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":252,\"length\":8,\"target\":\"response\",\"line\":8,\"character\":12},{\"type\":\"hover\",\"text\":\"import customRpc\",\"start\":269,\"length\":9,\"target\":\"customRpc\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"any\",\"start\":279,\"length\":7,\"target\":\"request\",\"line\":8,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) method: any\",\"start\":287,\"length\":6,\"target\":\"method\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(parameter) params: any\",\"start\":295,\"length\":6,\"target\":\"params\",\"line\":8,\"character\":55},{\"type\":\"hover\",\"text\":\"const response: any\",\"start\":316,\"length\":8,\"target\":\"response\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8fcd45fb77d6cb55df16b248e5ebb990a946da665768d27a0563d99ef016cf73.json b/site/.cache/twoslash.8fcd45fb77d6cb55df16b248e5ebb990a946da665768d27a0563d99ef016cf73.json index 5f4aac8d01..576118cda1 100644 --- a/site/.cache/twoslash.8fcd45fb77d6cb55df16b248e5ebb990a946da665768d27a0563d99ef016cf73.json +++ b/site/.cache/twoslash.8fcd45fb77d6cb55df16b248e5ebb990a946da665768d27a0563d99ef016cf73.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":72,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":72,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n transport: http(), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":72,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n transport: http(), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":72,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":83,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.8fee6dc7165012d2e3bcbd01d3b4df0c081657e177e80d0a5116a1a39f24e297.json b/site/.cache/twoslash.8fee6dc7165012d2e3bcbd01d3b4df0c081657e177e80d0a5116a1a39f24e297.json index 4a8ac00bf3..4fb16adbb9 100644 --- a/site/.cache/twoslash.8fee6dc7165012d2e3bcbd01d3b4df0c081657e177e80d0a5116a1a39f24e297.json +++ b/site/.cache/twoslash.8fee6dc7165012d2e3bcbd01d3b4df0c081657e177e80d0a5116a1a39f24e297.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":76,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":105,\"length\":6,\"target\":\"custom\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,122]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createWalletClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":76,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":105,\"length\":6,\"target\":\"custom\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":76,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":105,\"length\":6,\"target\":\"custom\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,122]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createWalletClient({\\n cacheTime: 10_000, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) cacheTime?: number | undefined\",\"docs\":\"Time (in ms) that cached data will remain in memory.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":38,\"length\":9,\"target\":\"cacheTime\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":76,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":83,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":94,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":105,\"length\":6,\"target\":\"custom\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":112,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":119,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.901a7f09ef0c538558d397a0a62ef25a5c367c90fe130d85de5fce149fe77270.json b/site/.cache/twoslash.901a7f09ef0c538558d397a0a62ef25a5c367c90fe130d85de5fce149fe77270.json deleted file mode 100644 index 2209323149..0000000000 --- a/site/.cache/twoslash.901a7f09ef0c538558d397a0a62ef25a5c367c90fe130d85de5fce149fe77270.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":266,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":164,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":221,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":228,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":266,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.908053f07353501999eff44ccc405f958557d4f33a6bcef21d2cd57204309f59.json b/site/.cache/twoslash.908053f07353501999eff44ccc405f958557d4f33a6bcef21d2cd57204309f59.json index 13ad5b19fd..0c9ca7d9ed 100644 --- a/site/.cache/twoslash.908053f07353501999eff44ccc405f958557d4f33a6bcef21d2cd57204309f59.json +++ b/site/.cache/twoslash.908053f07353501999eff44ccc405f958557d4f33a6bcef21d2cd57204309f59.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":57,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":83,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":57,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":83,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":57,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":83,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst hash = await walletClient.sendTransaction({ // [!code focus:99]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// '0x...'\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":57,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":83,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null)\",\"start\":123,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":134,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":186,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.914e81a649164406db6b416f6a62309e0d440d5eb9177db4fb589dc81f07c821.json b/site/.cache/twoslash.914e81a649164406db6b416f6a62309e0d440d5eb9177db4fb589dc81f07c821.json index c28a02dfda..dc2c82d706 100644 --- a/site/.cache/twoslash.914e81a649164406db6b416f6a62309e0d440d5eb9177db4fb589dc81f07c821.json +++ b/site/.cache/twoslash.914e81a649164406db6b416f6a62309e0d440d5eb9177db4fb589dc81f07c821.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x01${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":57,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":102,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":124,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":171,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x01${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":57,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":102,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":124,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":171,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x01${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":57,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":102,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":124,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":171,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x01${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":57,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":102,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":124,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":171,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.91d5807b6cc3c0f1b9386a6fb4cec89e16e298ed98039e30a62c48548f1e8ec4.json b/site/.cache/twoslash.91d5807b6cc3c0f1b9386a6fb4cec89e16e298ed98039e30a62c48548f1e8ec4.json deleted file mode 100644 index cea4b72b10..0000000000 --- a/site/.cache/twoslash.91d5807b6cc3c0f1b9386a6fb4cec89e16e298ed98039e30a62c48548f1e8ec4.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: {\\n attempts: 10, // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) attempts?: number | undefined\",\"docs\":\"The maximum number of reconnection attempts.\",\"tags\":[[\"default\",\"5\"]],\"start\":91,\"length\":8,\"target\":\"attempts\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n reconnect: {\\n attempts: 10, // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) reconnect?: boolean | {\\n attempts?: number | undefined;\\n delay?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to attempt to reconnect on socket failure.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"reconnect\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) attempts?: number | undefined\",\"docs\":\"The maximum number of reconnection attempts.\",\"tags\":[[\"default\",\"5\"]],\"start\":91,\"length\":8,\"target\":\"attempts\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.91dc47aded9958cba8da85ad9a4730fe17a6567e60427f4583008bea8a974872.json b/site/.cache/twoslash.91dc47aded9958cba8da85ad9a4730fe17a6567e60427f4583008bea8a974872.json index 6206b9f841..9d8df05fa9 100644 --- a/site/.cache/twoslash.91dc47aded9958cba8da85ad9a4730fe17a6567e60427f4583008bea8a974872.json +++ b/site/.cache/twoslash.91dc47aded9958cba8da85ad9a4730fe17a6567e60427f4583008bea8a974872.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nexport const account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":331,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":339,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":382,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":398,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":426,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":437,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nexport const account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":331,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":339,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":382,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":398,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":426,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":437,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nexport const account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":331,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":339,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":382,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":398,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":426,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":437,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nexport const account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":69,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":90,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":156,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":194,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":331,\"length\":5,\"target\":\"owner\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":339,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":10,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":382,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":398,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":12,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":426,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":437,\"length\":6,\"target\":\"owners\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":14,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.920b8b9b8a511e7f9ad6c13631e896e33d03fb058e4c2b39d5e1bd68480f362e.json b/site/.cache/twoslash.920b8b9b8a511e7f9ad6c13631e896e33d03fb058e4c2b39d5e1bd68480f362e.json deleted file mode 100644 index 7f4ce69aaa..0000000000 --- a/site/.cache/twoslash.920b8b9b8a511e7f9ad6c13631e896e33d03fb058e4c2b39d5e1bd68480f362e.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.921100e52e31b414482583677e48ff82e0bac9fe2cf07b5d8e45fc79cf2291a2.json b/site/.cache/twoslash.921100e52e31b414482583677e48ff82e0bac9fe2cf07b5d8e45fc79cf2291a2.json index 39398cc8a3..1eed9f6747 100644 --- a/site/.cache/twoslash.921100e52e31b414482583677e48ff82e0bac9fe2cf07b5d8e45fc79cf2291a2.json +++ b/site/.cache/twoslash.921100e52e31b414482583677e48ff82e0bac9fe2cf07b5d8e45fc79cf2291a2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { recoverAuthorizationAddress } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":61,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":173,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":179,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":215,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":237,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":250,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":272,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":281,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":288,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":358,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":374,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,241]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { recoverAuthorizationAddress } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":61,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":173,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":179,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":215,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":237,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":250,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":272,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":281,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":288,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":358,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":374,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { recoverAuthorizationAddress } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":61,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":173,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":179,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":215,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":237,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":250,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":272,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":281,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":288,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":358,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":374,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,241]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { recoverAuthorizationAddress } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":61,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":135,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":173,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":179,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":215,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":237,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":250,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":272,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":281,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":288,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":358,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":374,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":423,\"length\":13,\"target\":\"authorization\",\"line\":12,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.92381c5661cf9773c6cb94e33d355db095d4cf472c0659feabfd89c39b207d4a.json b/site/.cache/twoslash.92381c5661cf9773c6cb94e33d355db095d4cf472c0659feabfd89c39b207d4a.json index 42c5e00d01..15133625c2 100644 --- a/site/.cache/twoslash.92381c5661cf9773c6cb94e33d355db095d4cf472c0659feabfd89c39b207d4a.json +++ b/site/.cache/twoslash.92381c5661cf9773c6cb94e33d355db095d4cf472c0659feabfd89c39b207d4a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to execute.\",\"start\":345,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":366,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":422,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":429,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":464,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":520,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":531,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":562,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":666,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":722,\"length\":3,\"target\":\"abi\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":733,\"length\":12,\"target\":\"functionName\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":769,\"length\":4,\"target\":\"args\",\"line\":28,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to execute.\",\"start\":345,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":366,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":422,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":429,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":464,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":520,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":531,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":562,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":666,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":722,\"length\":3,\"target\":\"abi\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":733,\"length\":12,\"target\":\"functionName\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":769,\"length\":4,\"target\":\"args\",\"line\":28,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to execute.\",\"start\":345,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":366,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":422,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":429,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":464,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":520,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":531,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":562,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":666,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":722,\"length\":3,\"target\":\"abi\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":733,\"length\":12,\"target\":\"functionName\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":769,\"length\":4,\"target\":\"args\",\"line\":28,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to execute.\",\"start\":345,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":366,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":422,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":429,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":464,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":520,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":531,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":562,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\"\",\"start\":666,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":722,\"length\":3,\"target\":\"abi\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":733,\"length\":12,\"target\":\"functionName\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":769,\"length\":4,\"target\":\"args\",\"line\":28,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9250fc7e2a3d5a24801aa76ae21e790a25090f683231a59551e99739488c6fb8.json b/site/.cache/twoslash.9250fc7e2a3d5a24801aa76ae21e790a25090f683231a59551e99739488c6fb8.json deleted file mode 100644 index 75aa260655..0000000000 --- a/site/.cache/twoslash.9250fc7e2a3d5a24801aa76ae21e790a25090f683231a59551e99739488c6fb8.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,529]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\nconst address = await recoverAuthorizationAddress({\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":132,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":148,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: SignAuthorizationReturnType | OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":180,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.92cba4a53ff2122ec655b459e1b5eb6b739ac7a108a2551361c5490165bee3d9.json b/site/.cache/twoslash.92cba4a53ff2122ec655b459e1b5eb6b739ac7a108a2551361c5490165bee3d9.json new file mode 100644 index 0000000000..f664b0b240 --- /dev/null +++ b/site/.cache/twoslash.92cba4a53ff2122ec655b459e1b5eb6b739ac7a108a2551361c5490165bee3d9.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, {\\n ...;\\n}, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,398]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, {\\n ...;\\n}, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":277,\"length\":7,\"target\":\"batches\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":300,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":329,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":389,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":396,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":450,\"length\":5,\"target\":\"calls\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":479,\"length\":4,\"target\":\"data\",\"line\":19,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":509,\"length\":2,\"target\":\"to\",\"line\":20,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.947ac85edc50397e68623393ee9392121add944093bf54a7d2b0f2d02739b87b.json b/site/.cache/twoslash.947ac85edc50397e68623393ee9392121add944093bf54a7d2b0f2d02739b87b.json index fa58617c38..ef339cd0ea 100644 --- a/site/.cache/twoslash.947ac85edc50397e68623393ee9392121add944093bf54a7d2b0f2d02739b87b.json +++ b/site/.cache/twoslash.947ac85edc50397e68623393ee9392121add944093bf54a7d2b0f2d02739b87b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createSiweMessage, generateSiweNonce } from 'viem/siwe'\\nimport { mainnet } from 'viem/chains'\\nimport { account } from './client'\\n\\nexport const message = createSiweMessage({\\n address: account.address,\\n chainId: mainnet.id,\\n domain: 'example.com',\\n nonce: generateSiweNonce(),\\n uri: 'https://example.com/path',\\n version: '1',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":9,\"length\":17,\"target\":\"createSiweMessage\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":28,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":74,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":112,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const message: string\",\"start\":152,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":162,\"length\":17,\"target\":\"createSiweMessage\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The Ethereum address performing the signing.\",\"start\":184,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":193,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":201,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":212,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":221,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) id: 1\",\"start\":229,\"length\":2,\"target\":\"id\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) authority that is requesting the signing.\",\"start\":235,\"length\":6,\"target\":\"domain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":267,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) uri: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) URI referring to the resource that is the subject of the signing (as in the subject of a claim).\",\"start\":290,\"length\":3,\"target\":\"uri\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) version: \\\"1\\\"\",\"docs\":\"The current version of the SIWE Message.\",\"start\":325,\"length\":7,\"target\":\"version\",\"line\":10,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,572]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// ---cut---\\nimport { createSiweMessage, generateSiweNonce } from 'viem/siwe'\\nimport { mainnet } from 'viem/chains'\\nimport { account } from './client'\\n\\nexport const message = createSiweMessage({\\n address: account.address,\\n chainId: mainnet.id,\\n domain: 'example.com',\\n nonce: generateSiweNonce(),\\n uri: 'https://example.com/path',\\n version: '1',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":9,\"length\":17,\"target\":\"createSiweMessage\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":28,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":74,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":112,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const message: string\",\"start\":152,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":162,\"length\":17,\"target\":\"createSiweMessage\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The Ethereum address performing the signing.\",\"start\":184,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":193,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":201,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":212,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":221,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) id: 1\",\"start\":229,\"length\":2,\"target\":\"id\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) authority that is requesting the signing.\",\"start\":235,\"length\":6,\"target\":\"domain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":267,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) uri: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) URI referring to the resource that is the subject of the signing (as in the subject of a claim).\",\"start\":290,\"length\":3,\"target\":\"uri\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) version: \\\"1\\\"\",\"docs\":\"The current version of the SIWE Message.\",\"start\":325,\"length\":7,\"target\":\"version\",\"line\":10,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createSiweMessage, generateSiweNonce } from 'viem/siwe'\\nimport { mainnet } from 'viem/chains'\\nimport { account } from './client'\\n\\nexport const message = createSiweMessage({\\n address: account.address,\\n chainId: mainnet.id,\\n domain: 'example.com',\\n nonce: generateSiweNonce(),\\n uri: 'https://example.com/path',\\n version: '1',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":9,\"length\":17,\"target\":\"createSiweMessage\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":28,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":74,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":112,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const message: string\",\"start\":152,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":162,\"length\":17,\"target\":\"createSiweMessage\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The Ethereum address performing the signing.\",\"start\":184,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":193,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":201,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":212,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":221,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) id: 1\",\"start\":229,\"length\":2,\"target\":\"id\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) authority that is requesting the signing.\",\"start\":235,\"length\":6,\"target\":\"domain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":267,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) uri: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) URI referring to the resource that is the subject of the signing (as in the subject of a claim).\",\"start\":290,\"length\":3,\"target\":\"uri\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) version: \\\"1\\\"\",\"docs\":\"The current version of the SIWE Message.\",\"start\":325,\"length\":7,\"target\":\"version\",\"line\":10,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,572]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":355,\"end\":383},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":443,\"end\":468}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const walletClient = createWalletClient({\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const [account] = await walletClient.getAddresses()\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// ---cut---\\nimport { createSiweMessage, generateSiweNonce } from 'viem/siwe'\\nimport { mainnet } from 'viem/chains'\\nimport { account } from './client'\\n\\nexport const message = createSiweMessage({\\n address: account.address,\\n chainId: mainnet.id,\\n domain: 'example.com',\\n nonce: generateSiweNonce(),\\n uri: 'https://example.com/path',\\n version: '1',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":9,\"length\":17,\"target\":\"createSiweMessage\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":28,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":74,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":112,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const message: string\",\"start\":152,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createSiweMessage(parameters: CreateSiweMessageParameters): CreateSiweMessageReturnType\\nimport createSiweMessage\",\"tags\":[[\"description\",\"Creates EIP-4361 formatted message.\"],[\"example\",\"const message = createMessage({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n chainId: 1,\\n domain: 'example.com',\\n nonce: 'foobarbaz',\\n uri: 'https://example.com/path',\\n version: '1',\\n})\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"]],\"start\":162,\"length\":17,\"target\":\"createSiweMessage\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The Ethereum address performing the signing.\",\"start\":184,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":193,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"any\",\"start\":201,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":212,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":221,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) id: 1\",\"start\":229,\"length\":2,\"target\":\"id\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) domain: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) authority that is requesting the signing.\",\"start\":235,\"length\":6,\"target\":\"domain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) generateSiweNonce(): string\\nimport generateSiweNonce\",\"tags\":[[\"description\",\"Generates random EIP-4361 nonce.\"],[\"example\",\"const nonce = generateNonce()\"],[\"see\",\"https://eips.ethereum.org/EIPS/eip-4361\"],[\"returns\",\"A randomly generated EIP-4361 nonce.\"]],\"start\":267,\"length\":17,\"target\":\"generateSiweNonce\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) uri: string\",\"docs\":\"[RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) URI referring to the resource that is the subject of the signing (as in the subject of a claim).\",\"start\":290,\"length\":3,\"target\":\"uri\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) version: \\\"1\\\"\",\"docs\":\"The current version of the SIWE Message.\",\"start\":325,\"length\":7,\"target\":\"version\",\"line\":10,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.94ae9064c182d7469bc09fa965fcce24e70bd04b61259c104bd54cad1b255304.json b/site/.cache/twoslash.94ae9064c182d7469bc09fa965fcce24e70bd04b61259c104bd54cad1b255304.json index fe147fa77e..b52dcd1eba 100644 --- a/site/.cache/twoslash.94ae9064c182d7469bc09fa965fcce24e70bd04b61259c104bd54cad1b255304.json +++ b/site/.cache/twoslash.94ae9064c182d7469bc09fa965fcce24e70bd04b61259c104bd54cad1b255304.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":464,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":490,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":528,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":546,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":578,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":618,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":633,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":647,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":666,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":731,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":743,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":762,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":827,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":464,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":490,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":528,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":546,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":578,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":618,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":633,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":647,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":666,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":731,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":743,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":762,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":827,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":464,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":490,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":528,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":546,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":578,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":618,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":633,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":647,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":666,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":731,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":743,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":762,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":827,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":464,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":490,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":502,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":528,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":546,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":578,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":618,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":633,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":647,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":666,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":731,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":743,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":762,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":827,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.94cf7576e89c94c437b9b9effe9b131b184283ffada9c32d9928f3874819d11e.json b/site/.cache/twoslash.94cf7576e89c94c437b9b9effe9b131b184283ffada9c32d9928f3874819d11e.json index 94372e39df..80020d12c7 100644 --- a/site/.cache/twoslash.94cf7576e89c94c437b9b9effe9b131b184283ffada9c32d9928f3874819d11e.json +++ b/site/.cache/twoslash.94cf7576e89c94c437b9b9effe9b131b184283ffada9c32d9928f3874819d11e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":8,\"length\":8,\"target\":\"gasPrice\",\"line\":0,\"character\":8},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":27,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":40,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":63,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":8,\"length\":8,\"target\":\"gasPrice\",\"line\":0,\"character\":8},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":27,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":40,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":63,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":8,\"length\":8,\"target\":\"gasPrice\",\"line\":0,\"character\":8},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":27,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":40,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":63,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst { gasPrice } = await publicClient.estimateFeesPerGas({\\n type: 'legacy' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const gasPrice: bigint\",\"docs\":\"Base fee per gas.\",\"start\":8,\"length\":8,\"target\":\"gasPrice\",\"line\":0,\"character\":8},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":27,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: (args?: EstimateFeesPerGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, \\\"legacy\\\"> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":40,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) type?: FeeValuesType | undefined\",\"docs\":\"The type of fee values to return.\\n\\n- `legacy`: Returns the legacy gas price.\\n- `eip1559`: Returns the max fee per gas and max priority fee per gas.\",\"tags\":[[\"default\",\"'eip1559'\"]],\"start\":63,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.95301854ebf6ec013ef778bd80f749b5e231ac38f3203d906395fbf1e33ffdaf.json b/site/.cache/twoslash.95301854ebf6ec013ef778bd80f749b5e231ac38f3203d906395fbf1e33ffdaf.json index 57e370a1b4..48faa63c83 100644 --- a/site/.cache/twoslash.95301854ebf6ec013ef778bd80f749b5e231ac38f3203d906395fbf1e33ffdaf.json +++ b/site/.cache/twoslash.95301854ebf6ec013ef778bd80f749b5e231ac38f3203d906395fbf1e33ffdaf.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":95,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":104,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":145,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":156,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":163,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":170,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.95762fbd8caf8d7a8299330a0cd86dcf20c56784f9a3a49c4931fa528f984fc6.json b/site/.cache/twoslash.95762fbd8caf8d7a8299330a0cd86dcf20c56784f9a3a49c4931fa528f984fc6.json deleted file mode 100644 index 5584dcc6c7..0000000000 --- a/site/.cache/twoslash.95762fbd8caf8d7a8299330a0cd86dcf20c56784f9a3a49c4931fa528f984fc6.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"// The below will send a single Batch JSON-RPC HTTP request to the RPC Provider.\\nconst [blockNumber, balance, ensName] = await Promise.all([\\n client.getBlockNumber(),\\n client.getBalance({ address: '0xd2135CfB216b74109775236E36d4b433F1DF507B' }),\\n client.getEnsName({ address: '0xd2135CfB216b74109775236E36d4b433F1DF507B' }),\\n])\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":88,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":7},{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":101,\"length\":7,\"target\":\"balance\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"const ensName: GetEnsNameReturnType\",\"start\":110,\"length\":7,\"target\":\"ensName\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":127,\"length\":7,\"target\":\"Promise\",\"line\":1,\"character\":46},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise, Promise, Promise]>(values: [Promise, Promise, Promise<...>]): Promise<...> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":135,\"length\":3,\"target\":\"all\",\"line\":1,\"character\":54},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":143,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":150,\"length\":14,\"target\":\"getBlockNumber\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":170,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getBalance: (args: GetBalanceParameters) => Promise\",\"docs\":\"Returns the balance of an address in wei.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBalance\\n- JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\",\"tags\":[[\"remarks\",\"You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\\n\\n```ts\\nconst balance = await getBalance(client, {\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n blockTag: 'safe'\\n})\\nconst balanceAsEther = formatEther(balance)\\n// \\\"6.942\\\"\\n```\"],[\"param\",\"args - {@link GetBalanceParameters}\"],[\"returns\",\"The balance of the address in wei. {@link GetBalanceReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst balance = await client.getBalance({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\\n// 10000000000000000000000n (wei)\"]],\"start\":177,\"length\":10,\"target\":\"getBalance\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address of the account.\",\"start\":190,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getEnsName: (args: GetEnsNameParameters) => Promise\",\"docs\":\"Gets primary name for specified address.\\n\\n- Docs: https://viem.sh/docs/ens/actions/getEnsName\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\",\"tags\":[[\"remarks\",\"Calls `reverse(bytes)` on ENS Universal Resolver Contract to \\\"reverse resolve\\\" the address to the primary ENS name.\"],[\"param\",\"args - {@link GetEnsNameParameters}\"],[\"returns\",\"Name or `null` if not found. {@link GetEnsNameReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst ensName = await client.getEnsName({\\n address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n})\\n// 'wevm.eth'\"]],\"start\":257,\"length\":10,\"target\":\"getEnsName\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address to get ENS name for.\",\"start\":270,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":22}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,221]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://eth-mainnet.g.alchemy.com/v2/...'), \\n})\\n// ---cut---\\n// The below will send a single Batch JSON-RPC HTTP request to the RPC Provider.\\nconst [blockNumber, balance, ensName] = await Promise.all([\\n client.getBlockNumber(),\\n client.getBalance({ address: '0xd2135CfB216b74109775236E36d4b433F1DF507B' }),\\n client.getEnsName({ address: '0xd2135CfB216b74109775236E36d4b433F1DF507B' }),\\n])\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":88,\"length\":11,\"target\":\"blockNumber\",\"line\":1,\"character\":7},{\"type\":\"hover\",\"text\":\"const balance: bigint\",\"start\":101,\"length\":7,\"target\":\"balance\",\"line\":1,\"character\":20},{\"type\":\"hover\",\"text\":\"const ensName: GetEnsNameReturnType\",\"start\":110,\"length\":7,\"target\":\"ensName\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"var Promise: PromiseConstructor\",\"docs\":\"Represents the completion of an asynchronous operation\",\"start\":127,\"length\":7,\"target\":\"Promise\",\"line\":1,\"character\":46},{\"type\":\"hover\",\"text\":\"(method) PromiseConstructor.all<[Promise, Promise, Promise]>(values: [Promise, Promise, Promise<...>]): Promise<...> (+1 overload)\",\"docs\":\"Creates a Promise that is resolved with an array of results when all of the provided Promises\\nresolve, or rejected when any Promise is rejected.\",\"tags\":[[\"param\",\"values An array of Promises.\"],[\"returns\",\"A new Promise.\"]],\"start\":135,\"length\":3,\"target\":\"all\",\"line\":1,\"character\":54},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":143,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":150,\"length\":14,\"target\":\"getBlockNumber\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":170,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getBalance: (args: GetBalanceParameters) => Promise\",\"docs\":\"Returns the balance of an address in wei.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBalance\\n- JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\",\"tags\":[[\"remarks\",\"You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\\n\\n```ts\\nconst balance = await getBalance(client, {\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n blockTag: 'safe'\\n})\\nconst balanceAsEther = formatEther(balance)\\n// \\\"6.942\\\"\\n```\"],[\"param\",\"args - {@link GetBalanceParameters}\"],[\"returns\",\"The balance of the address in wei. {@link GetBalanceReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst balance = await client.getBalance({\\n address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\\n// 10000000000000000000000n (wei)\"]],\"start\":177,\"length\":10,\"target\":\"getBalance\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address of the account.\",\"start\":190,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getEnsName: (args: GetEnsNameParameters) => Promise\",\"docs\":\"Gets primary name for specified address.\\n\\n- Docs: https://viem.sh/docs/ens/actions/getEnsName\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\",\"tags\":[[\"remarks\",\"Calls `reverse(bytes)` on ENS Universal Resolver Contract to \\\"reverse resolve\\\" the address to the primary ENS name.\"],[\"param\",\"args - {@link GetEnsNameParameters}\"],[\"returns\",\"Name or `null` if not found. {@link GetEnsNameReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst ensName = await client.getEnsName({\\n address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n})\\n// 'wevm.eth'\"]],\"start\":257,\"length\":10,\"target\":\"getEnsName\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address to get ENS name for.\",\"start\":270,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":22}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.957e9c243699d0cd1993fec3115a0781eedbb64dee2842e311a6d83c1af53693.json b/site/.cache/twoslash.957e9c243699d0cd1993fec3115a0781eedbb64dee2842e311a6d83c1af53693.json index 86b98921b8..a6f1017d18 100644 --- a/site/.cache/twoslash.957e9c243699d0cd1993fec3115a0781eedbb64dee2842e311a6d83c1af53693.json +++ b/site/.cache/twoslash.957e9c243699d0cd1993fec3115a0781eedbb64dee2842e311a6d83c1af53693.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":101,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":123,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":210,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":217,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":101,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":123,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":210,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":217,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":101,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":123,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":210,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":217,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":101,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":123,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":210,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":217,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9721bae945137a88d96efbe3a1a518b3ecaa48f963a19d046cf3a188c2f49c26.json b/site/.cache/twoslash.9721bae945137a88d96efbe3a1a518b3ecaa48f963a19d046cf3a188c2f49c26.json index 6601bb26f9..662e723e64 100644 --- a/site/.cache/twoslash.9721bae945137a88d96efbe3a1a518b3ecaa48f963a19d046cf3a188c2f49c26.json +++ b/site/.cache/twoslash.9721bae945137a88d96efbe3a1a518b3ecaa48f963a19d046cf3a188c2f49c26.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n onLogs: logs => console.log(logs),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":210,\"length\":10,\"target\":\"watchEvent\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":231,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":239,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":247,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":255,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":259,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":270,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n onLogs: logs => console.log(logs),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":210,\"length\":10,\"target\":\"watchEvent\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":231,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":239,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":247,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":255,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":259,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":270,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n onLogs: logs => console.log(logs),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":210,\"length\":10,\"target\":\"watchEvent\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":231,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":239,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":247,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":255,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":259,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":270,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n onLogs: logs => console.log(logs),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":210,\"length\":10,\"target\":\"watchEvent\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":231,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":239,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":247,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":255,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":259,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":270,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.974485d1bbfcfef1a11d3c89ba844351c585facf3633e170b4fa1e9908dab485.json b/site/.cache/twoslash.974485d1bbfcfef1a11d3c89ba844351c585facf3633e170b4fa1e9908dab485.json deleted file mode 100644 index 9185e9ae0d..0000000000 --- a/site/.cache/twoslash.974485d1bbfcfef1a11d3c89ba844351c585facf3633e170b4fa1e9908dab485.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":143,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":158,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":181,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":188,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":197,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":208,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":219,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":226,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":252,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":274,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":287,\"length\":17,\"target\":\"signAuthorization\",\"line\":9,\"character\":41}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n \\nconst authorization = await walletClient.signAuthorization({/* ... */})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":143,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":158,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":181,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":188,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":197,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":208,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":219,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":226,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":252,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":274,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":287,\"length\":17,\"target\":\"signAuthorization\",\"line\":9,\"character\":41}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9884dc2cf86f3d6c3364b29b63cf95e332aef63b0731e0ddbd9d370a1c047adc.json b/site/.cache/twoslash.9884dc2cf86f3d6c3364b29b63cf95e332aef63b0731e0ddbd9d370a1c047adc.json index 84ede627c3..0adcabc8f2 100644 --- a/site/.cache/twoslash.9884dc2cf86f3d6c3364b29b63cf95e332aef63b0731e0ddbd9d370a1c047adc.json +++ b/site/.cache/twoslash.9884dc2cf86f3d6c3364b29b63cf95e332aef63b0731e0ddbd9d370a1c047adc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":64,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":111,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":118,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":129,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":140,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":64,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":111,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":118,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":129,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":140,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":64,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":111,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":118,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":129,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":140,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: {\\n batchSize: 512, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum size (in bytes) for each calldata chunk.\",\"tags\":[[\"default\",\"1_024\"]],\"start\":64,\"length\":9,\"target\":\"batchSize\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":111,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":118,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":129,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":140,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.989b4f97b17219f43556799d7dc8142292fed1a8e384a805a235cf3097b16a02.json b/site/.cache/twoslash.989b4f97b17219f43556799d7dc8142292fed1a8e384a805a235cf3097b16a02.json index 9ba8a37751..1c243cea12 100644 --- a/site/.cache/twoslash.989b4f97b17219f43556799d7dc8142292fed1a8e384a805a235cf3097b16a02.json +++ b/site/.cache/twoslash.989b4f97b17219f43556799d7dc8142292fed1a8e384a805a235cf3097b16a02.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":82,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":119,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":176,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":228,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":235,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":82,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":119,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":176,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":228,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":235,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":82,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":119,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":176,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":228,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":235,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":82,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":119,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":176,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":228,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":235,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.98e09f1d42438e20d3f240e2830370b40ad475cf28f972d77807630377a6a1a1.json b/site/.cache/twoslash.98e09f1d42438e20d3f240e2830370b40ad475cf28f972d77807630377a6a1a1.json new file mode 100644 index 0000000000..bb415d05b6 --- /dev/null +++ b/site/.cache/twoslash.98e09f1d42438e20d3f240e2830370b40ad475cf28f972d77807630377a6a1a1.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":68,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":100,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":152,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":159,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":68,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":100,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":152,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":159,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.999022b468701fd13eea4ee6041992a3b50cae570e476d8f6311f577c008f9dd.json b/site/.cache/twoslash.999022b468701fd13eea4ee6041992a3b50cae570e476d8f6311f577c008f9dd.json new file mode 100644 index 0000000000..54eda10c69 --- /dev/null +++ b/site/.cache/twoslash.999022b468701fd13eea4ee6041992a3b50cae570e476d8f6311f577c008f9dd.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":171,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":196,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,431]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({ // [!code focus:99]\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":171,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":196,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.99bafb8d744fa93d506026a591244ca0b5218d6d7625b419f460cd30df234048.json b/site/.cache/twoslash.99bafb8d744fa93d506026a591244ca0b5218d6d7625b419f460cd30df234048.json index 10c5600e56..7630369d2f 100644 --- a/site/.cache/twoslash.99bafb8d744fa93d506026a591244ca0b5218d6d7625b419f460cd30df234048.json +++ b/site/.cache/twoslash.99bafb8d744fa93d506026a591244ca0b5218d6d7625b419f460cd30df234048.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { client } from './config'\\n \\nconst supported = await client.supportsExecutionMode({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":9,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const supported: boolean\",\"start\":42,\"length\":9,\"target\":\"supported\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":60,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) supportsExecutionMode: (parameters: SupportsExecutionModeParameters) => Promise\",\"docs\":\"Checks if the contract supports the ERC-7821 execution mode.\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst supported = await supportsExecutionMode(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SupportsExecutionModeParameters}\"],[\"returns\",\"If the execution mode is supported. {@link SupportsExecutionModeReturnType}\"]],\"start\":67,\"length\":21,\"target\":\"supportsExecutionMode\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,299]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":260,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n \\nconst supported = await client.supportsExecutionMode({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":9,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const supported: boolean\",\"start\":42,\"length\":9,\"target\":\"supported\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":60,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) supportsExecutionMode: (parameters: SupportsExecutionModeParameters) => Promise\",\"docs\":\"Checks if the contract supports the ERC-7821 execution mode.\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst supported = await supportsExecutionMode(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SupportsExecutionModeParameters}\"],[\"returns\",\"If the execution mode is supported. {@link SupportsExecutionModeReturnType}\"]],\"start\":67,\"length\":21,\"target\":\"supportsExecutionMode\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { client } from './config'\\n \\nconst supported = await client.supportsExecutionMode({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":9,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const supported: boolean\",\"start\":42,\"length\":9,\"target\":\"supported\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":60,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) supportsExecutionMode: (parameters: SupportsExecutionModeParameters) => Promise\",\"docs\":\"Checks if the contract supports the ERC-7821 execution mode.\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst supported = await supportsExecutionMode(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SupportsExecutionModeParameters}\"],[\"returns\",\"If the execution mode is supported. {@link SupportsExecutionModeReturnType}\"]],\"start\":67,\"length\":21,\"target\":\"supportsExecutionMode\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,299]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":260,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n \\nconst supported = await client.supportsExecutionMode({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":9,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const supported: boolean\",\"start\":42,\"length\":9,\"target\":\"supported\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":60,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) supportsExecutionMode: (parameters: SupportsExecutionModeParameters) => Promise\",\"docs\":\"Checks if the contract supports the ERC-7821 execution mode.\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst supported = await supportsExecutionMode(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SupportsExecutionModeParameters}\"],[\"returns\",\"If the execution mode is supported. {@link SupportsExecutionModeReturnType}\"]],\"start\":67,\"length\":21,\"target\":\"supportsExecutionMode\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9a5e04f12c013bc809eeb7bf0be3c5d3e194879ae4120f88fd66dc6e2615cb33.json b/site/.cache/twoslash.9a5e04f12c013bc809eeb7bf0be3c5d3e194879ae4120f88fd66dc6e2615cb33.json index 906f7f053a..241ec91d11 100644 --- a/site/.cache/twoslash.9a5e04f12c013bc809eeb7bf0be3c5d3e194879ae4120f88fd66dc6e2615cb33.json +++ b/site/.cache/twoslash.9a5e04f12c013bc809eeb7bf0be3c5d3e194879ae4120f88fd66dc6e2615cb33.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code focus]\\n account, // [!code focus]\\n calls: [{ // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001') // [!code focus]\\n }] // [!code focus]\\n}) // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":638,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":666,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":697,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":768,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":775,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":861,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":877,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":891,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":921,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code focus]\\n account, // [!code focus]\\n calls: [{ // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001') // [!code focus]\\n }] // [!code focus]\\n}) // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":638,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":666,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":697,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":768,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":775,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":861,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":877,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":891,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":921,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code focus]\\n account, // [!code focus]\\n calls: [{ // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001') // [!code focus]\\n }] // [!code focus]\\n}) // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":638,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":666,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":697,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":768,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":775,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":861,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":877,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":891,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":921,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nconst hash = await bundlerClient.sendUserOperation({ // [!code focus]\\n account, // [!code focus]\\n calls: [{ // [!code focus]\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n value: parseEther('0.001') // [!code focus]\\n }] // [!code focus]\\n}) // [!code focus]\\n\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({ hash }) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":72,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":96,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":163,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":201,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":252,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":261,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":284,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":291,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":302,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":313,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":331,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":347,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":371,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":381,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":392,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":446,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":454,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":490,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":506,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":534,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":545,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":572,\"length\":4,\"target\":\"hash\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":585,\"length\":13,\"target\":\"bundlerClient\",\"line\":25,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendUserOperation: <[{\\n readonly to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\";\\n readonly value: bigint;\\n}], {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}>(parameters: SendUserOperationParameters<...>) => Promise\",\"docs\":\"Broadcasts a User Operation to the Bundler.\\n\\n- Docs: https://viem.sh/actions/bundler/sendUserOperation\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendUserOperationParameters}\"],[\"returns\",\"The User Operation hash. {@link SendUserOperationReturnType}\"],[\"example\",\"import { createBundlerClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { toSmartAccount } from 'viem/accounts'\\n\\nconst account = toSmartAccount({ ... })\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst values = await bundlerClient.sendUserOperation({\\n account,\\n calls: [{ to: '0x...', value: parseEther('1') }],\\n})\"]],\"start\":599,\"length\":17,\"target\":\"sendUserOperation\",\"line\":25,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | {\\n ...;\\n} | undefined\",\"start\":638,\"length\":7,\"target\":\"account\",\"line\":26,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>]\",\"start\":666,\"length\":5,\"target\":\"calls\",\"line\":27,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":697,\"length\":2,\"target\":\"to\",\"line\":28,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":768,\"length\":5,\"target\":\"value\",\"line\":29,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":775,\"length\":10,\"target\":\"parseEther\",\"line\":29,\"character\":11},{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":861,\"length\":7,\"target\":\"receipt\",\"line\":33,\"character\":6},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":877,\"length\":13,\"target\":\"bundlerClient\",\"line\":33,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":891,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":33,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":921,\"length\":4,\"target\":\"hash\",\"line\":33,\"character\":66}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9b2f815fc39d77562f58d7925f7ecd0781c6b71fa0ece2cef0852b88036b2ea8.json b/site/.cache/twoslash.9b2f815fc39d77562f58d7925f7ecd0781c6b71fa0ece2cef0852b88036b2ea8.json index eeb1a1e835..eed1504abf 100644 --- a/site/.cache/twoslash.9b2f815fc39d77562f58d7925f7ecd0781c6b71fa0ece2cef0852b88036b2ea8.json +++ b/site/.cache/twoslash.9b2f815fc39d77562f58d7925f7ecd0781c6b71fa0ece2cef0852b88036b2ea8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n pollingInterval: 1_000, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"start\":93,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n pollingInterval: 1_000, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"start\":93,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n pollingInterval: 1_000, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"start\":93,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n pollingInterval: 1_000, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":51,\"length\":7,\"target\":\"onBlock\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":60,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":69,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":77,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":81,\"length\":5,\"target\":\"block\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to the client's pollingInterval config.\",\"start\":93,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9b973ec1638d0242a6403feec32467f949b5d9107f3a005d962bbfda65725a35.json b/site/.cache/twoslash.9b973ec1638d0242a6403feec32467f949b5d9107f3a005d962bbfda65725a35.json index b5838c7db6..fb008308a8 100644 --- a/site/.cache/twoslash.9b973ec1638d0242a6403feec32467f949b5d9107f3a005d962bbfda65725a35.json +++ b/site/.cache/twoslash.9b973ec1638d0242a6403feec32467f949b5d9107f3a005d962bbfda65725a35.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":152,\"length\":7,\"target\":\"batches\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":175,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":204,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":325,\"length\":5,\"target\":\"calls\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":354,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":384,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":468,\"length\":5,\"target\":\"chain\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":475,\"length\":8,\"target\":\"optimism\",\"line\":22,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":152,\"length\":7,\"target\":\"batches\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":175,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":204,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":325,\"length\":5,\"target\":\"calls\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":354,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":384,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":468,\"length\":5,\"target\":\"chain\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":475,\"length\":8,\"target\":\"optimism\",\"line\":22,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":152,\"length\":7,\"target\":\"batches\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":175,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":204,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":325,\"length\":5,\"target\":\"calls\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":354,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":384,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":468,\"length\":5,\"target\":\"chain\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":475,\"length\":8,\"target\":\"optimism\",\"line\":22,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n chain: optimism, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":152,\"length\":7,\"target\":\"batches\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":175,\"length\":5,\"target\":\"calls\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":204,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":325,\"length\":5,\"target\":\"calls\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":354,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":384,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":468,\"length\":5,\"target\":\"chain\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":475,\"length\":8,\"target\":\"optimism\",\"line\":22,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9b9a0f5d364a716ed5e5feaa9822431eb5b08b6069ce8cc428634d348cbac990.json b/site/.cache/twoslash.9b9a0f5d364a716ed5e5feaa9822431eb5b08b6069ce8cc428634d348cbac990.json deleted file mode 100644 index 04d3fe79ed..0000000000 --- a/site/.cache/twoslash.9b9a0f5d364a716ed5e5feaa9822431eb5b08b6069ce8cc428634d348cbac990.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":265,\"length\":7,\"target\":\"sponsor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":265,\"length\":7,\"target\":\"sponsor\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9c38cca490b0a760f4077e139cca30d11ac1c37323c82a02917afb8c39789934.json b/site/.cache/twoslash.9c38cca490b0a760f4077e139cca30d11ac1c37323c82a02917afb8c39789934.json index 91cd65d8b9..cbb6d83f45 100644 --- a/site/.cache/twoslash.9c38cca490b0a760f4077e139cca30d11ac1c37323c82a02917afb8c39789934.json +++ b/site/.cache/twoslash.9c38cca490b0a760f4077e139cca30d11ac1c37323c82a02917afb8c39789934.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst { maxFeePerGas, maxPriorityFeePerGas } = \\n await publicClient.estimateFeesPerGas({\\n chain: optimism // [!code focus]\\n })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":65,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":79,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":113,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, \\\"eip1559\\\">(args?: EstimateFeesPerGasParameters<...> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":126,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":158,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst { maxFeePerGas, maxPriorityFeePerGas } = \\n await publicClient.estimateFeesPerGas({\\n chain: optimism // [!code focus]\\n })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":65,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":79,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":113,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, \\\"eip1559\\\">(args?: EstimateFeesPerGasParameters<...> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":126,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":158,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst { maxFeePerGas, maxPriorityFeePerGas } = \\n await publicClient.estimateFeesPerGas({\\n chain: optimism // [!code focus]\\n })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":65,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":79,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":113,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, \\\"eip1559\\\">(args?: EstimateFeesPerGasParameters<...> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":126,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":158,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst { maxFeePerGas, maxPriorityFeePerGas } = \\n await publicClient.estimateFeesPerGas({\\n chain: optimism // [!code focus]\\n })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":65,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"const maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":79,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":113,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}, \\\"eip1559\\\">(args?: EstimateFeesPerGasParameters<...> | undefined) => Promise<...>\",\"docs\":\"Returns an estimate for the fees per gas for a transaction to be included\\nin the next block.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link EstimateFeesPerGasParameters}\"],[\"returns\",\"An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst maxPriorityFeePerGas = await client.estimateFeesPerGas()\\n// { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\"]],\"start\":126,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":158,\"length\":8,\"target\":\"optimism\",\"line\":4,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9c823c29c609699866562407df1b087b73aef38e392a8ef20862a1875e410807.json b/site/.cache/twoslash.9c823c29c609699866562407df1b087b73aef38e392a8ef20862a1875e410807.json index fdf0958497..31de411ed0 100644 --- a/site/.cache/twoslash.9c823c29c609699866562407df1b087b73aef38e392a8ef20862a1875e410807.json +++ b/site/.cache/twoslash.9c823c29c609699866562407df1b087b73aef38e392a8ef20862a1875e410807.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":169,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9ca4404bbf8c123038044cfa794e7151330620ad85d859d0e772c2d0fb4a3024.json b/site/.cache/twoslash.9ca4404bbf8c123038044cfa794e7151330620ad85d859d0e772c2d0fb4a3024.json index cd9b9936bf..5428861c9d 100644 --- a/site/.cache/twoslash.9ca4404bbf8c123038044cfa794e7151330620ad85d859d0e772c2d0fb4a3024.json +++ b/site/.cache/twoslash.9ca4404bbf8c123038044cfa794e7151330620ad85d859d0e772c2d0fb4a3024.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) switchChain: (args: SwitchChainParameters) => Promise\",\"docs\":\"Switch the target chain in a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/switchChain\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"tags\":[[\"param\",\"args - {@link SwitchChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nawait client.switchChain({ id: optimism.id })\"]],\"start\":101,\"length\":11,\"target\":\"switchChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: number\",\"docs\":\"ID of Chain to switch to\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) id: 43114\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":47}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) switchChain: (args: SwitchChainParameters) => Promise\",\"docs\":\"Switch the target chain in a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/switchChain\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"tags\":[[\"param\",\"args - {@link SwitchChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nawait client.switchChain({ id: optimism.id })\"]],\"start\":101,\"length\":11,\"target\":\"switchChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: number\",\"docs\":\"ID of Chain to switch to\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) id: 43114\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":47}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) switchChain: (args: SwitchChainParameters) => Promise\",\"docs\":\"Switch the target chain in a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/switchChain\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"tags\":[[\"param\",\"args - {@link SwitchChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nawait client.switchChain({ id: optimism.id })\"]],\"start\":101,\"length\":11,\"target\":\"switchChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: number\",\"docs\":\"ID of Chain to switch to\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) id: 43114\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":47}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.switchChain({ id: avalanche.id }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) switchChain: (args: SwitchChainParameters) => Promise\",\"docs\":\"Switch the target chain in a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/switchChain\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\",\"tags\":[[\"param\",\"args - {@link SwitchChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet, optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nawait client.switchChain({ id: optimism.id })\"]],\"start\":101,\"length\":11,\"target\":\"switchChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) id: number\",\"docs\":\"ID of Chain to switch to\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) id: 43114\",\"start\":129,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":47}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9da7270ddf26e4878354af1437acc3568e0220106ccb44b1a7de85fd5064648f.json b/site/.cache/twoslash.9da7270ddf26e4878354af1437acc3568e0220106ccb44b1a7de85fd5064648f.json index a31315c331..9819546bc4 100644 --- a/site/.cache/twoslash.9da7270ddf26e4878354af1437acc3568e0220106ccb44b1a7de85fd5064648f.json +++ b/site/.cache/twoslash.9da7270ddf26e4878354af1437acc3568e0220106ccb44b1a7de85fd5064648f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":231,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":266,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":277,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":287,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string\",\"start\":354,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":369,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_wagmi\\\";\\n params: [string];\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":376,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wagmi\\\"\",\"start\":405,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":420,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":520,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [string]\",\"start\":441,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[545,565],[0,106]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":80,\"end\":93}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[526],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":420,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":520,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":231,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":266,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":277,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":287,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string\",\"start\":354,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":369,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_wagmi\\\";\\n params: [string];\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":376,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wagmi\\\"\",\"start\":405,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [string]\",\"start\":441,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":231,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":266,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":277,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":287,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string\",\"start\":354,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":369,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_wagmi\\\";\\n params: [string];\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":376,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wagmi\\\"\",\"start\":405,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":420,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":520,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [string]\",\"start\":441,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[545,565],[0,106]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":80,\"end\":93}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createClient({\\n chain: mainnet,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[526],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":420,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":520,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":231,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":248,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":255,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":266,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":277,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":287,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":326,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":337,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: string\",\"start\":354,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":369,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_wagmi\\\";\\n params: [string];\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":376,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wagmi\\\"\",\"start\":405,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [string]\",\"start\":441,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.9de92817fbf7a27f2f0466b300d90dbcc39f7c8c7fb43d92440acb3e53af8270.json b/site/.cache/twoslash.9de92817fbf7a27f2f0466b300d90dbcc39f7c8c7fb43d92440acb3e53af8270.json index 11ebcfcddd..da6456990b 100644 --- a/site/.cache/twoslash.9de92817fbf7a27f2f0466b300d90dbcc39f7c8c7fb43d92440acb3e53af8270.json +++ b/site/.cache/twoslash.9de92817fbf7a27f2f0466b300d90dbcc39f7c8c7fb43d92440acb3e53af8270.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:8]\\n // '0xd8da...' OR '0xa5cc...' OR '0xa152...'\\n from: [\\n '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n '0xa152f8bb749c55e9943a3a0a3111d18ee2b3f94e',\\n ],\\n },\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":81,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":138,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":145,\"length\":12,\"target\":\"parseAbiItem\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":236,\"length\":4,\"target\":\"args\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":316,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":495,\"length\":6,\"target\":\"onLogs\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":503,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":511,\"length\":7,\"target\":\"console\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":519,\"length\":3,\"target\":\"log\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":523,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:8]\\n // '0xd8da...' OR '0xa5cc...' OR '0xa152...'\\n from: [\\n '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n '0xa152f8bb749c55e9943a3a0a3111d18ee2b3f94e',\\n ],\\n },\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":81,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":138,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":145,\"length\":12,\"target\":\"parseAbiItem\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":236,\"length\":4,\"target\":\"args\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":316,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":495,\"length\":6,\"target\":\"onLogs\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":503,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":511,\"length\":7,\"target\":\"console\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":519,\"length\":3,\"target\":\"log\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":523,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":30}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:8]\\n // '0xd8da...' OR '0xa5cc...' OR '0xa152...'\\n from: [\\n '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n '0xa152f8bb749c55e9943a3a0a3111d18ee2b3f94e',\\n ],\\n },\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":81,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":138,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":145,\"length\":12,\"target\":\"parseAbiItem\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":236,\"length\":4,\"target\":\"args\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":316,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":495,\"length\":6,\"target\":\"onLogs\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":503,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":511,\"length\":7,\"target\":\"console\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":519,\"length\":3,\"target\":\"log\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":523,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:8]\\n // '0xd8da...' OR '0xa5cc...' OR '0xa152...'\\n from: [\\n '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', \\n '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac',\\n '0xa152f8bb749c55e9943a3a0a3111d18ee2b3f94e',\\n ],\\n },\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":81,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":138,\"length\":5,\"target\":\"event\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":145,\"length\":12,\"target\":\"parseAbiItem\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":236,\"length\":4,\"target\":\"args\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":316,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":495,\"length\":6,\"target\":\"onLogs\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":503,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":511,\"length\":7,\"target\":\"console\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":519,\"length\":3,\"target\":\"log\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":523,\"length\":4,\"target\":\"logs\",\"line\":13,\"character\":30}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a02543aa6bc81999a5756200afbbb8247e682478faabe8c68a75ef81236a3a2e.json b/site/.cache/twoslash.a02543aa6bc81999a5756200afbbb8247e682478faabe8c68a75ef81236a3a2e.json deleted file mode 100644 index 219e44399c..0000000000 --- a/site/.cache/twoslash.a02543aa6bc81999a5756200afbbb8247e682478faabe8c68a75ef81236a3a2e.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":231,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":242,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":255,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":289,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":366,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":373,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":408,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":464,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":475,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":506,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":610,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":666,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":713,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":231,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":242,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":255,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":289,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":310,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":366,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":373,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":408,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":464,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":475,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":506,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":610,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":666,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":713,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a03fa7d92687123cfa65166050a3f7861c5320762048ee93a9c6b63182424dd5.json b/site/.cache/twoslash.a03fa7d92687123cfa65166050a3f7861c5320762048ee93a9c6b63182424dd5.json index b1e03631d6..4a25701f02 100644 --- a/site/.cache/twoslash.a03fa7d92687123cfa65166050a3f7861c5320762048ee93a9c6b63182424dd5.json +++ b/site/.cache/twoslash.a03fa7d92687123cfa65166050a3f7861c5320762048ee93a9c6b63182424dd5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x...\\\"\",\"start\":82,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x...\\\"\",\"start\":82,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x...\\\"\",\"start\":82,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n data: '0x...', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":41,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":66,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0x...\\\"\",\"start\":82,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":116,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a069ad811d89a1538a340459a39ecd5bdbcec3e4c3cd68d103e427553a6799d3.json b/site/.cache/twoslash.a069ad811d89a1538a340459a39ecd5bdbcec3e4c3cd68d103e427553a6799d3.json deleted file mode 100644 index a76e4e4f2e..0000000000 --- a/site/.cache/twoslash.a069ad811d89a1538a340459a39ecd5bdbcec3e4c3cd68d103e427553a6799d3.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: true // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: true // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a25b947e6f73d5d0a09ac4d67969552c3045f5099b4df61191edbc610b7bd08a.json b/site/.cache/twoslash.a25b947e6f73d5d0a09ac4d67969552c3045f5099b4df61191edbc610b7bd08a.json index b3edede11b..be6a5d13c5 100644 --- a/site/.cache/twoslash.a25b947e6f73d5d0a09ac4d67969552c3045f5099b4df61191edbc610b7bd08a.json +++ b/site/.cache/twoslash.a25b947e6f73d5d0a09ac4d67969552c3045f5099b4df61191edbc610b7bd08a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n batch: false, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":64,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":99,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":115,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":137,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n batch: false, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":64,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":99,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":115,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":137,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n batch: false, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":64,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":99,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":115,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":137,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n batch: false, // [!code focus]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | undefined\",\"docs\":\"Whether or not the transaction hashes should be batched on each invocation.\",\"tags\":[[\"default\",\"true\"]],\"start\":64,\"length\":5,\"target\":\"batch\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":99,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":115,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":137,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a2d186396103786fc988a5e64898f8591c7be0374c07548c146588de7af73414.json b/site/.cache/twoslash.a2d186396103786fc988a5e64898f8591c7be0374c07548c146588de7af73414.json index 9f8d1dfda8..b61acd6d98 100644 --- a/site/.cache/twoslash.a2d186396103786fc988a5e64898f8591c7be0374c07548c146588de7af73414.json +++ b/site/.cache/twoslash.a2d186396103786fc988a5e64898f8591c7be0374c07548c146588de7af73414.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData, parseAbi } from 'viem'\\nimport { publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Bytecode of the contract. Accessible here: https://etherscan.io/address/0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2#code\\n code: '0x...',\\n // Function to call on the contract.\\n data: encodeFunctionData({\\n abi: parseAbi(['function name() view returns (string)']),\\n functionName: 'name'\\n }),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":61,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":99,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":112,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":125,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":259,\"length\":4,\"target\":\"code\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"data\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":321,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"string\\\";\\n }];\\n}]\",\"start\":346,\"length\":3,\"target\":\"abi\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function name() view returns (string)\\\"]>(signatures: [\\\"function name() view returns (string)\\\"]): readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":351,\"length\":8,\"target\":\"parseAbi\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: \\\"name\\\" | `0x${string}` | undefined\",\"start\":408,\"length\":12,\"target\":\"functionName\",\"line\":9,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseAbi } from 'viem'\\nimport { publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Bytecode of the contract. Accessible here: https://etherscan.io/address/0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2#code\\n code: '0x...',\\n // Function to call on the contract.\\n data: encodeFunctionData({\\n abi: parseAbi(['function name() view returns (string)']),\\n functionName: 'name'\\n }),\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":61,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":99,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":112,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":125,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":259,\"length\":4,\"target\":\"code\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"data\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":321,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"string\\\";\\n }];\\n}]\",\"start\":346,\"length\":3,\"target\":\"abi\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function name() view returns (string)\\\"]>(signatures: [\\\"function name() view returns (string)\\\"]): readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":351,\"length\":8,\"target\":\"parseAbi\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: \\\"name\\\" | `0x${string}` | undefined\",\"start\":408,\"length\":12,\"target\":\"functionName\",\"line\":9,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData, parseAbi } from 'viem'\\nimport { publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Bytecode of the contract. Accessible here: https://etherscan.io/address/0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2#code\\n code: '0x...',\\n // Function to call on the contract.\\n data: encodeFunctionData({\\n abi: parseAbi(['function name() view returns (string)']),\\n functionName: 'name'\\n }),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":61,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":99,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":112,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":125,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":259,\"length\":4,\"target\":\"code\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"data\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":321,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"string\\\";\\n }];\\n}]\",\"start\":346,\"length\":3,\"target\":\"abi\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function name() view returns (string)\\\"]>(signatures: [\\\"function name() view returns (string)\\\"]): readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":351,\"length\":8,\"target\":\"parseAbi\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: \\\"name\\\" | `0x${string}` | undefined\",\"start\":408,\"length\":12,\"target\":\"functionName\",\"line\":9,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseAbi } from 'viem'\\nimport { publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Bytecode of the contract. Accessible here: https://etherscan.io/address/0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2#code\\n code: '0x...',\\n // Function to call on the contract.\\n data: encodeFunctionData({\\n abi: parseAbi(['function name() view returns (string)']),\\n functionName: 'name'\\n }),\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":61,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":99,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":112,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":125,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":259,\"length\":4,\"target\":\"code\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"data\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":321,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"string\\\";\\n }];\\n}]\",\"start\":346,\"length\":3,\"target\":\"abi\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function name() view returns (string)\\\"]>(signatures: [\\\"function name() view returns (string)\\\"]): readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":351,\"length\":8,\"target\":\"parseAbi\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: \\\"name\\\" | `0x${string}` | undefined\",\"start\":408,\"length\":12,\"target\":\"functionName\",\"line\":9,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a2d71ebb215e7d2149cf113dd92770f184bd57462368b20cebcff71c00415a99.json b/site/.cache/twoslash.a2d71ebb215e7d2149cf113dd92770f184bd57462368b20cebcff71c00415a99.json index ea40fedf8d..1a7ef3a75d 100644 --- a/site/.cache/twoslash.a2d71ebb215e7d2149cf113dd92770f184bd57462368b20cebcff71c00415a99.json +++ b/site/.cache/twoslash.a2d71ebb215e7d2149cf113dd92770f184bd57462368b20cebcff71c00415a99.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a2e50e01fb2794d99d2e0345478d103ccb646d89377085a8bbac6b68161ed11d.json b/site/.cache/twoslash.a2e50e01fb2794d99d2e0345478d103ccb646d89377085a8bbac6b68161ed11d.json index 3b3501b4d1..f0a2430697 100644 --- a/site/.cache/twoslash.a2e50e01fb2794d99d2e0345478d103ccb646d89377085a8bbac6b68161ed11d.json +++ b/site/.cache/twoslash.a2e50e01fb2794d99d2e0345478d103ccb646d89377085a8bbac6b68161ed11d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: true // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: true // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: true // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: true // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a2e58c3cb859dfbb2958755fcd7427e6d834a977866b7e5019c14c521e978afc.json b/site/.cache/twoslash.a2e58c3cb859dfbb2958755fcd7427e6d834a977866b7e5019c14c521e978afc.json index da96326368..2d02c2a21e 100644 --- a/site/.cache/twoslash.a2e58c3cb859dfbb2958755fcd7427e6d834a977866b7e5019c14c521e978afc.json +++ b/site/.cache/twoslash.a2e58c3cb859dfbb2958755fcd7427e6d834a977866b7e5019c14c521e978afc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":276,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":283,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":294,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":305,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":316,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":323,\"length\":14,\"target\":\"erc7821Actions\",\"line\":10,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":276,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":283,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":294,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":305,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":316,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":323,\"length\":14,\"target\":\"erc7821Actions\",\"line\":10,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":276,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":283,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":294,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":305,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":316,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":323,\"length\":14,\"target\":\"erc7821Actions\",\"line\":10,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":51,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":103,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":141,\"length\":14,\"target\":\"erc7821Actions\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":197,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":207,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":23},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":250,\"length\":6,\"target\":\"client\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":259,\"length\":12,\"target\":\"createClient\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":276,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":283,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":294,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":305,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => Erc7821Actions<...>) => Client<...>\",\"start\":316,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7821Actions(): (client: Client) => Erc7821Actions\\nimport erc7821Actions\",\"docs\":\"A suite of Actions for [ERC-7821](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\"]],\"start\":323,\"length\":14,\"target\":\"erc7821Actions\",\"line\":10,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a35c9dc95c131224398a34c872f90b876eaba450dee64cf1b20b05fab648c0b4.json b/site/.cache/twoslash.a35c9dc95c131224398a34c872f90b876eaba450dee64cf1b20b05fab648c0b4.json index 7fcf6162c2..cb2ea03aeb 100644 --- a/site/.cache/twoslash.a35c9dc95c131224398a34c872f90b876eaba450dee64cf1b20b05fab648c0b4.json +++ b/site/.cache/twoslash.a35c9dc95c131224398a34c872f90b876eaba450dee64cf1b20b05fab648c0b4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":37,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":100,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":143,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":159,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":183,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":190,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":201,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":212,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":37,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":100,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":143,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":159,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":183,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":190,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":201,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":212,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":37,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":100,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":143,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":159,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":183,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":190,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":201,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":212,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":37,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":100,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":143,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":159,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":183,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":190,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":201,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":212,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a43c6c58d478f5d38f2c7586feca1b7428c07d4dd70f9c071f17fe5f8c49af5d.json b/site/.cache/twoslash.a43c6c58d478f5d38f2c7586feca1b7428c07d4dd70f9c071f17fe5f8c49af5d.json new file mode 100644 index 0000000000..25b2d8354f --- /dev/null +++ b/site/.cache/twoslash.a43c6c58d478f5d38f2c7586feca1b7428c07d4dd70f9c071f17fe5f8c49af5d.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":153,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":164,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":185,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":283,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":153,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":164,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":185,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":283,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a4fdebf094e51b3eaebd0396e03e6a27ef76cb15e3d88f37db9943f4afae3fda.json b/site/.cache/twoslash.a4fdebf094e51b3eaebd0396e03e6a27ef76cb15e3d88f37db9943f4afae3fda.json deleted file mode 100644 index dddca1a674..0000000000 --- a/site/.cache/twoslash.a4fdebf094e51b3eaebd0396e03e6a27ef76cb15e3d88f37db9943f4afae3fda.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1139,1150],[1117,1138],[1042,1116],[1018,1041],[1006,1017],[0,781]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":1006,\"end\":1017},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":1018,\"end\":1041},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1042,\"end\":1116},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":1117,\"end\":1138},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1139,\"end\":1150}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0}]}}" diff --git a/site/.cache/twoslash.a599ddfa425390504241f60d6a839d2902ab8cf01e65eb89cd2d1ead2eb630ac.json b/site/.cache/twoslash.a599ddfa425390504241f60d6a839d2902ab8cf01e65eb89cd2d1ead2eb630ac.json index c2b3a97e47..f5fdfc7116 100644 --- a/site/.cache/twoslash.a599ddfa425390504241f60d6a839d2902ab8cf01e65eb89cd2d1ead2eb630ac.json +++ b/site/.cache/twoslash.a599ddfa425390504241f60d6a839d2902ab8cf01e65eb89cd2d1ead2eb630ac.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly maxPriorityFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":96,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":118,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":153,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":205,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":212,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly maxPriorityFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":96,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":118,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":153,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":205,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":212,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly maxPriorityFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":96,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":118,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":153,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":205,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":212,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly maxPriorityFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":63,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":77,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":96,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":118,\"length\":9,\"target\":\"parseGwei\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":153,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":205,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":212,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a7b6d35dfee1d905bfae435f49f795113985b2576ff385fd2b6d0a231cf9a596.json b/site/.cache/twoslash.a7b6d35dfee1d905bfae435f49f795113985b2576ff385fd2b6d0a231cf9a596.json index 1350f1e54b..01db2a1f8b 100644 --- a/site/.cache/twoslash.a7b6d35dfee1d905bfae435f49f795113985b2576ff385fd2b6d0a231cf9a596.json +++ b/site/.cache/twoslash.a7b6d35dfee1d905bfae435f49f795113985b2576ff385fd2b6d0a231cf9a596.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1308,1319],[1292,1307],[1273,1291],[1238,1272],[1202,1237],[1180,1201],[1164,1179],[1146,1163],[1112,1145],[1082,1111],[1064,1081],[1030,1063],[995,1029],[975,994],[963,974],[0,840]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":963,\"end\":974},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 8453: {\",\"start\":975,\"end\":994},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":995,\"end\":1029},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1030,\"end\":1063},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1064,\"end\":1081},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sessionKeys: {\",\"start\":1082,\"end\":1111},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1112,\"end\":1145},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1146,\"end\":1163},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1164,\"end\":1179},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 84532: {\",\"start\":1180,\"end\":1201},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":1202,\"end\":1237},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1238,\"end\":1272},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1273,\"end\":1291},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1292,\"end\":1307},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1308,\"end\":1319}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n\\n// @log: 8453: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: sessionKeys: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: 84532: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1308,1319],[1292,1307],[1273,1291],[1238,1272],[1202,1237],[1180,1201],[1164,1179],[1146,1163],[1112,1145],[1082,1111],[1064,1081],[1030,1063],[995,1029],[975,994],[963,974],[0,840]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":963,\"end\":974},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 8453: {\",\"start\":975,\"end\":994},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":995,\"end\":1029},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1030,\"end\":1063},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1064,\"end\":1081},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" sessionKeys: {\",\"start\":1082,\"end\":1111},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1112,\"end\":1145},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1146,\"end\":1163},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1164,\"end\":1179},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 84532: {\",\"start\":1180,\"end\":1201},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":1202,\"end\":1237},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":1238,\"end\":1272},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1273,\"end\":1291},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1292,\"end\":1307},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1308,\"end\":1319}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n\\n// @log: 8453: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: sessionKeys: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: 84532: {\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" paymasterService: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" supported: true,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" sessionKeys: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" paymasterService: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" supported: true,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}]}}" diff --git a/site/.cache/twoslash.a9295166c4c9ba30149623bcccb890bab59f4302810512c049c2ade4b9cfe437.json b/site/.cache/twoslash.a9295166c4c9ba30149623bcccb890bab59f4302810512c049c2ade4b9cfe437.json new file mode 100644 index 0000000000..127512d8ba --- /dev/null +++ b/site/.cache/twoslash.a9295166c4c9ba30149623bcccb890bab59f4302810512c049c2ade4b9cfe437.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":270,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":270,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.a9e9397a6d4cf2480432a48438d37746e2ff9715376a0a847b6949219fb8030c.json b/site/.cache/twoslash.a9e9397a6d4cf2480432a48438d37746e2ff9715376a0a847b6949219fb8030c.json index bed2c86069..4a50a47fbf 100644 --- a/site/.cache/twoslash.a9e9397a6d4cf2480432a48438d37746e2ff9715376a0a847b6949219fb8030c.json +++ b/site/.cache/twoslash.a9e9397a6d4cf2480432a48438d37746e2ff9715376a0a847b6949219fb8030c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" nonce: 69,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":218,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":226,\"length\":21,\"target\":\"serializedTransaction\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":269,\"length\":15,\"target\":\"signTransaction\",\"line\":16,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":285,\"length\":7,\"target\":\"request\",\"line\":16,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":326,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":347,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1290,1301],[1250,1289],[1221,1249],[1198,1220],[1151,1197],[1110,1150],[1048,1109],[981,1047],[969,980],[0,759]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":546,\"end\":574},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":643,\"end\":668},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":969,\"end\":980},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"start\":981,\"end\":1047},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"start\":1048,\"end\":1109},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 150000000000n,\",\"start\":1110,\"end\":1150},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1000000000n,\",\"start\":1151,\"end\":1197},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 69,\",\"start\":1198,\"end\":1220},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" type: 'eip1559',\",\"start\":1221,\"end\":1249},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: 1000000000000000000n\",\"start\":1250,\"end\":1289},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1290,\"end\":1301}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":720,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n\\n// @log: maxFeePerGas: 150000000000n,\\n\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n\\n// @log: nonce: 69,\\n\\n// @log: type: 'eip1559',\\n\\n// @log: value: 1000000000000000000n\\n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":226,\"length\":21,\"target\":\"serializedTransaction\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":269,\"length\":15,\"target\":\"signTransaction\",\"line\":16,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":285,\"length\":7,\"target\":\"request\",\"line\":16,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":326,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":347,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":53}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" nonce: 69,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":218,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" nonce: 69,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":218,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":226,\"length\":21,\"target\":\"serializedTransaction\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":269,\"length\":15,\"target\":\"signTransaction\",\"line\":16,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":285,\"length\":7,\"target\":\"request\",\"line\":16,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":326,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":347,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":53}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1290,1301],[1250,1289],[1221,1249],[1198,1220],[1151,1197],[1110,1150],[1048,1109],[981,1047],[969,980],[0,759]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":546,\"end\":574},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":643,\"end\":668},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":969,\"end\":980},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"start\":981,\"end\":1047},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"start\":1048,\"end\":1109},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxFeePerGas: 150000000000n,\",\"start\":1110,\"end\":1150},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" maxPriorityFeePerGas: 1000000000n,\",\"start\":1151,\"end\":1197},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 69,\",\"start\":1198,\"end\":1220},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" type: 'eip1559',\",\"start\":1221,\"end\":1249},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: 1000000000000000000n\",\"start\":1250,\"end\":1289},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1290,\"end\":1301}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":720,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({ // [!code focus:16]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n// @log: {\\n\\n// @log: account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\\n\\n// @log: to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\\n\\n// @log: maxFeePerGas: 150000000000n,\\n\\n// @log: maxPriorityFeePerGas: 1000000000n,\\n\\n// @log: nonce: 69,\\n\\n// @log: type: 'eip1559',\\n\\n// @log: value: 1000000000000000000n\\n\\n// @log: }\\n\\n\\nconst serializedTransaction = await walletClient.signTransaction(request)\\nconst hash = await walletClient.sendRawTransaction({ serializedTransaction })\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":127,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":179,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const serializedTransaction: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":226,\"length\":21,\"target\":\"serializedTransaction\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":256,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":269,\"length\":15,\"target\":\"signTransaction\",\"line\":16,\"character\":49},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":285,\"length\":7,\"target\":\"request\",\"line\":16,\"character\":65},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":300,\"length\":4,\"target\":\"hash\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":313,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":326,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":17,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":347,\"length\":21,\"target\":\"serializedTransaction\",\"line\":17,\"character\":53}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" account: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" to: '0x70997970C51812dc3A010C7d01b50e0d17dc79C8',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" maxFeePerGas: 150000000000n,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" maxPriorityFeePerGas: 1000000000n,\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" nonce: 69,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\" type: 'eip1559',\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":217,\"length\":0,\"text\":\" value: 1000000000000000000n\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":218,\"length\":0,\"text\":\"}\",\"line\":14,\"character\":0}]}}" diff --git a/site/.cache/twoslash.aa224d673d784bb67a82b038668a203e6221e5800dc5428d63f91a46cede33c4.json b/site/.cache/twoslash.aa224d673d784bb67a82b038668a203e6221e5800dc5428d63f91a46cede33c4.json index 15f1bbba3a..9fe7215932 100644 --- a/site/.cache/twoslash.aa224d673d784bb67a82b038668a203e6221e5800dc5428d63f91a46cede33c4.json +++ b/site/.cache/twoslash.aa224d673d784bb67a82b038668a203e6221e5800dc5428d63f91a46cede33c4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":173,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":252,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":268,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":309,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":336,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":347,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":173,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":252,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":268,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":309,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":336,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":347,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":173,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":252,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":268,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":309,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":336,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":347,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code focus]\\n client, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":137,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":173,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":182,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":205,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":212,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":223,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":234,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":252,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":268,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":309,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":336,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":347,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.aa5796f0af7edf8eecbdb2d36f79120a49946497002e141a109a0ad7738943a4.json b/site/.cache/twoslash.aa5796f0af7edf8eecbdb2d36f79120a49946497002e141a109a0ad7738943a4.json index 3b8df4c9fe..97d7459d30 100644 --- a/site/.cache/twoslash.aa5796f0af7edf8eecbdb2d36f79120a49946497002e141a109a0ad7738943a4.json +++ b/site/.cache/twoslash.aa5796f0af7edf8eecbdb2d36f79120a49946497002e141a109a0ad7738943a4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":409,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":423,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":461,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":487,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":505,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":537,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":577,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":592,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":606,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":625,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":690,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":702,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":721,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":786,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":409,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":423,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":461,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":487,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":505,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":537,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":577,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":592,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":606,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":625,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":690,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":702,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":721,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":786,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":409,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":423,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":461,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":487,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":505,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":537,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":577,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":592,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":606,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":625,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":690,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":702,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":721,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":786,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [ // [!code focus:5]\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', // [!code focus]\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":409,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":423,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":449,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":461,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":487,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":505,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":537,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":577,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":592,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":606,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":625,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":690,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":702,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":721,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":786,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.aa9be83416579392451546c6c48d980a4d00cf09b6677a2f293ae0ba3351ef4e.json b/site/.cache/twoslash.aa9be83416579392451546c6c48d980a4d00cf09b6677a2f293ae0ba3351ef4e.json index 5a49fd2640..a0c2b826c0 100644 --- a/site/.cache/twoslash.aa9be83416579392451546c6c48d980a4d00cf09b6677a2f293ae0ba3351ef4e.json +++ b/site/.cache/twoslash.aa9be83416579392451546c6c48d980a4d00cf09b6677a2f293ae0ba3351ef4e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":86,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":93,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":104,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":115,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.aafe791b22b895bb04afd37fbb4883feba54234021b0bc344ae721cc135b98e5.json b/site/.cache/twoslash.aafe791b22b895bb04afd37fbb4883feba54234021b0bc344ae721cc135b98e5.json new file mode 100644 index 0000000000..a4d88a831a --- /dev/null +++ b/site/.cache/twoslash.aafe791b22b895bb04afd37fbb4883feba54234021b0bc344ae721cc135b98e5.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":153,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":164,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":185,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":283,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}`\",\"start\":153,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":164,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":185,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":241,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":248,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":283,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":309,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.aafec61b2dab806d08cb1d9b5c112d563e1acc7c1333d6f8be6b515540c1e47f.json b/site/.cache/twoslash.aafec61b2dab806d08cb1d9b5c112d563e1acc7c1333d6f8be6b515540c1e47f.json index be97760edd..11a0e13724 100644 --- a/site/.cache/twoslash.aafec61b2dab806d08cb1d9b5c112d563e1acc7c1333d6f8be6b515540c1e47f.json +++ b/site/.cache/twoslash.aafec61b2dab806d08cb1d9b5c112d563e1acc7c1333d6f8be6b515540c1e47f.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n onReplaced: replacement => console.log(replacement) // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onReplaced?: ((response: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => void) | undefined\",\"docs\":\"Optional callback to emit if the transaction has been replaced.\",\"start\":155,\"length\":10,\"target\":\"onReplaced\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":167,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":182,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":190,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":194,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":43}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n onReplaced: replacement => console.log(replacement) // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onReplaced?: ((response: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => void) | undefined\",\"docs\":\"Optional callback to emit if the transaction has been replaced.\",\"start\":155,\"length\":10,\"target\":\"onReplaced\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":167,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":182,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":190,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":194,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":43}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n onReplaced: replacement => console.log(replacement) // [!code focus:1]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onReplaced?: ((response: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => void) | undefined\",\"docs\":\"Optional callback to emit if the transaction has been replaced.\",\"start\":155,\"length\":10,\"target\":\"onReplaced\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":167,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":182,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":190,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":194,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":43}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n onReplaced: replacement => console.log(replacement) // [!code focus:1]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":75,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onReplaced?: ((response: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => void) | undefined\",\"docs\":\"Optional callback to emit if the transaction has been replaced.\",\"start\":155,\"length\":10,\"target\":\"onReplaced\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":167,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":182,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":190,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":39},{\"type\":\"hover\",\"text\":\"(parameter) replacement: ReplacementReturnType<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>\",\"start\":194,\"length\":11,\"target\":\"replacement\",\"line\":3,\"character\":43}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ab268e9b54e16ed22b0a781fede83aa547a546ceef85aaacffca4ef37b062b2a.json b/site/.cache/twoslash.ab268e9b54e16ed22b0a781fede83aa547a546ceef85aaacffca4ef37b062b2a.json index f403e82f30..501dfb9d1f 100644 --- a/site/.cache/twoslash.ab268e9b54e16ed22b0a781fede83aa547a546ceef85aaacffca4ef37b062b2a.json +++ b/site/.cache/twoslash.ab268e9b54e16ed22b0a781fede83aa547a546ceef85aaacffca4ef37b062b2a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst permissions = await walletClient.requestPermissions({ eth_accounts: {} }) // [!code focus:99]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: RequestPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) requestPermissions: (args: RequestPermissionsParameters) => Promise\",\"docs\":\"Requests permissions for a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestPermissions\\n- JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"param\",\"args - {@link RequestPermissionsParameters}\"],[\"returns\",\"The wallet permissions. {@link RequestPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.requestPermissions({\\n eth_accounts: {}\\n})\"]],\"start\":81,\"length\":18,\"target\":\"requestPermissions\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) eth_accounts: Record\",\"start\":102,\"length\":12,\"target\":\"eth_accounts\",\"line\":2,\"character\":60}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst permissions = await walletClient.requestPermissions({ eth_accounts: {} }) // [!code focus:99]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: RequestPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) requestPermissions: (args: RequestPermissionsParameters) => Promise\",\"docs\":\"Requests permissions for a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestPermissions\\n- JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"param\",\"args - {@link RequestPermissionsParameters}\"],[\"returns\",\"The wallet permissions. {@link RequestPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.requestPermissions({\\n eth_accounts: {}\\n})\"]],\"start\":81,\"length\":18,\"target\":\"requestPermissions\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) eth_accounts: Record\",\"start\":102,\"length\":12,\"target\":\"eth_accounts\",\"line\":2,\"character\":60}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst permissions = await walletClient.requestPermissions({ eth_accounts: {} }) // [!code focus:99]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: RequestPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) requestPermissions: (args: RequestPermissionsParameters) => Promise\",\"docs\":\"Requests permissions for a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestPermissions\\n- JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"param\",\"args - {@link RequestPermissionsParameters}\"],[\"returns\",\"The wallet permissions. {@link RequestPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.requestPermissions({\\n eth_accounts: {}\\n})\"]],\"start\":81,\"length\":18,\"target\":\"requestPermissions\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) eth_accounts: Record\",\"start\":102,\"length\":12,\"target\":\"eth_accounts\",\"line\":2,\"character\":60}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst permissions = await walletClient.requestPermissions({ eth_accounts: {} }) // [!code focus:99]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const permissions: RequestPermissionsReturnType\",\"start\":48,\"length\":11,\"target\":\"permissions\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) requestPermissions: (args: RequestPermissionsParameters) => Promise\",\"docs\":\"Requests permissions for a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestPermissions\\n- JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\",\"tags\":[[\"param\",\"args - {@link RequestPermissionsParameters}\"],[\"returns\",\"The wallet permissions. {@link RequestPermissionsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst permissions = await client.requestPermissions({\\n eth_accounts: {}\\n})\"]],\"start\":81,\"length\":18,\"target\":\"requestPermissions\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) eth_accounts: Record\",\"start\":102,\"length\":12,\"target\":\"eth_accounts\",\"line\":2,\"character\":60}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ab28d03dc60bc4b3b638033d5f8fa54e241b326bc736f918e7f95b8653186022.json b/site/.cache/twoslash.ab28d03dc60bc4b3b638033d5f8fa54e241b326bc736f918e7f95b8653186022.json index 3fb9c57ef5..0e0c40e80e 100644 --- a/site/.cache/twoslash.ab28d03dc60bc4b3b638033d5f8fa54e241b326bc736f918e7f95b8653186022.json +++ b/site/.cache/twoslash.ab28d03dc60bc4b3b638033d5f8fa54e241b326bc736f918e7f95b8653186022.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n opData: string;\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) opData: string\",\"start\":256,\"length\":6,\"target\":\"opData\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":314,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":343,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":373,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n opData: string;\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) opData: string\",\"start\":256,\"length\":6,\"target\":\"opData\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":314,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":343,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":373,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n opData: string;\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) opData: string\",\"start\":256,\"length\":6,\"target\":\"opData\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":314,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":343,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":373,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ],\\n opData: '0xdeadbeef', // [!code focus]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n opData: string;\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) opData: string\",\"start\":256,\"length\":6,\"target\":\"opData\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":314,\"length\":5,\"target\":\"calls\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":343,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":373,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ab4040e4ed0a8ed1da05c5aaabb4dda8c50c853b914d609d3303774b6b983fad.json b/site/.cache/twoslash.ab4040e4ed0a8ed1da05c5aaabb4dda8c50c853b914d609d3303774b6b983fad.json index 4a7e876e6a..0eb97ab047 100644 --- a/site/.cache/twoslash.ab4040e4ed0a8ed1da05c5aaabb4dda8c50c853b914d609d3303774b6b983fad.json +++ b/site/.cache/twoslash.ab4040e4ed0a8ed1da05c5aaabb4dda8c50c853b914d609d3303774b6b983fad.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n \\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n \\nconst owner = privateKeyToAccount('0x...')\\n \\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":60,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":84,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":189,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":250,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":273,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":280,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":291,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":302,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":321,\"length\":5,\"target\":\"owner\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":329,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":13,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":382,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":15,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":410,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":421,\"length\":6,\"target\":\"owners\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":430,\"length\":5,\"target\":\"owner\",\"line\":17,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":455,\"length\":13,\"target\":\"bundlerClient\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":471,\"length\":19,\"target\":\"createBundlerClient\",\"line\":20,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":495,\"length\":7,\"target\":\"account\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":506,\"length\":6,\"target\":\"client\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":516,\"length\":9,\"target\":\"transport\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":527,\"length\":4,\"target\":\"http\",\"line\":23,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n \\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n \\nconst owner = privateKeyToAccount('0x...')\\n \\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":60,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":84,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":189,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":250,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":273,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":280,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":291,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":302,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":321,\"length\":5,\"target\":\"owner\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":329,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":13,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":382,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":15,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":410,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":421,\"length\":6,\"target\":\"owners\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":430,\"length\":5,\"target\":\"owner\",\"line\":17,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":455,\"length\":13,\"target\":\"bundlerClient\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":471,\"length\":19,\"target\":\"createBundlerClient\",\"line\":20,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":495,\"length\":7,\"target\":\"account\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":506,\"length\":6,\"target\":\"client\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":516,\"length\":9,\"target\":\"transport\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":527,\"length\":4,\"target\":\"http\",\"line\":23,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n \\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n \\nconst owner = privateKeyToAccount('0x...')\\n \\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":60,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":84,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":189,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":250,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":273,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":280,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":291,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":302,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":321,\"length\":5,\"target\":\"owner\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":329,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":13,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":382,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":15,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":410,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":421,\"length\":6,\"target\":\"owners\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":430,\"length\":5,\"target\":\"owner\",\"line\":17,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":455,\"length\":13,\"target\":\"bundlerClient\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":471,\"length\":19,\"target\":\"createBundlerClient\",\"line\":20,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":495,\"length\":7,\"target\":\"account\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":506,\"length\":6,\"target\":\"client\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":516,\"length\":9,\"target\":\"transport\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":527,\"length\":4,\"target\":\"http\",\"line\":23,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { \\n createBundlerClient, \\n toCoinbaseSmartAccount \\n} from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n \\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n \\nconst owner = privateKeyToAccount('0x...')\\n \\nconst account = await toCoinbaseSmartAccount({ \\n client, \\n owners: [owner]\\n}) \\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":60,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":84,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":189,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":241,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":250,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":273,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":280,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":291,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":302,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":321,\"length\":5,\"target\":\"owner\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":329,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":13,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":366,\"length\":7,\"target\":\"account\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":382,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":15,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":410,\"length\":6,\"target\":\"client\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":421,\"length\":6,\"target\":\"owners\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":430,\"length\":5,\"target\":\"owner\",\"line\":17,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":455,\"length\":13,\"target\":\"bundlerClient\",\"line\":20,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":471,\"length\":19,\"target\":\"createBundlerClient\",\"line\":20,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":495,\"length\":7,\"target\":\"account\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":506,\"length\":6,\"target\":\"client\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":516,\"length\":9,\"target\":\"transport\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":527,\"length\":4,\"target\":\"http\",\"line\":23,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ac3ad8dfc8d9c324a274092e0c30dc8bd22bb5fd507db6adca17caf251080082.json b/site/.cache/twoslash.ac3ad8dfc8d9c324a274092e0c30dc8bd22bb5fd507db6adca17caf251080082.json index ebd391400a..090fd1471f 100644 --- a/site/.cache/twoslash.ac3ad8dfc8d9c324a274092e0c30dc8bd22bb5fd507db6adca17caf251080082.json +++ b/site/.cache/twoslash.ac3ad8dfc8d9c324a274092e0c30dc8bd22bb5fd507db6adca17caf251080082.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":87,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":146,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":153,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":246,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":279,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":337,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":397,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":405,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":413,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":421,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":425,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":87,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":146,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":153,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":246,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":279,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":337,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":397,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":405,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":413,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":421,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":425,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":87,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":146,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":153,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":246,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":279,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":337,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":397,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":405,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":413,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":421,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":425,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":43,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":66,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":87,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":146,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":153,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":246,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":279,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":337,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":397,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":405,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":413,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":421,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":425,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ac60ff1d9599e9caff8d70d9b9872c928ce139c01b18220d63cfb099e79a2ee4.json b/site/.cache/twoslash.ac60ff1d9599e9caff8d70d9b9872c928ce139c01b18220d63cfb099e79a2ee4.json index 39338a4bfb..9a92bc8684 100644 --- a/site/.cache/twoslash.ac60ff1d9599e9caff8d70d9b9872c928ce139c01b18220d63cfb099e79a2ee4.json +++ b/site/.cache/twoslash.ac60ff1d9599e9caff8d70d9b9872c928ce139c01b18220d63cfb099e79a2ee4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account)\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account)\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account)\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account)\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":183,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ac6e207f85bd6445e03c60036596f7f3244cd8bd253376f6e281874a00a15c03.json b/site/.cache/twoslash.ac6e207f85bd6445e03c60036596f7f3244cd8bd253376f6e281874a00a15c03.json index 302ec271b0..68803fe48a 100644 --- a/site/.cache/twoslash.ac6e207f85bd6445e03c60036596f7f3244cd8bd253376f6e281874a00a15c03.json +++ b/site/.cache/twoslash.ac6e207f85bd6445e03c60036596f7f3244cd8bd253376f6e281874a00a15c03.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { assetChanges, results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1.5')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n traceAssetChanges: true, // [!code hl]\\n})\\n\\nconsole.log(assetChanges)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":192,\"length\":12,\"target\":\"assetChanges\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":206,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":224,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":231,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":249,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":306,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":383,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":390,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":427,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":483,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":494,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":535,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":591,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":602,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":634,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) traceAssetChanges?: boolean | undefined\",\"docs\":\"Whether to trace asset changes.\",\"start\":732,\"length\":17,\"target\":\"traceAssetChanges\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":775,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":783,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":787,\"length\":12,\"target\":\"assetChanges\",\"line\":33,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":801,\"length\":0,\"text\":\"[\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":802,\"length\":0,\"text\":\" {\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":803,\"length\":0,\"text\":\" token: {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":804,\"length\":0,\"text\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":805,\"length\":0,\"text\":\" decimals: 18,\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":806,\"length\":0,\"text\":\" symbol: \\\"ETH\\\",\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":807,\"length\":0,\"text\":\" },\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":808,\"length\":0,\"text\":\" value: {\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":809,\"length\":0,\"text\":\" diff: -1500000000000000000n,\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":810,\"length\":0,\"text\":\" post: 9850000000000000000000n,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":811,\"length\":0,\"text\":\" pre: 10000000000000000000000n,\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":812,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":813,\"length\":0,\"text\":\" }\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":814,\"length\":0,\"text\":\" {\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":815,\"length\":0,\"text\":\" token: {\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":816,\"length\":0,\"text\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":817,\"length\":0,\"text\":\" decimals: 1,\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":818,\"length\":0,\"text\":\" symbol: \\\"WAGMI\\\",\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":819,\"length\":0,\"text\":\" },\",\"line\":52,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":820,\"length\":0,\"text\":\" value: {\",\"line\":53,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":821,\"length\":0,\"text\":\" diff: 1n,\",\"line\":54,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":822,\"length\":0,\"text\":\" post: 1n,\",\"line\":55,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":823,\"length\":0,\"text\":\" pre: 0n,\",\"line\":56,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":824,\"length\":0,\"text\":\" },\",\"line\":57,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":825,\"length\":0,\"text\":\" },\",\"line\":58,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":826,\"length\":0,\"text\":\" {\",\"line\":59,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":827,\"length\":0,\"text\":\" token: {\",\"line\":60,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":828,\"length\":0,\"text\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"line\":61,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":829,\"length\":0,\"text\":\" decimals: 18,\",\"line\":62,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":830,\"length\":0,\"text\":\" symbol: \\\"SHIB\\\",\",\"line\":63,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":831,\"length\":0,\"text\":\" },\",\"line\":64,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":832,\"length\":0,\"text\":\" value: {\",\"line\":65,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":833,\"length\":0,\"text\":\" diff: -1000000000000000000n,\",\"line\":66,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":834,\"length\":0,\"text\":\" post: 410429569258816445970930282571360n,\",\"line\":67,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":835,\"length\":0,\"text\":\" pre: 410429569258817445970930282571360n,\",\"line\":68,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":836,\"length\":0,\"text\":\" },\",\"line\":69,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":837,\"length\":0,\"text\":\" }\",\"line\":70,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":838,\"length\":0,\"text\":\"]\",\"line\":72,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[2735,2746],[2721,2734],[2704,2720],[2647,2703],[2589,2646],[2544,2588],[2521,2543],[2504,2520],[2472,2503],[2442,2471],[2371,2441],[2348,2370],[2334,2347],[2319,2333],[2302,2318],[2277,2301],[2251,2276],[2225,2250],[2202,2224],[2185,2201],[2152,2184],[2123,2151],[2052,2122],[2029,2051],[2015,2028],[2001,2014],[1984,2000],[1937,1983],[1890,1936],[1845,1889],[1822,1844],[1805,1821],[1774,1804],[1744,1773],[1673,1743],[1650,1672],[1636,1649],[1624,1635],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1624,\"end\":1635},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1636,\"end\":1649},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":1650,\"end\":1672},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"start\":1673,\"end\":1743},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 18,\",\"start\":1744,\"end\":1773},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"ETH\\\",\",\"start\":1774,\"end\":1804},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1805,\"end\":1821},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":1822,\"end\":1844},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: -1500000000000000000n,\",\"start\":1845,\"end\":1889},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 9850000000000000000000n,\",\"start\":1890,\"end\":1936},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 10000000000000000000000n,\",\"start\":1937,\"end\":1983},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1984,\"end\":2000},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }\",\"start\":2001,\"end\":2014},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":2015,\"end\":2028},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":2029,\"end\":2051},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"start\":2052,\"end\":2122},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 1,\",\"start\":2123,\"end\":2151},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"WAGMI\\\",\",\"start\":2152,\"end\":2184},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2185,\"end\":2201},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":2202,\"end\":2224},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: 1n,\",\"start\":2225,\"end\":2250},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 1n,\",\"start\":2251,\"end\":2276},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 0n,\",\"start\":2277,\"end\":2301},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2302,\"end\":2318},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2319,\"end\":2333},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":2334,\"end\":2347},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":2348,\"end\":2370},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"start\":2371,\"end\":2441},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 18,\",\"start\":2442,\"end\":2471},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"SHIB\\\",\",\"start\":2472,\"end\":2503},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2504,\"end\":2520},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":2521,\"end\":2543},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: -1000000000000000000n,\",\"start\":2544,\"end\":2588},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 410429569258816445970930282571360n,\",\"start\":2589,\"end\":2646},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 410429569258817445970930282571360n,\",\"start\":2647,\"end\":2703},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2704,\"end\":2720},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }\",\"start\":2721,\"end\":2734},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":2735,\"end\":2746}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { assetChanges, results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1.5')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n traceAssetChanges: true, // [!code hl]\\n})\\n\\nconsole.log(assetChanges)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\\n\\n// @log: decimals: 18,\\n\\n// @log: symbol: \\\"ETH\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: -1500000000000000000n,\\n\\n// @log: post: 9850000000000000000000n,\\n\\n// @log: pre: 10000000000000000000000n,\\n\\n// @log: },\\n\\n// @log: }\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\\n\\n// @log: decimals: 1,\\n\\n// @log: symbol: \\\"WAGMI\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: 1n,\\n\\n// @log: post: 1n,\\n\\n// @log: pre: 0n,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\\n\\n// @log: decimals: 18,\\n\\n// @log: symbol: \\\"SHIB\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: -1000000000000000000n,\\n\\n// @log: post: 410429569258816445970930282571360n,\\n\\n// @log: pre: 410429569258817445970930282571360n,\\n\\n// @log: },\\n\\n// @log: }\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":192,\"length\":12,\"target\":\"assetChanges\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":206,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":224,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":231,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":249,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":306,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":383,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":390,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":427,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":483,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":494,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":535,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":591,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":602,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":634,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) traceAssetChanges?: boolean | undefined\",\"docs\":\"Whether to trace asset changes.\",\"start\":732,\"length\":17,\"target\":\"traceAssetChanges\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":775,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":783,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":787,\"length\":12,\"target\":\"assetChanges\",\"line\":33,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":801,\"length\":0,\"text\":\"[\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":802,\"length\":0,\"text\":\" {\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":803,\"length\":0,\"text\":\" token: {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":804,\"length\":0,\"text\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":805,\"length\":0,\"text\":\" decimals: 18,\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":806,\"length\":0,\"text\":\" symbol: \\\"ETH\\\",\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":807,\"length\":0,\"text\":\" },\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":808,\"length\":0,\"text\":\" value: {\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":809,\"length\":0,\"text\":\" diff: -1500000000000000000n,\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":810,\"length\":0,\"text\":\" post: 9850000000000000000000n,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":811,\"length\":0,\"text\":\" pre: 10000000000000000000000n,\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":812,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":813,\"length\":0,\"text\":\" }\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":814,\"length\":0,\"text\":\" {\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":815,\"length\":0,\"text\":\" token: {\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":816,\"length\":0,\"text\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":817,\"length\":0,\"text\":\" decimals: 1,\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":818,\"length\":0,\"text\":\" symbol: \\\"WAGMI\\\",\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":819,\"length\":0,\"text\":\" },\",\"line\":52,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":820,\"length\":0,\"text\":\" value: {\",\"line\":53,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":821,\"length\":0,\"text\":\" diff: 1n,\",\"line\":54,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":822,\"length\":0,\"text\":\" post: 1n,\",\"line\":55,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":823,\"length\":0,\"text\":\" pre: 0n,\",\"line\":56,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":824,\"length\":0,\"text\":\" },\",\"line\":57,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":825,\"length\":0,\"text\":\" },\",\"line\":58,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":826,\"length\":0,\"text\":\" {\",\"line\":59,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":827,\"length\":0,\"text\":\" token: {\",\"line\":60,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":828,\"length\":0,\"text\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"line\":61,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":829,\"length\":0,\"text\":\" decimals: 18,\",\"line\":62,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":830,\"length\":0,\"text\":\" symbol: \\\"SHIB\\\",\",\"line\":63,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":831,\"length\":0,\"text\":\" },\",\"line\":64,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":832,\"length\":0,\"text\":\" value: {\",\"line\":65,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":833,\"length\":0,\"text\":\" diff: -1000000000000000000n,\",\"line\":66,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":834,\"length\":0,\"text\":\" post: 410429569258816445970930282571360n,\",\"line\":67,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":835,\"length\":0,\"text\":\" pre: 410429569258817445970930282571360n,\",\"line\":68,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":836,\"length\":0,\"text\":\" },\",\"line\":69,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":837,\"length\":0,\"text\":\" }\",\"line\":70,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":838,\"length\":0,\"text\":\"]\",\"line\":72,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { assetChanges, results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1.5')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n traceAssetChanges: true, // [!code hl]\\n})\\n\\nconsole.log(assetChanges)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":192,\"length\":12,\"target\":\"assetChanges\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":206,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":224,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":231,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":249,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":306,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":383,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":390,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":427,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":483,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":494,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":535,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":591,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":602,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":634,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) traceAssetChanges?: boolean | undefined\",\"docs\":\"Whether to trace asset changes.\",\"start\":732,\"length\":17,\"target\":\"traceAssetChanges\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":775,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":783,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":787,\"length\":12,\"target\":\"assetChanges\",\"line\":33,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":801,\"length\":0,\"text\":\"[\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":802,\"length\":0,\"text\":\" {\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":803,\"length\":0,\"text\":\" token: {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":804,\"length\":0,\"text\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":805,\"length\":0,\"text\":\" decimals: 18,\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":806,\"length\":0,\"text\":\" symbol: \\\"ETH\\\",\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":807,\"length\":0,\"text\":\" },\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":808,\"length\":0,\"text\":\" value: {\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":809,\"length\":0,\"text\":\" diff: -1500000000000000000n,\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":810,\"length\":0,\"text\":\" post: 9850000000000000000000n,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":811,\"length\":0,\"text\":\" pre: 10000000000000000000000n,\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":812,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":813,\"length\":0,\"text\":\" }\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":814,\"length\":0,\"text\":\" {\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":815,\"length\":0,\"text\":\" token: {\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":816,\"length\":0,\"text\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":817,\"length\":0,\"text\":\" decimals: 1,\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":818,\"length\":0,\"text\":\" symbol: \\\"WAGMI\\\",\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":819,\"length\":0,\"text\":\" },\",\"line\":52,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":820,\"length\":0,\"text\":\" value: {\",\"line\":53,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":821,\"length\":0,\"text\":\" diff: 1n,\",\"line\":54,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":822,\"length\":0,\"text\":\" post: 1n,\",\"line\":55,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":823,\"length\":0,\"text\":\" pre: 0n,\",\"line\":56,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":824,\"length\":0,\"text\":\" },\",\"line\":57,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":825,\"length\":0,\"text\":\" },\",\"line\":58,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":826,\"length\":0,\"text\":\" {\",\"line\":59,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":827,\"length\":0,\"text\":\" token: {\",\"line\":60,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":828,\"length\":0,\"text\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"line\":61,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":829,\"length\":0,\"text\":\" decimals: 18,\",\"line\":62,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":830,\"length\":0,\"text\":\" symbol: \\\"SHIB\\\",\",\"line\":63,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":831,\"length\":0,\"text\":\" },\",\"line\":64,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":832,\"length\":0,\"text\":\" value: {\",\"line\":65,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":833,\"length\":0,\"text\":\" diff: -1000000000000000000n,\",\"line\":66,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":834,\"length\":0,\"text\":\" post: 410429569258816445970930282571360n,\",\"line\":67,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":835,\"length\":0,\"text\":\" pre: 410429569258817445970930282571360n,\",\"line\":68,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":836,\"length\":0,\"text\":\" },\",\"line\":69,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":837,\"length\":0,\"text\":\" }\",\"line\":70,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":838,\"length\":0,\"text\":\"]\",\"line\":72,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[2735,2746],[2721,2734],[2704,2720],[2647,2703],[2589,2646],[2544,2588],[2521,2543],[2504,2520],[2472,2503],[2442,2471],[2371,2441],[2348,2370],[2334,2347],[2319,2333],[2302,2318],[2277,2301],[2251,2276],[2225,2250],[2202,2224],[2185,2201],[2152,2184],[2123,2151],[2052,2122],[2029,2051],[2015,2028],[2001,2014],[1984,2000],[1937,1983],[1890,1936],[1845,1889],[1822,1844],[1805,1821],[1774,1804],[1744,1773],[1673,1743],[1650,1672],[1636,1649],[1624,1635],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1624,\"end\":1635},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1636,\"end\":1649},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":1650,\"end\":1672},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"start\":1673,\"end\":1743},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 18,\",\"start\":1744,\"end\":1773},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"ETH\\\",\",\"start\":1774,\"end\":1804},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1805,\"end\":1821},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":1822,\"end\":1844},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: -1500000000000000000n,\",\"start\":1845,\"end\":1889},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 9850000000000000000000n,\",\"start\":1890,\"end\":1936},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 10000000000000000000000n,\",\"start\":1937,\"end\":1983},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1984,\"end\":2000},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }\",\"start\":2001,\"end\":2014},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":2015,\"end\":2028},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":2029,\"end\":2051},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"start\":2052,\"end\":2122},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 1,\",\"start\":2123,\"end\":2151},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"WAGMI\\\",\",\"start\":2152,\"end\":2184},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2185,\"end\":2201},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":2202,\"end\":2224},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: 1n,\",\"start\":2225,\"end\":2250},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 1n,\",\"start\":2251,\"end\":2276},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 0n,\",\"start\":2277,\"end\":2301},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2302,\"end\":2318},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2319,\"end\":2333},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":2334,\"end\":2347},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" token: {\",\"start\":2348,\"end\":2370},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"start\":2371,\"end\":2441},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" decimals: 18,\",\"start\":2442,\"end\":2471},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" symbol: \\\"SHIB\\\",\",\"start\":2472,\"end\":2503},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2504,\"end\":2520},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" value: {\",\"start\":2521,\"end\":2543},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" diff: -1000000000000000000n,\",\"start\":2544,\"end\":2588},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" post: 410429569258816445970930282571360n,\",\"start\":2589,\"end\":2646},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" pre: 410429569258817445970930282571360n,\",\"start\":2647,\"end\":2703},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":2704,\"end\":2720},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" }\",\"start\":2721,\"end\":2734},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":2735,\"end\":2746}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi, parseEther } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function mint()',\\n 'function transfer(address, uint256) returns (bool)',\\n])\\n \\nconst { assetChanges, results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1.5')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'mint',\\n },\\n {\\n to: '0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE',\\n abi,\\n functionName: 'transfer',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n 100n\\n ],\\n },\\n ],\\n traceAssetChanges: true, // [!code hl]\\n})\\n\\nconsole.log(assetChanges)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\\n\\n// @log: decimals: 18,\\n\\n// @log: symbol: \\\"ETH\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: -1500000000000000000n,\\n\\n// @log: post: 9850000000000000000000n,\\n\\n// @log: pre: 10000000000000000000000n,\\n\\n// @log: },\\n\\n// @log: }\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\\n\\n// @log: decimals: 1,\\n\\n// @log: symbol: \\\"WAGMI\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: 1n,\\n\\n// @log: post: 1n,\\n\\n// @log: pre: 0n,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: token: {\\n\\n// @log: address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\\n\\n// @log: decimals: 18,\\n\\n// @log: symbol: \\\"SHIB\\\",\\n\\n// @log: },\\n\\n// @log: value: {\\n\\n// @log: diff: -1000000000000000000n,\\n\\n// @log: post: 410429569258816445970930282571360n,\\n\\n// @log: pre: 410429569258817445970930282571360n,\\n\\n// @log: },\\n\\n// @log: }\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":19,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":53,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":85,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]>(signatures: [\\\"function mint()\\\", \\\"function transfer(address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":91,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":192,\"length\":12,\"target\":\"assetChanges\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":206,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":22},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":224,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":231,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":47},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":249,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":306,\"length\":5,\"target\":\"calls\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":383,\"length\":5,\"target\":\"value\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":390,\"length\":10,\"target\":\"parseEther\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":427,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":483,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":494,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":535,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n}, {\\n readonly name: \\\"transfer\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":591,\"length\":3,\"target\":\"abi\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\" | \\\"transfer\\\"\",\"start\":602,\"length\":12,\"target\":\"functionName\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":634,\"length\":4,\"target\":\"args\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) traceAssetChanges?: boolean | undefined\",\"docs\":\"Whether to trace asset changes.\",\"start\":732,\"length\":17,\"target\":\"traceAssetChanges\",\"line\":30,\"character\":2},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":775,\"length\":7,\"target\":\"console\",\"line\":33,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":783,\"length\":3,\"target\":\"log\",\"line\":33,\"character\":8},{\"type\":\"hover\",\"text\":\"const assetChanges: readonly {\\n token: {\\n address: Address;\\n decimals?: number | undefined;\\n symbol?: string | undefined;\\n };\\n value: {\\n pre: bigint;\\n post: bigint;\\n diff: bigint;\\n };\\n}[]\",\"docs\":\"Asset changes.\",\"start\":787,\"length\":12,\"target\":\"assetChanges\",\"line\":33,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":801,\"length\":0,\"text\":\"[\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":802,\"length\":0,\"text\":\" {\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":803,\"length\":0,\"text\":\" token: {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":804,\"length\":0,\"text\":\" address: \\\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":805,\"length\":0,\"text\":\" decimals: 18,\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":806,\"length\":0,\"text\":\" symbol: \\\"ETH\\\",\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":807,\"length\":0,\"text\":\" },\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":808,\"length\":0,\"text\":\" value: {\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":809,\"length\":0,\"text\":\" diff: -1500000000000000000n,\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":810,\"length\":0,\"text\":\" post: 9850000000000000000000n,\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":811,\"length\":0,\"text\":\" pre: 10000000000000000000000n,\",\"line\":44,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":812,\"length\":0,\"text\":\" },\",\"line\":45,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":813,\"length\":0,\"text\":\" }\",\"line\":46,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":814,\"length\":0,\"text\":\" {\",\"line\":47,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":815,\"length\":0,\"text\":\" token: {\",\"line\":48,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":816,\"length\":0,\"text\":\" address: \\\"0xfba3912ca04dd458c843e2ee08967fc04f3579c2\\\",\",\"line\":49,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":817,\"length\":0,\"text\":\" decimals: 1,\",\"line\":50,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":818,\"length\":0,\"text\":\" symbol: \\\"WAGMI\\\",\",\"line\":51,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":819,\"length\":0,\"text\":\" },\",\"line\":52,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":820,\"length\":0,\"text\":\" value: {\",\"line\":53,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":821,\"length\":0,\"text\":\" diff: 1n,\",\"line\":54,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":822,\"length\":0,\"text\":\" post: 1n,\",\"line\":55,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":823,\"length\":0,\"text\":\" pre: 0n,\",\"line\":56,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":824,\"length\":0,\"text\":\" },\",\"line\":57,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":825,\"length\":0,\"text\":\" },\",\"line\":58,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":826,\"length\":0,\"text\":\" {\",\"line\":59,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":827,\"length\":0,\"text\":\" token: {\",\"line\":60,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":828,\"length\":0,\"text\":\" address: \\\"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\\\",\",\"line\":61,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":829,\"length\":0,\"text\":\" decimals: 18,\",\"line\":62,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":830,\"length\":0,\"text\":\" symbol: \\\"SHIB\\\",\",\"line\":63,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":831,\"length\":0,\"text\":\" },\",\"line\":64,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":832,\"length\":0,\"text\":\" value: {\",\"line\":65,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":833,\"length\":0,\"text\":\" diff: -1000000000000000000n,\",\"line\":66,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":834,\"length\":0,\"text\":\" post: 410429569258816445970930282571360n,\",\"line\":67,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":835,\"length\":0,\"text\":\" pre: 410429569258817445970930282571360n,\",\"line\":68,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":836,\"length\":0,\"text\":\" },\",\"line\":69,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":837,\"length\":0,\"text\":\" }\",\"line\":70,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":838,\"length\":0,\"text\":\"]\",\"line\":72,\"character\":0}]}}" diff --git a/site/.cache/twoslash.ad654fa204bb9da92cd9f0edba6d851ef4537bb3e54bf1a0eb48e8b7d5c7217e.json b/site/.cache/twoslash.ad654fa204bb9da92cd9f0edba6d851ef4537bb3e54bf1a0eb48e8b7d5c7217e.json index 3beaf3e223..e22f31bccf 100644 --- a/site/.cache/twoslash.ad654fa204bb9da92cd9f0edba6d851ef4537bb3e54bf1a0eb48e8b7d5c7217e.json +++ b/site/.cache/twoslash.ad654fa204bb9da92cd9f0edba6d851ef4537bb3e54bf1a0eb48e8b7d5c7217e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":61,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":61,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":61,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n retryCount: 5, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":61,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ad8f065468b23d347e53fa3b01cf69403eb88a5dc6985c28c27f1bd7cb3059b6.json b/site/.cache/twoslash.ad8f065468b23d347e53fa3b01cf69403eb88a5dc6985c28c27f1bd7cb3059b6.json index dcc90eda55..669ddf4d40 100644 --- a/site/.cache/twoslash.ad8f065468b23d347e53fa3b01cf69403eb88a5dc6985c28c27f1bd7cb3059b6.json +++ b/site/.cache/twoslash.ad8f065468b23d347e53fa3b01cf69403eb88a5dc6985c28c27f1bd7cb3059b6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly maxPriorityFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":155,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":177,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":212,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly maxPriorityFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":155,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":177,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":212,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly maxPriorityFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":155,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":177,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":212,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly maxPriorityFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"start\":155,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":177,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":212,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":264,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":271,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ada59f64f20eb8483eb821a6658f0077e8e222a01ed2a9bed5b0c4fb7eb70d09.json b/site/.cache/twoslash.ada59f64f20eb8483eb821a6658f0077e8e222a01ed2a9bed5b0c4fb7eb70d09.json index cf1eb156fe..2897fe96be 100644 --- a/site/.cache/twoslash.ada59f64f20eb8483eb821a6658f0077e8e222a01ed2a9bed5b0c4fb7eb70d09.json +++ b/site/.cache/twoslash.ada59f64f20eb8483eb821a6658f0077e8e222a01ed2a9bed5b0c4fb7eb70d09.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":231,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":231,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":231,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":52,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":80,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":101,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":158,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":180,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":194,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":231,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ae29fb99089ffa5ecac906cd51ebd0647e6c5a765f9a0537c3a71f05a8c75f30.json b/site/.cache/twoslash.ae29fb99089ffa5ecac906cd51ebd0647e6c5a765f9a0537c3a71f05a8c75f30.json new file mode 100644 index 0000000000..47203469f8 --- /dev/null +++ b/site/.cache/twoslash.ae29fb99089ffa5ecac906cd51ebd0647e6c5a765f9a0537c3a71f05a8c75f30.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1021]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":666,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":982,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') // [!code focus]\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: any\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: any;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":286,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ae366a792d392c6b3133859cad058ac49e621432d152396951a4e76cec022559.json b/site/.cache/twoslash.ae366a792d392c6b3133859cad058ac49e621432d152396951a4e76cec022559.json deleted file mode 100644 index 97e3ceca50..0000000000 --- a/site/.cache/twoslash.ae366a792d392c6b3133859cad058ac49e621432d152396951a4e76cec022559.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n timeout: 500\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":81,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n timeout: 500\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Timeout when sampling transports.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":81,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ae3827ea4241930923e788f680af89fcfca58ea5f8d0991eef6aaf853766fc36.json b/site/.cache/twoslash.ae3827ea4241930923e788f680af89fcfca58ea5f8d0991eef6aaf853766fc36.json index 3ca6a5efa3..95cd900d94 100644 --- a/site/.cache/twoslash.ae3827ea4241930923e788f680af89fcfca58ea5f8d0991eef6aaf853766fc36.json +++ b/site/.cache/twoslash.ae3827ea4241930923e788f680af89fcfca58ea5f8d0991eef6aaf853766fc36.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry, // [!code focus]\\n mode: 'anvil',\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":71,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry, // [!code focus]\\n mode: 'anvil',\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":71,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry, // [!code focus]\\n mode: 'anvil',\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":71,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry, // [!code focus]\\n mode: 'anvil',\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":71,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ae65bb0623b5cda376b994a2100da0c44d167c5b0ceeccfb6efdd94bf352ca81.json b/site/.cache/twoslash.ae65bb0623b5cda376b994a2100da0c44d167c5b0ceeccfb6efdd94bf352ca81.json index 5e6194b0b1..b8ef84a700 100644 --- a/site/.cache/twoslash.ae65bb0623b5cda376b994a2100da0c44d167c5b0ceeccfb6efdd94bf352ca81.json +++ b/site/.cache/twoslash.ae65bb0623b5cda376b994a2100da0c44d167c5b0ceeccfb6efdd94bf352ca81.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":41,\"length\":8,\"target\":\"blockTag\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":78,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":135,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":189,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":41,\"length\":8,\"target\":\"blockTag\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":78,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":135,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":189,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":41,\"length\":8,\"target\":\"blockTag\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":78,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":135,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":189,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":41,\"length\":8,\"target\":\"blockTag\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":78,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":135,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":189,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.aee5d007c80ce5499f499af5f07a8475869338d8af67ce66ed286ea9b9976619.json b/site/.cache/twoslash.aee5d007c80ce5499f499af5f07a8475869338d8af67ce66ed286ea9b9976619.json index c70151cce0..9cea9ea5e0 100644 --- a/site/.cache/twoslash.aee5d007c80ce5499f499af5f07a8475869338d8af67ce66ed286ea9b9976619.json +++ b/site/.cache/twoslash.aee5d007c80ce5499f499af5f07a8475869338d8af67ce66ed286ea9b9976619.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst accounts = await walletClient.requestAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: RequestAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) requestAddresses: () => Promise\",\"docs\":\"Requests a list of accounts managed by a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestAddresses\\n- JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\\n\\nSends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\\n\\nThis API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\",\"tags\":[[\"returns\",\"List of accounts managed by a wallet {@link RequestAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.requestAddresses()\"]],\"start\":78,\"length\":16,\"target\":\"requestAddresses\",\"line\":2,\"character\":36}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst accounts = await walletClient.requestAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: RequestAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) requestAddresses: () => Promise\",\"docs\":\"Requests a list of accounts managed by a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestAddresses\\n- JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\\n\\nSends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\\n\\nThis API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\",\"tags\":[[\"returns\",\"List of accounts managed by a wallet {@link RequestAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.requestAddresses()\"]],\"start\":78,\"length\":16,\"target\":\"requestAddresses\",\"line\":2,\"character\":36}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst accounts = await walletClient.requestAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: RequestAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) requestAddresses: () => Promise\",\"docs\":\"Requests a list of accounts managed by a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestAddresses\\n- JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\\n\\nSends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\\n\\nThis API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\",\"tags\":[[\"returns\",\"List of accounts managed by a wallet {@link RequestAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.requestAddresses()\"]],\"start\":78,\"length\":16,\"target\":\"requestAddresses\",\"line\":2,\"character\":36}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst accounts = await walletClient.requestAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: RequestAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) requestAddresses: () => Promise\",\"docs\":\"Requests a list of accounts managed by a wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/requestAddresses\\n- JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\\n\\nSends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\\n\\nThis API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\",\"tags\":[[\"returns\",\"List of accounts managed by a wallet {@link RequestAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.requestAddresses()\"]],\"start\":78,\"length\":16,\"target\":\"requestAddresses\",\"line\":2,\"character\":36}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.af7e92b598914ecd4a3cebae79896ce0f1cd13ceccc6fdccddbc2cd180d394de.json b/site/.cache/twoslash.af7e92b598914ecd4a3cebae79896ce0f1cd13ceccc6fdccddbc2cd180d394de.json index d4a4860b86..ed077ef97f 100644 --- a/site/.cache/twoslash.af7e92b598914ecd4a3cebae79896ce0f1cd13ceccc6fdccddbc2cd180d394de.json +++ b/site/.cache/twoslash.af7e92b598914ecd4a3cebae79896ce0f1cd13ceccc6fdccddbc2cd180d394de.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":290,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":308,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":322,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":348,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":364,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":394,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":410,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":424,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":462,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":488,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":506,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":538,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":561,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":576,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":590,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":609,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":674,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":686,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":705,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":770,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":290,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":308,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":322,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":348,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":364,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":394,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":410,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":424,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":462,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":488,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":506,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":538,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":561,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":576,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":590,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":609,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":674,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":686,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":705,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":770,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":290,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":308,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":322,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":348,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":364,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":394,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":410,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":424,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":462,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":488,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":506,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":538,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":561,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":576,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":590,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":609,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":674,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":686,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":705,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":770,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: { // [!code focus:11]\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":290,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":308,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":322,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":348,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":364,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":394,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":410,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":424,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":450,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":462,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":488,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":506,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":538,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":561,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":576,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":590,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":609,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":674,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":686,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":705,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":770,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.af8c949a144344770d617f3557cd47d9751a16100ac5393d46b5b36d227678bd.json b/site/.cache/twoslash.af8c949a144344770d617f3557cd47d9751a16100ac5393d46b5b36d227678bd.json index 9ddce34649..2620c2b01f 100644 --- a/site/.cache/twoslash.af8c949a144344770d617f3557cd47d9751a16100ac5393d46b5b36d227678bd.json +++ b/site/.cache/twoslash.af8c949a144344770d617f3557cd47d9751a16100ac5393d46b5b36d227678bd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n functionName: 'initialize',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":101,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":106,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":149,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":249,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":271,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":284,\"length\":17,\"target\":\"signAuthorization\",\"line\":7,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":315,\"length\":3,\"target\":\"eoa\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":322,\"length\":15,\"target\":\"contractAddress\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":435,\"length\":4,\"target\":\"hash\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":448,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":461,\"length\":13,\"target\":\"writeContract\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":479,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":486,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":495,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":499,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":510,\"length\":17,\"target\":\"authorizationList\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":530,\"length\":13,\"target\":\"authorization\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":614,\"length\":12,\"target\":\"functionName\",\"line\":19,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n functionName: 'initialize',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":101,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":106,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":149,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":249,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":271,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":284,\"length\":17,\"target\":\"signAuthorization\",\"line\":7,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":315,\"length\":3,\"target\":\"eoa\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":322,\"length\":15,\"target\":\"contractAddress\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":435,\"length\":4,\"target\":\"hash\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":448,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":461,\"length\":13,\"target\":\"writeContract\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":479,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":486,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":495,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":499,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":510,\"length\":17,\"target\":\"authorizationList\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":530,\"length\":13,\"target\":\"authorization\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":614,\"length\":12,\"target\":\"functionName\",\"line\":19,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n functionName: 'initialize',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":101,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":106,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":149,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":249,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":271,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":284,\"length\":17,\"target\":\"signAuthorization\",\"line\":7,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":315,\"length\":3,\"target\":\"eoa\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":322,\"length\":15,\"target\":\"contractAddress\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":435,\"length\":4,\"target\":\"hash\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":448,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":461,\"length\":13,\"target\":\"writeContract\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":479,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":486,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":495,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":499,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":510,\"length\":17,\"target\":\"authorizationList\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":530,\"length\":13,\"target\":\"authorization\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":614,\"length\":12,\"target\":\"functionName\",\"line\":19,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './config'\\nimport { abi, contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\n// 1. Authorize designation of the Contract onto the EOA.\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress,\\n})\\n\\n// 2. Designate the Contract on the EOA, and invoke the \\n// `initialize` function.\\nconst hash = await walletClient.writeContract({\\n abi,\\n address: eoa.address,\\n authorizationList: [authorization],\\n // ↑ 3. Pass the Authorization as a parameter.\\n functionName: 'initialize',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\\nimport abi\",\"start\":101,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":106,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":14},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":149,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":249,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":271,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":284,\"length\":17,\"target\":\"signAuthorization\",\"line\":7,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":315,\"length\":3,\"target\":\"eoa\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":322,\"length\":15,\"target\":\"contractAddress\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":435,\"length\":4,\"target\":\"hash\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":448,\"length\":12,\"target\":\"walletClient\",\"line\":14,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":461,\"length\":13,\"target\":\"writeContract\",\"line\":14,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly type: \\\"function\\\";\\n readonly name: \\\"initialize\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}, {\\n readonly type: \\\"function\\\";\\n readonly name: \\\"ping\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [];\\n readonly stateMutability: \\\"pure\\\";\\n}]\",\"start\":479,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":486,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":495,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":499,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":510,\"length\":17,\"target\":\"authorizationList\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":530,\"length\":13,\"target\":\"authorization\",\"line\":17,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":614,\"length\":12,\"target\":\"functionName\",\"line\":19,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.afabc46ffb8c5b901f4ac83c2f0dc9313b75e7249235eba4552a5604c4346045.json b/site/.cache/twoslash.afabc46ffb8c5b901f4ac83c2f0dc9313b75e7249235eba4552a5604c4346045.json new file mode 100644 index 0000000000..234c88f91f --- /dev/null +++ b/site/.cache/twoslash.afabc46ffb8c5b901f4ac83c2f0dc9313b75e7249235eba4552a5604c4346045.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256' // [!code focus]\\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":111,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":190,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":228,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256' // [!code focus]\\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":111,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":190,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":228,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.afbd827ec3a609d53f27b799eb12f47df287b27727bfbdeed506415f0e90134b.json b/site/.cache/twoslash.afbd827ec3a609d53f27b799eb12f47df287b27727bfbdeed506415f0e90134b.json index ce056f9fde..dae29ace8b 100644 --- a/site/.cache/twoslash.afbd827ec3a609d53f27b799eb12f47df287b27727bfbdeed506415f0e90134b.json +++ b/site/.cache/twoslash.afbd827ec3a609d53f27b799eb12f47df287b27727bfbdeed506415f0e90134b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = privateKeyToAccount('0x...')\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"owner\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":213,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":236,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":243,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":254,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":265,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = privateKeyToAccount('0x...')\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"owner\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":213,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":236,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":243,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":254,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":265,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = privateKeyToAccount('0x...')\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"owner\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":213,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":236,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":243,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":254,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":265,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = privateKeyToAccount('0x...')\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"owner\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":204,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":213,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":236,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":243,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":254,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":265,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.afe5fcb53d23eef27f98324fd87ee704ccac198a07de78a1d2d24e47e74e66b0.json b/site/.cache/twoslash.afe5fcb53d23eef27f98324fd87ee704ccac198a07de78a1d2d24e47e74e66b0.json index 3238e0b6f7..163da65a67 100644 --- a/site/.cache/twoslash.afe5fcb53d23eef27f98324fd87ee704ccac198a07de78a1d2d24e47e74e66b0.json +++ b/site/.cache/twoslash.afe5fcb53d23eef27f98324fd87ee704ccac198a07de78a1d2d24e47e74e66b0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { onBlock: block => console.log(block) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":46,\"length\":7,\"target\":\"onBlock\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":55,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":64,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":72,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":76,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { onBlock: block => console.log(block) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":46,\"length\":7,\"target\":\"onBlock\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":55,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":64,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":72,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":76,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":34}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlocks(\\n { onBlock: block => console.log(block) } // [!code focus:1]\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":46,\"length\":7,\"target\":\"onBlock\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":55,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":64,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":72,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":76,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":34}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlocks(\\n { onBlock: block => console.log(block) } // [!code focus:1]\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":29,\"length\":11,\"target\":\"watchBlocks\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":46,\"length\":7,\"target\":\"onBlock\",\"line\":1,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":55,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":64,\"length\":7,\"target\":\"console\",\"line\":1,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":72,\"length\":3,\"target\":\"log\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":76,\"length\":5,\"target\":\"block\",\"line\":1,\"character\":34}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b02de6c281e4a3d2d79173ca187a06f06dfd0fb8d14860338f8569300188dd76.json b/site/.cache/twoslash.b02de6c281e4a3d2d79173ca187a06f06dfd0fb8d14860338f8569300188dd76.json deleted file mode 100644 index f63bbbdab3..0000000000 --- a/site/.cache/twoslash.b02de6c281e4a3d2d79173ca187a06f06dfd0fb8d14860338f8569300188dd76.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":17,\"target\":\"signAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":122,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":222,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":223,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":224,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" yParity: 0,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":249,\"length\":12,\"target\":\"walletClient\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":262,\"length\":15,\"target\":\"sendTransaction\",\"line\":13,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":282,\"length\":17,\"target\":\"authorizationList\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":302,\"length\":13,\"target\":\"authorization\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":320,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":342,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":346,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":359,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":367,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1330,1341],[1306,1329],[1221,1305],[1136,1220],[1114,1135],[1039,1113],[1015,1038],[1003,1014],[0,781]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":1003,\"end\":1014},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":1015,\"end\":1038},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1039,\"end\":1113},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":1114,\"end\":1135},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1136,\"end\":1220},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1221,\"end\":1305},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1306,\"end\":1329},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1330,\"end\":1341}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: walletClient.account.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":17,\"target\":\"signAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":122,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":249,\"length\":12,\"target\":\"walletClient\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":262,\"length\":15,\"target\":\"sendTransaction\",\"line\":13,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":282,\"length\":17,\"target\":\"authorizationList\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":302,\"length\":13,\"target\":\"authorization\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":320,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":342,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":346,\"length\":12,\"target\":\"walletClient\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":359,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":367,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":27}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":222,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":223,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":224,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" yParity: 0,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.b02ee9b04d4c45309f552f51e139ba5878925aa039525a25dec013250199a240.json b/site/.cache/twoslash.b02ee9b04d4c45309f552f51e139ba5878925aa039525a25dec013250199a240.json index f8bcea5705..315c149e6c 100644 --- a/site/.cache/twoslash.b02ee9b04d4c45309f552f51e139ba5878925aa039525a25dec013250199a240.json +++ b/site/.cache/twoslash.b02ee9b04d4c45309f552f51e139ba5878925aa039525a25dec013250199a240.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock, sendTransaction } from 'viem/actions'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst blockNumber = await getBlock(client, { blockTag: 'latest' })\\nconst hash = await sendTransaction(client, { ... })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function getBlock(client: Client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters): Promise>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":89,\"length\":8,\"target\":\"getBlock\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function sendTransaction, chainOverride extends Chain | undefined = undefined>(client: Client, parameters: SendTransactionParameters): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":99,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":144,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":153,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":217,\"length\":11,\"target\":\"blockNumber\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) getBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, false, \\\"latest\\\">(client: Client<...>, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters<...> | undefined): Promise<...>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":237,\"length\":8,\"target\":\"getBlock\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":246,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":256,\"length\":8,\"target\":\"blockTag\",\"line\":9,\"character\":45},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":284,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) sendTransaction<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, any, undefined>(client: Client<...>, parameters: any): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":297,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":313,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":35}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock, sendTransaction } from 'viem/actions'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst blockNumber = await getBlock(client, { blockTag: 'latest' })\\nconst hash = await sendTransaction(client, { ... })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function getBlock(client: Client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters): Promise>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":89,\"length\":8,\"target\":\"getBlock\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function sendTransaction, chainOverride extends Chain | undefined = undefined>(client: Client, parameters: SendTransactionParameters): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":99,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":144,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":153,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":217,\"length\":11,\"target\":\"blockNumber\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) getBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, false, \\\"latest\\\">(client: Client<...>, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters<...> | undefined): Promise<...>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":237,\"length\":8,\"target\":\"getBlock\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":246,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":256,\"length\":8,\"target\":\"blockTag\",\"line\":9,\"character\":45},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":284,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) sendTransaction<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, any, undefined>(client: Client<...>, parameters: any): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":297,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":313,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":35}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock, sendTransaction } from 'viem/actions'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst blockNumber = await getBlock(client, { blockTag: 'latest' })\\nconst hash = await sendTransaction(client, { ... })\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function getBlock(client: Client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters): Promise>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":89,\"length\":8,\"target\":\"getBlock\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function sendTransaction, chainOverride extends Chain | undefined = undefined>(client: Client, parameters: SendTransactionParameters): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":99,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":144,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":153,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":217,\"length\":11,\"target\":\"blockNumber\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) getBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, false, \\\"latest\\\">(client: Client<...>, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters<...> | undefined): Promise<...>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":237,\"length\":8,\"target\":\"getBlock\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":246,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":256,\"length\":8,\"target\":\"blockTag\",\"line\":9,\"character\":45},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":284,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) sendTransaction<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, any, undefined>(client: Client<...>, parameters: any): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":297,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":313,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":35}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock, sendTransaction } from 'viem/actions'\\n\\nconst client = createClient({ \\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst blockNumber = await getBlock(client, { blockTag: 'latest' })\\nconst hash = await sendTransaction(client, { ... })\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":9,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":23,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":23},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function getBlock(client: Client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters): Promise>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":89,\"length\":8,\"target\":\"getBlock\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function sendTransaction, chainOverride extends Chain | undefined = undefined>(client: Client, parameters: SendTransactionParameters): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":99,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":144,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":153,\"length\":12,\"target\":\"createClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":171,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":178,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":189,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":200,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":217,\"length\":11,\"target\":\"blockNumber\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) getBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, false, \\\"latest\\\">(client: Client<...>, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, }?: GetBlockParameters<...> | undefined): Promise<...>\\nimport getBlock\",\"docs\":\"Returns information about a block at a block number, hash, or tag.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlock\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\\n - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link GetBlockParameters}\"],[\"returns\",\"Information about the block. {@link GetBlockReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { getBlock } from 'viem/public'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst block = await getBlock(client)\"]],\"start\":237,\"length\":8,\"target\":\"getBlock\",\"line\":9,\"character\":26},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":246,\"length\":6,\"target\":\"client\",\"line\":9,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":256,\"length\":8,\"target\":\"blockTag\",\"line\":9,\"character\":45},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":284,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) sendTransaction<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, any, undefined>(client: Client<...>, parameters: any): Promise\\nimport sendTransaction\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await sendTransaction(client, {\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { sendTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await sendTransaction(client, {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":297,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":313,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":35}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b08aa9fcd3b42b394a44718e2ce4a53337c82e80089cbe373f1125e7dd681497.json b/site/.cache/twoslash.b08aa9fcd3b42b394a44718e2ce4a53337c82e80089cbe373f1125e7dd681497.json deleted file mode 100644 index 62f1c897c2..0000000000 --- a/site/.cache/twoslash.b08aa9fcd3b42b394a44718e2ce4a53337c82e80089cbe373f1125e7dd681497.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await account.experimental_signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) experimental_signAuthorization: (parameters: Authorization) => Promise\",\"start\":36,\"length\":30,\"target\":\"experimental_signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":71,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":99,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":113,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":133,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":151,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":159,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":179,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":199,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":234,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,110]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { privateKeyToAccount } from 'viem/accounts'\\nconst account = privateKeyToAccount('0x...')\\n// ---cut---\\nconst authorization = await account.experimental_signAuthorization({\\n contractAddress: '0x...',\\n chainId: 1,\\n nonce: 1,\\n})\\n\\nconst signature = await account.signTransaction({\\n authorizationList: [authorization], // [!code focus]\\n chainId: 1,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":28,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) experimental_signAuthorization: (parameters: Authorization) => Promise\",\"start\":36,\"length\":30,\"target\":\"experimental_signAuthorization\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":71,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":99,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":113,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x04${string}`\",\"start\":133,\"length\":9,\"target\":\"signature\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":151,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: , {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}>(transaction: {\\n authorizationList: SignAuthorizationReturnType[];\\n chainId: number;\\n}, options?: {\\n ...;\\n} | undefined) => Promise<...>\",\"start\":159,\"length\":15,\"target\":\"signTransaction\",\"line\":6,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: SignAuthorizationReturnType[]\",\"start\":179,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":199,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":234,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b127bfcc9ac31d37931218de95648d4fd7b8c1f91aa45f673411c1221bddd51c.json b/site/.cache/twoslash.b127bfcc9ac31d37931218de95648d4fd7b8c1f91aa45f673411c1221bddd51c.json deleted file mode 100644 index 51d595df46..0000000000 --- a/site/.cache/twoslash.b127bfcc9ac31d37931218de95648d4fd7b8c1f91aa45f673411c1221bddd51c.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":84,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: {\\n wait: 16 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":84,\"length\":4,\"target\":\"wait\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b131f174e891f9770b8ac41ecd7db196d1250c6d7c0d1ed40b8f39be05fe93c7.json b/site/.cache/twoslash.b131f174e891f9770b8ac41ecd7db196d1250c6d7c0d1ed40b8f39be05fe93c7.json index 0bfa298a30..f27636b77f 100644 --- a/site/.cache/twoslash.b131f174e891f9770b8ac41ecd7db196d1250c6d7c0d1ed40b8f39be05fe93c7.json +++ b/site/.cache/twoslash.b131f174e891f9770b8ac41ecd7db196d1250c6d7c0d1ed40b8f39be05fe93c7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n key: 'foo', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":38,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":69,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":80,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":87,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":94,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n key: 'foo', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":38,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":69,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":80,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":87,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":94,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n key: 'foo', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":38,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":69,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":80,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":87,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":94,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n key: 'foo', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":38,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":69,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":80,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":87,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":94,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b157358c70d358ad2ae8b194211a75d6bb16731cd5006a597750d38b75ae47b1.json b/site/.cache/twoslash.b157358c70d358ad2ae8b194211a75d6bb16731cd5006a597750d38b75ae47b1.json index 2c9bf591ca..f2d5d6f14f 100644 --- a/site/.cache/twoslash.b157358c70d358ad2ae8b194211a75d6bb16731cd5006a597750d38b75ae47b1.json +++ b/site/.cache/twoslash.b157358c70d358ad2ae8b194211a75d6bb16731cd5006a597750d38b75ae47b1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[987,998],[965,986],[890,964],[866,889],[854,865],[0,629]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":854,\"end\":865},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":866,\"end\":889},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":890,\"end\":964},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":965,\"end\":986},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":987,\"end\":998}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[987,998],[965,986],[890,964],[866,889],[854,865],[0,629]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":854,\"end\":865},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":866,\"end\":889},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":890,\"end\":964},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 1,\",\"start\":965,\"end\":986},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":987,\"end\":998}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst authorization = await walletClient.prepareAuthorization({ // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: chainId: 1,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 1,\\n\\n// @log: }\\n\\nconst signedAuthorization = await walletClient.signAuthorization(authorization)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":48,\"length\":13,\"target\":\"authorization\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":70,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":83,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":2,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":125,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const signedAuthorization: SignAuthorizationReturnType\",\"start\":236,\"length\":19,\"target\":\"signedAuthorization\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":264,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":277,\"length\":17,\"target\":\"signAuthorization\",\"line\":10,\"character\":47},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":295,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":65}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":225,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":226,\"length\":0,\"text\":\" chainId: 1,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":227,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":228,\"length\":0,\"text\":\" nonce: 1,\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"}\",\"line\":9,\"character\":0}]}}" diff --git a/site/.cache/twoslash.b17922976fb802f504c3a04dddc4cf6867e1d7a77aaa53617882a80bfe7bd09e.json b/site/.cache/twoslash.b17922976fb802f504c3a04dddc4cf6867e1d7a77aaa53617882a80bfe7bd09e.json index 444362f47c..83a8df99f2 100644 --- a/site/.cache/twoslash.b17922976fb802f504c3a04dddc4cf6867e1d7a77aaa53617882a80bfe7bd09e.json +++ b/site/.cache/twoslash.b17922976fb802f504c3a04dddc4cf6867e1d7a77aaa53617882a80bfe7bd09e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: true, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: true, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: true, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: true, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":100,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":111,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b204d2fc197648ed77cc85a750e5a8c099b01822537c0e4529930e7060f4a4cd.json b/site/.cache/twoslash.b204d2fc197648ed77cc85a750e5a8c099b01822537c0e4529930e7060f4a4cd.json index c6c3256383..509340129a 100644 --- a/site/.cache/twoslash.b204d2fc197648ed77cc85a750e5a8c099b01822537c0e4529930e7060f4a4cd.json +++ b/site/.cache/twoslash.b204d2fc197648ed77cc85a750e5a8c099b01822537c0e4529930e7060f4a4cd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7739Actions(parameters?: Erc7739ActionsParameters): (client: Client) => Erc7739Actions\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":95,\"length\":14,\"target\":\"erc7739Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":151,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7739Actions<...>) => Client<...>\",\"start\":229,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7739Actions(parameters?: Erc7739ActionsParameters | undefined): (client: Client) => Erc7739Actions<...>\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":236,\"length\":14,\"target\":\"erc7739Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":269,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":286,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":299,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":314,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\"↑ Local Account\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[394,419],[314,342]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":314,\"end\":342},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":394,\"end\":419}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7739Actions(parameters?: Erc7739ActionsParameters): (client: Client) => Erc7739Actions\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":95,\"length\":14,\"target\":\"erc7739Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":151,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7739Actions<...>) => Client<...>\",\"start\":229,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7739Actions(parameters?: Erc7739ActionsParameters | undefined): (client: Client) => Erc7739Actions<...>\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":236,\"length\":14,\"target\":\"erc7739Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":269,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":286,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":299,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":314,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\"↑ Local Account\",\"line\":13,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7739Actions(parameters?: Erc7739ActionsParameters): (client: Client) => Erc7739Actions\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":95,\"length\":14,\"target\":\"erc7739Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":151,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7739Actions<...>) => Client<...>\",\"start\":229,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7739Actions(parameters?: Erc7739ActionsParameters | undefined): (client: Client) => Erc7739Actions<...>\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":236,\"length\":14,\"target\":\"erc7739Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":269,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":286,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":299,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":314,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\"↑ Local Account\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[394,419],[314,342]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":314,\"end\":342},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":394,\"end\":419}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function erc7739Actions(parameters?: Erc7739ActionsParameters): (client: Client) => Erc7739Actions\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":95,\"length\":14,\"target\":\"erc7739Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":151,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":166,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":189,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":207,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":218,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7739Actions<...>) => Client<...>\",\"start\":229,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) erc7739Actions(parameters?: Erc7739ActionsParameters | undefined): (client: Client) => Erc7739Actions<...>\\nimport erc7739Actions\",\"docs\":\"A suite of Actions based on [Solady contracts](https://github.com/Vectorized/solady).\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nconst result = await walletClient.signMessage({...})\"]],\"start\":236,\"length\":14,\"target\":\"erc7739Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":269,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":286,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":299,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":314,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\"↑ Local Account\",\"line\":13,\"character\":0}]}}" diff --git a/site/.cache/twoslash.b22b67899b83c801b6aab9ec9e0b4d945dda3ca93e9ed7f657020cd329cfa50a.json b/site/.cache/twoslash.b22b67899b83c801b6aab9ec9e0b4d945dda3ca93e9ed7f657020cd329cfa50a.json index ff5520576b..07b621d2ab 100644 --- a/site/.cache/twoslash.b22b67899b83c801b6aab9ec9e0b4d945dda3ca93e9ed7f657020cd329cfa50a.json +++ b/site/.cache/twoslash.b22b67899b83c801b6aab9ec9e0b4d945dda3ca93e9ed7f657020cd329cfa50a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":65,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":65,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":65,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\";\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":65,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":136,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":199,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b23483e6a19f0c305c48493056206fe977e4936d270f453e33495e6413239b04.json b/site/.cache/twoslash.b23483e6a19f0c305c48493056206fe977e4936d270f453e33495e6413239b04.json index f6a351b640..e067e43673 100644 --- a/site/.cache/twoslash.b23483e6a19f0c305c48493056206fe977e4936d270f453e33495e6413239b04.json +++ b/site/.cache/twoslash.b23483e6a19f0c305c48493056206fe977e4936d270f453e33495e6413239b04.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":444,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":466,\"length\":9,\"target\":\"parseGwei\",\"line\":21,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":444,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":466,\"length\":9,\"target\":\"parseGwei\",\"line\":21,\"character\":24}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":444,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":466,\"length\":9,\"target\":\"parseGwei\",\"line\":21,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":411,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":425,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":444,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":466,\"length\":9,\"target\":\"parseGwei\",\"line\":21,\"character\":24}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b24bb9ccd1cc4b0496c8592bdb7be7f8698d460596382718ab9d10ab7b425fde.json b/site/.cache/twoslash.b24bb9ccd1cc4b0496c8592bdb7be7f8698d460596382718ab9d10ab7b425fde.json index 842a6af5c8..931cf3718d 100644 --- a/site/.cache/twoslash.b24bb9ccd1cc4b0496c8592bdb7be7f8698d460596382718ab9d10ab7b425fde.json +++ b/site/.cache/twoslash.b24bb9ccd1cc4b0496c8592bdb7be7f8698d460596382718ab9d10ab7b425fde.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":170,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":170,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":170,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":170,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifier: `0x${string}`\",\"start\":196,\"length\":8,\"target\":\"verifier\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b2ac2406b736dfd3f0ee8bf02342a71d940279a3aba62cb91c7e53dbf2d41874.json b/site/.cache/twoslash.b2ac2406b736dfd3f0ee8bf02342a71d940279a3aba62cb91c7e53dbf2d41874.json index c932ec8b63..95ee4db2f2 100644 --- a/site/.cache/twoslash.b2ac2406b736dfd3f0ee8bf02342a71d940279a3aba62cb91c7e53dbf2d41874.json +++ b/site/.cache/twoslash.b2ac2406b736dfd3f0ee8bf02342a71d940279a3aba62cb91c7e53dbf2d41874.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":145,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":176,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":145,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":176,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":145,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":176,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: 1000000000000000000n,\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":145,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":176,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b352a192f0414e4e9e45c4191207c14539556c8c89568ac30d533becdef9e556.json b/site/.cache/twoslash.b352a192f0414e4e9e45c4191207c14539556c8c89568ac30d533becdef9e556.json deleted file mode 100644 index 5e2d63287c..0000000000 --- a/site/.cache/twoslash.b352a192f0414e4e9e45c4191207c14539556c8c89568ac30d533becdef9e556.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { serializeErc6492Signature } from 'viem/experimental'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function serializeErc6492Signature(parameters: SerializeErc6492SignatureParameters): SerializeErc6492SignatureReturnType\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":9,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) serializeErc6492Signature<\\\"hex\\\">(parameters: SerializeErc6492SignatureParameters<\\\"hex\\\">): `0x${string}`\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":63,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The ERC-4337 Account Factory address to use for counterfactual verification.\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\",\"start\":170,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":192,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { serializeErc6492Signature } from 'viem/experimental'\\n\\nserializeErc6492Signature({ // [!code focus:99]\\n address: '0xcafebabecafebabecafebabecafebabecafebabe',\\n data: '0xdeadbeef',\\n signature: '0x41a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b',\\n})\\n// \\\"0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492\\\"\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function serializeErc6492Signature(parameters: SerializeErc6492SignatureParameters): SerializeErc6492SignatureReturnType\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":9,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) serializeErc6492Signature<\\\"hex\\\">(parameters: SerializeErc6492SignatureParameters<\\\"hex\\\">): `0x${string}`\\nimport serializeErc6492Signature\",\"tags\":[[\"description\",\"Serializes a ERC-6492 flavoured signature into hex format.\"],[\"param\",\"signature ERC-6492 signature in object format.\"],[\"returns\",\"ERC-6492 signature in hex format.\"],[\"example\",\"serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\\n// '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\"]],\"start\":63,\"length\":25,\"target\":\"serializeErc6492Signature\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The ERC-4337 Account Factory address to use for counterfactual verification.\",\"start\":113,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\",\"start\":170,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":192,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b38ecfccbe22d35df2a0ccfa065304493f7230be70177137f590ce3ef26a1968.json b/site/.cache/twoslash.b38ecfccbe22d35df2a0ccfa065304493f7230be70177137f590ce3ef26a1968.json index 6bbf2299ec..bff5cf939b 100644 --- a/site/.cache/twoslash.b38ecfccbe22d35df2a0ccfa065304493f7230be70177137f590ce3ef26a1968.json +++ b/site/.cache/twoslash.b38ecfccbe22d35df2a0ccfa065304493f7230be70177137f590ce3ef26a1968.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":159,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":159,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":159,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonce: 69 // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":159,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b4632c755fac5569538de7f555975f053d1588d19926479b44b22c8a9de9c336.json b/site/.cache/twoslash.b4632c755fac5569538de7f555975f053d1588d19926479b44b22c8a9de9c336.json index 08271ac79e..53fb44914f 100644 --- a/site/.cache/twoslash.b4632c755fac5569538de7f555975f053d1588d19926479b44b22c8a9de9c336.json +++ b/site/.cache/twoslash.b4632c755fac5569538de7f555975f053d1588d19926479b44b22c8a9de9c336.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst transactionReceipt = await publicClient.getTransactionReceipt({ hash: '...' })\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n transactionReceipt\\n})\\n// 15n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transactionReceipt: TransactionReceipt\",\"start\":47,\"length\":18,\"target\":\"transactionReceipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":74,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise\",\"docs\":\"Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)\",\"tags\":[[\"param\",\"args - {@link GetTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link GetTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.getTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":87,\"length\":21,\"target\":\"getTransactionReceipt\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":111,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":70},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":132,\"length\":13,\"target\":\"confirmations\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":154,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":167,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: TransactionReceipt\",\"docs\":\"The transaction receipt.\",\"start\":220,\"length\":18,\"target\":\"transactionReceipt\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,441]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst transactionReceipt = await publicClient.getTransactionReceipt({ hash: '...' })\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n transactionReceipt\\n})\\n// 15n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transactionReceipt: TransactionReceipt\",\"start\":47,\"length\":18,\"target\":\"transactionReceipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":74,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise\",\"docs\":\"Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)\",\"tags\":[[\"param\",\"args - {@link GetTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link GetTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.getTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":87,\"length\":21,\"target\":\"getTransactionReceipt\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":111,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":70},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":132,\"length\":13,\"target\":\"confirmations\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":154,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":167,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: TransactionReceipt\",\"docs\":\"The transaction receipt.\",\"start\":220,\"length\":18,\"target\":\"transactionReceipt\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst transactionReceipt = await publicClient.getTransactionReceipt({ hash: '...' })\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n transactionReceipt\\n})\\n// 15n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transactionReceipt: TransactionReceipt\",\"start\":47,\"length\":18,\"target\":\"transactionReceipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":74,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise\",\"docs\":\"Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)\",\"tags\":[[\"param\",\"args - {@link GetTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link GetTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.getTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":87,\"length\":21,\"target\":\"getTransactionReceipt\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":111,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":70},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":132,\"length\":13,\"target\":\"confirmations\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":154,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":167,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: TransactionReceipt\",\"docs\":\"The transaction receipt.\",\"start\":220,\"length\":18,\"target\":\"transactionReceipt\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,441]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst transactionReceipt = await publicClient.getTransactionReceipt({ hash: '...' })\\nconst confirmations = await publicClient.getTransactionConfirmations({ // [!code focus:99]\\n transactionReceipt\\n})\\n// 15n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transactionReceipt: TransactionReceipt\",\"start\":47,\"length\":18,\"target\":\"transactionReceipt\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":74,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise\",\"docs\":\"Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)\",\"tags\":[[\"param\",\"args - {@link GetTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link GetTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.getTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":87,\"length\":21,\"target\":\"getTransactionReceipt\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":111,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":70},{\"type\":\"hover\",\"text\":\"const confirmations: bigint\",\"start\":132,\"length\":13,\"target\":\"confirmations\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":154,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) getTransactionConfirmations: (args: GetTransactionConfirmationsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\\n\\n- Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\\n- JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\",\"tags\":[[\"param\",\"args - {@link GetTransactionConfirmationsParameters}\"],[\"returns\",\"The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst confirmations = await client.getTransactionConfirmations({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":167,\"length\":27,\"target\":\"getTransactionConfirmations\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) transactionReceipt: TransactionReceipt\",\"docs\":\"The transaction receipt.\",\"start\":220,\"length\":18,\"target\":\"transactionReceipt\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b4afb11bf37166b2c7b102bbad595fecf8686ddcca6e433d3903268123c354b6.json b/site/.cache/twoslash.b4afb11bf37166b2c7b102bbad595fecf8686ddcca6e433d3903268123c354b6.json index 50e044706f..ae79d93374 100644 --- a/site/.cache/twoslash.b4afb11bf37166b2c7b102bbad595fecf8686ddcca6e433d3903268123c354b6.json +++ b/site/.cache/twoslash.b4afb11bf37166b2c7b102bbad595fecf8686ddcca6e433d3903268123c354b6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n paymaster: '0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA',\\n paymasterInput: '0x123abc...'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\";\\n readonly paymasterInput: \\\"0x123abc...\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise (+1 overload)\",\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\"\",\"start\":192,\"length\":9,\"target\":\"paymaster\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterInput: \\\"0x123abc...\\\"\",\"start\":251,\"length\":14,\"target\":\"paymasterInput\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,303]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions())\\n// ---cut---\\nconst hash = await walletClient.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n paymaster: '0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA',\\n paymasterInput: '0x123abc...'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\";\\n readonly paymasterInput: \\\"0x123abc...\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise (+1 overload)\",\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\"\",\"start\":192,\"length\":9,\"target\":\"paymaster\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterInput: \\\"0x123abc...\\\"\",\"start\":251,\"length\":14,\"target\":\"paymasterInput\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n paymaster: '0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA',\\n paymasterInput: '0x123abc...'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\";\\n readonly paymasterInput: \\\"0x123abc...\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise (+1 overload)\",\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\"\",\"start\":192,\"length\":9,\"target\":\"paymaster\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterInput: \\\"0x123abc...\\\"\",\"start\":251,\"length\":14,\"target\":\"paymasterInput\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,303]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions())\\n// ---cut---\\nconst hash = await walletClient.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n paymaster: '0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA',\\n paymasterInput: '0x123abc...'\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\";\\n readonly paymasterInput: \\\"0x123abc...\\\";\\n}, undefined>(args: SendTransactionParameters<...>) => Promise (+1 overload)\",\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymaster: \\\"0xFD9aE5ebB0F6656f4b77a0E99dCbc5138d54b0BA\\\"\",\"start\":192,\"length\":9,\"target\":\"paymaster\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterInput: \\\"0x123abc...\\\"\",\"start\":251,\"length\":14,\"target\":\"paymasterInput\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b4ee8ec2a8f182c11914588f45fa7a1bd8d6725296404c44346f8f520f8f4bef.json b/site/.cache/twoslash.b4ee8ec2a8f182c11914588f45fa7a1bd8d6725296404c44346f8f520f8f4bef.json index a5f60cc762..faa00f6eb5 100644 --- a/site/.cache/twoslash.b4ee8ec2a8f182c11914588f45fa7a1bd8d6725296404c44346f8f520f8f4bef.json +++ b/site/.cache/twoslash.b4ee8ec2a8f182c11914588f45fa7a1bd8d6725296404c44346f8f520f8f4bef.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createWalletClient({\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: custom(window.ethereum!)\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ... 6 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":254,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":265,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":275,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":9,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":314,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":325,\"length\":6,\"target\":\"custom\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":332,\"length\":6,\"target\":\"window\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":339,\"length\":8,\"target\":\"ethereum\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"const result: string | boolean | void | `0x${string}`[] | NetworkSync | WalletGetCallsStatusReturnType<`0x${string}`, `0x${string}`> | {\\n [x: `0x${string}`]: WalletCapabilities;\\n} | WalletPermission[] | {\\n ...;\\n} | null\",\"start\":360,\"length\":6,\"target\":\"result\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":375,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_accounts\\\";\\n params?: undefined | undefined;\\n} | ... 22 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":382,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":411,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"completion\",\"start\":426,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":517,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":14,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":447,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[542,562],[0,97]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":71,\"end\":84}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createWalletClient({\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: custom(window.ethereum!)\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[523],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":426,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":517,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":14,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ... 6 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":254,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":265,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":275,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":9,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":314,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":325,\"length\":6,\"target\":\"custom\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":332,\"length\":6,\"target\":\"window\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":339,\"length\":8,\"target\":\"ethereum\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"const result: string | boolean | void | `0x${string}`[] | NetworkSync | WalletGetCallsStatusReturnType<`0x${string}`, `0x${string}`> | {\\n [x: `0x${string}`]: WalletCapabilities;\\n} | WalletPermission[] | {\\n ...;\\n} | null\",\"start\":360,\"length\":6,\"target\":\"result\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":375,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_accounts\\\";\\n params?: undefined | undefined;\\n} | ... 22 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":382,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":411,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":447,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createWalletClient({\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: custom(window.ethereum!)\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ... 6 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":254,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":265,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":275,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":9,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":314,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":325,\"length\":6,\"target\":\"custom\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":332,\"length\":6,\"target\":\"window\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":339,\"length\":8,\"target\":\"ethereum\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"const result: string | boolean | void | `0x${string}`[] | NetworkSync | WalletGetCallsStatusReturnType | ... 4 more ... | null\",\"start\":360,\"length\":6,\"target\":\"result\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":375,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_accounts\\\";\\n params?: undefined | undefined;\\n} | ... 22 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":382,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":411,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"completion\",\"start\":426,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":517,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":14,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":447,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[542,562],[0,97]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":71,\"end\":84}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createWalletClient({\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: custom(window.ethereum!)\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[523],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":426,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":517,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":14,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ... 6 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":254,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":265,\"length\":9,\"target\":\"rpcSchema\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":275,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":9,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":314,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":325,\"length\":6,\"target\":\"custom\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":332,\"length\":6,\"target\":\"window\",\"line\":10,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":339,\"length\":8,\"target\":\"ethereum\",\"line\":10,\"character\":27},{\"type\":\"hover\",\"text\":\"const result: string | boolean | void | `0x${string}`[] | NetworkSync | WalletGetCallsStatusReturnType | ... 4 more ... | null\",\"start\":360,\"length\":6,\"target\":\"result\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":375,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_accounts\\\";\\n params?: undefined | undefined;\\n} | ... 22 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":382,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":411,\"length\":6,\"target\":\"method\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":447,\"length\":6,\"target\":\"params\",\"line\":15,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b65fd5ea48d8d89648ddfcd73bce80c7db54a77b3a85bb2c7bf034570b1e518b.json b/site/.cache/twoslash.b65fd5ea48d8d89648ddfcd73bce80c7db54a77b3a85bb2c7bf034570b1e518b.json deleted file mode 100644 index 4c6d98376b..0000000000 --- a/site/.cache/twoslash.b65fd5ea48d8d89648ddfcd73bce80c7db54a77b3a85bb2c7bf034570b1e518b.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' // [!code focus]\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":160,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":175,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":198,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":205,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":214,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":225,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":236,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":243,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' // [!code focus]\\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":160,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":175,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":198,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":205,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":214,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":225,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":236,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":243,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b684d66760862592e029823eb6e9617d222382bccfe2fdedb912f8e0ef82ffd5.json b/site/.cache/twoslash.b684d66760862592e029823eb6e9617d222382bccfe2fdedb912f8e0ef82ffd5.json index ec059aff8f..fff2a66a77 100644 --- a/site/.cache/twoslash.b684d66760862592e029823eb6e9617d222382bccfe2fdedb912f8e0ef82ffd5.json +++ b/site/.cache/twoslash.b684d66760862592e029823eb6e9617d222382bccfe2fdedb912f8e0ef82ffd5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function totalSupply() returns (uint256)',\\n 'function ownerOf(uint256) returns (address)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'totalSupply',\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [69420n],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [13371337n],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":41,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":73,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]>(signatures: [\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":79,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":198,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":216,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":223,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify<...>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":241,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":262,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":318,\"length\":3,\"target\":\"abi\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":329,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":377,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":433,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":444,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":475,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":510,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":566,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":577,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":608,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":643,\"length\":7,\"target\":\"console\",\"line\":30,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":651,\"length\":3,\"target\":\"log\",\"line\":30,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":655,\"length\":7,\"target\":\"results\",\"line\":30,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":664,\"length\":0,\"text\":\"[\",\"line\":31,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":665,\"length\":0,\"text\":\" {\",\"line\":32,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":666,\"length\":0,\"text\":\" result: 424122n,\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":667,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":668,\"length\":0,\"text\":\" },\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":669,\"length\":0,\"text\":\" {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":670,\"length\":0,\"text\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":671,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":672,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":673,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":674,\"length\":0,\"text\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":675,\"length\":0,\"text\":\" status: \\\"failure\\\",\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":676,\"length\":0,\"text\":\" },\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":677,\"length\":0,\"text\":\"]\",\"line\":45,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1859,1870],[1844,1858],[1811,1843],[1736,1810],[1722,1735],[1707,1721],[1674,1706],[1606,1673],[1592,1605],[1577,1591],[1544,1576],[1513,1543],[1499,1512],[1487,1498],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1487,\"end\":1498},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1499,\"end\":1512},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: 424122n,\",\"start\":1513,\"end\":1543},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1544,\"end\":1576},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1577,\"end\":1591},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1592,\"end\":1605},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"start\":1606,\"end\":1673},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1674,\"end\":1706},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1707,\"end\":1721},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1722,\"end\":1735},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"start\":1736,\"end\":1810},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"failure\\\",\",\"start\":1811,\"end\":1843},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1844,\"end\":1858},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":1859,\"end\":1870}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function totalSupply() returns (uint256)',\\n 'function ownerOf(uint256) returns (address)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'totalSupply',\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [69420n],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [13371337n],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: result: 424122n,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: error: [ContractFunctionExecutionError: token has no owner],\\n\\n// @log: status: \\\"failure\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":41,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":73,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]>(signatures: [\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":79,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":198,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":216,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":223,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify<...>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":241,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":262,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":318,\"length\":3,\"target\":\"abi\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":329,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":377,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":433,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":444,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":475,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":510,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":566,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":577,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":608,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":643,\"length\":7,\"target\":\"console\",\"line\":30,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":651,\"length\":3,\"target\":\"log\",\"line\":30,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":655,\"length\":7,\"target\":\"results\",\"line\":30,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":664,\"length\":0,\"text\":\"[\",\"line\":31,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":665,\"length\":0,\"text\":\" {\",\"line\":32,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":666,\"length\":0,\"text\":\" result: 424122n,\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":667,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":668,\"length\":0,\"text\":\" },\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":669,\"length\":0,\"text\":\" {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":670,\"length\":0,\"text\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":671,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":672,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":673,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":674,\"length\":0,\"text\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":675,\"length\":0,\"text\":\" status: \\\"failure\\\",\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":676,\"length\":0,\"text\":\" },\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":677,\"length\":0,\"text\":\"]\",\"line\":45,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function totalSupply() returns (uint256)',\\n 'function ownerOf(uint256) returns (address)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'totalSupply',\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [69420n],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [13371337n],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":41,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":73,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]>(signatures: [\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":79,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":198,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":216,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":223,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify<...>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":241,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":262,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":318,\"length\":3,\"target\":\"abi\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":329,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":377,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":433,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":444,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":475,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":510,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":566,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":577,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":608,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":643,\"length\":7,\"target\":\"console\",\"line\":30,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":651,\"length\":3,\"target\":\"log\",\"line\":30,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":655,\"length\":7,\"target\":\"results\",\"line\":30,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":664,\"length\":0,\"text\":\"[\",\"line\":31,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":665,\"length\":0,\"text\":\" {\",\"line\":32,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":666,\"length\":0,\"text\":\" result: 424122n,\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":667,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":668,\"length\":0,\"text\":\" },\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":669,\"length\":0,\"text\":\" {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":670,\"length\":0,\"text\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":671,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":672,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":673,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":674,\"length\":0,\"text\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":675,\"length\":0,\"text\":\" status: \\\"failure\\\",\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":676,\"length\":0,\"text\":\" },\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":677,\"length\":0,\"text\":\"]\",\"line\":45,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1859,1870],[1844,1858],[1811,1843],[1736,1810],[1722,1735],[1707,1721],[1674,1706],[1606,1673],[1592,1605],[1577,1591],[1544,1576],[1513,1543],[1499,1512],[1487,1498],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1487,\"end\":1498},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1499,\"end\":1512},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: 424122n,\",\"start\":1513,\"end\":1543},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1544,\"end\":1576},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1577,\"end\":1591},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1592,\"end\":1605},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"start\":1606,\"end\":1673},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1674,\"end\":1706},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1707,\"end\":1721},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1722,\"end\":1735},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"start\":1736,\"end\":1810},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"failure\\\",\",\"start\":1811,\"end\":1843},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1844,\"end\":1858},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":1859,\"end\":1870}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { client } from './config'\\n\\nconst abi = parseAbi([\\n 'function totalSupply() returns (uint256)',\\n 'function ownerOf(uint256) returns (address)',\\n])\\n \\nconst { results } = await client.simulateCalls({\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'totalSupply',\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [69420n],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'ownerOf',\\n args: [13371337n],\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: result: 424122n,\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: error: [ContractFunctionExecutionError: token has no owner],\\n\\n// @log: status: \\\"failure\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":41,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":73,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]>(signatures: [\\\"function totalSupply() returns (uint256)\\\", \\\"function ownerOf(uint256) returns (address)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":79,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":198,\"length\":7,\"target\":\"results\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":216,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":223,\"length\":13,\"target\":\"simulateCalls\",\"line\":8,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify<...>, Prettify<...>]\",\"docs\":\"Calls to simulate.\",\"start\":241,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":262,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":318,\"length\":3,\"target\":\"abi\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":329,\"length\":12,\"target\":\"functionName\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":377,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":433,\"length\":3,\"target\":\"abi\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":444,\"length\":12,\"target\":\"functionName\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":475,\"length\":4,\"target\":\"args\",\"line\":19,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":510,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"totalSupply\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"uint256\\\";\\n }];\\n}, {\\n readonly name: \\\"ownerOf\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [...];\\n}]\",\"start\":566,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"totalSupply\\\" | \\\"ownerOf\\\"\",\"start\":577,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: readonly [bigint]\",\"start\":608,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":643,\"length\":7,\"target\":\"console\",\"line\":30,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":651,\"length\":3,\"target\":\"log\",\"line\":30,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":655,\"length\":7,\"target\":\"results\",\"line\":30,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":664,\"length\":0,\"text\":\"[\",\"line\":31,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":665,\"length\":0,\"text\":\" {\",\"line\":32,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":666,\"length\":0,\"text\":\" result: 424122n,\",\"line\":33,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":667,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":34,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":668,\"length\":0,\"text\":\" },\",\"line\":35,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":669,\"length\":0,\"text\":\" {\",\"line\":36,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":670,\"length\":0,\"text\":\" result: \\\"0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b\\\",\",\"line\":37,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":671,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":38,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":672,\"length\":0,\"text\":\" },\",\"line\":39,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":673,\"length\":0,\"text\":\" {\",\"line\":40,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":674,\"length\":0,\"text\":\" error: [ContractFunctionExecutionError: token has no owner],\",\"line\":41,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":675,\"length\":0,\"text\":\" status: \\\"failure\\\",\",\"line\":42,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":676,\"length\":0,\"text\":\" },\",\"line\":43,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":677,\"length\":0,\"text\":\"]\",\"line\":45,\"character\":0}]}}" diff --git a/site/.cache/twoslash.b6b06ed1bd1db7e4e7d0c1947417569f5b6a91e81a46086cd0e865e2e6b62e94.json b/site/.cache/twoslash.b6b06ed1bd1db7e4e7d0c1947417569f5b6a91e81a46086cd0e865e2e6b62e94.json new file mode 100644 index 0000000000..c1b56e5375 --- /dev/null +++ b/site/.cache/twoslash.b6b06ed1bd1db7e4e7d0c1947417569f5b6a91e81a46086cd0e865e2e6b62e94.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":50,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":76,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":110,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":187,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":194,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":50,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":76,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":110,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":131,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":187,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":194,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":255,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b6ce8c848ba57d133a2a9dd5b5346b47d6da38d9154912c7077245bcebae926f.json b/site/.cache/twoslash.b6ce8c848ba57d133a2a9dd5b5346b47d6da38d9154912c7077245bcebae926f.json deleted file mode 100644 index 1b6cec9fa1..0000000000 --- a/site/.cache/twoslash.b6ce8c848ba57d133a2a9dd5b5346b47d6da38d9154912c7077245bcebae926f.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,529]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental'\\nimport { walletClient } from './client'\\n // ---cut---\\nconst signature = await walletClient.signAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n\\nconst address = await recoverAuthorizationAddress({\\n authorization: {\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":59,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID to authorize.\",\"start\":124,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":138,\"length\":5,\"target\":\"nonce\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":158,\"length\":7,\"target\":\"address\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}>(parameters: RecoverAuthorizationAddressParameters<{\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}, `0x${string}` | ... 1 more ... | OneOf<...>>): Promise\\nimport recoverAuthorizationAddress\",\"start\":174,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | {\\n readonly contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\";\\n readonly chainId: 1;\\n readonly nonce: 0;\\n}\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":227,\"length\":15,\"target\":\"contractAddress\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: 1\",\"start\":294,\"length\":7,\"target\":\"chainId\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: 0\",\"start\":310,\"length\":5,\"target\":\"nonce\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: `0x${string}` | ByteArray | OneOf\",\"docs\":\"Signature of the Authorization. Not required if the `authorization` is signed.\",\"start\":327,\"length\":9,\"target\":\"signature\",\"line\":12,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b6f8e967ed0b0470612a5b345ab1dd9fde3d8cf0e5a3c06e8cfb657fd6451298.json b/site/.cache/twoslash.b6f8e967ed0b0470612a5b345ab1dd9fde3d8cf0e5a3c06e8cfb657fd6451298.json index baba35d112..1ecd4a9159 100644 --- a/site/.cache/twoslash.b6f8e967ed0b0470612a5b345ab1dd9fde3d8cf0e5a3c06e8cfb657fd6451298.json +++ b/site/.cache/twoslash.b6f8e967ed0b0470612a5b345ab1dd9fde3d8cf0e5a3c06e8cfb657fd6451298.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":112,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":133,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":189,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":196,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":231,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":257,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":112,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":133,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":189,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":196,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":231,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":257,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":112,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":133,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":189,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":196,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":231,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":257,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":112,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":133,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":189,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":196,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":231,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":257,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b8269e24c7ad15c5980e14c20ed8386e9ec0bae7b3b5963bf21ad84414a5f022.json b/site/.cache/twoslash.b8269e24c7ad15c5980e14c20ed8386e9ec0bae7b3b5963bf21ad84414a5f022.json index bd76c9a97a..1e920106b5 100644 --- a/site/.cache/twoslash.b8269e24c7ad15c5980e14c20ed8386e9ec0bae7b3b5963bf21ad84414a5f022.json +++ b/site/.cache/twoslash.b8269e24c7ad15c5980e14c20ed8386e9ec0bae7b3b5963bf21ad84414a5f022.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":62,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":117,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":62,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":117,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":62,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":117,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n pollingInterval: 10_000, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Frequency (in ms) for polling enabled actions & events.\",\"tags\":[[\"default\",\"4_000\"]],\"start\":62,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":117,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b842989968fe67644cb861445cb8f66025c155d7f158d150c688082649e10c69.json b/site/.cache/twoslash.b842989968fe67644cb861445cb8f66025c155d7f158d150c688082649e10c69.json index 590d52ae5e..2633da20d9 100644 --- a/site/.cache/twoslash.b842989968fe67644cb861445cb8f66025c155d7f158d150c688082649e10c69.json +++ b/site/.cache/twoslash.b842989968fe67644cb861445cb8f66025c155d7f158d150c688082649e10c69.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n userOperation: { // [!code focus]\\n async estimateFeesPerGas({ account, bundlerClient, userOperation }) { // [!code focus]\\n // Estimate fees per gas for the User Operation. // [!code focus]\\n return { // [!code focus]\\n maxFeePerGas: /* ... */, // [!code focus]\\n maxPriorityFeePerGas: /* ... */, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) userOperation?: {\\n estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n }) => Promise>) | undefined;\\n} | undefined\",\"docs\":\"User Operation configuration.\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n}) => Promise>) | undefined\",\"docs\":\"Prepares fee properties for the User Operation request.\",\"start\":165,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | undefined\",\"start\":186,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(parameter) bundlerClient: Client\",\"start\":195,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: UserOperationRequest\",\"start\":210,\"length\":13,\"target\":\"userOperation\",\"line\":4,\"character\":55},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":358,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":408,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":8,\"character\":8}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n userOperation: { // [!code focus]\\n async estimateFeesPerGas({ account, bundlerClient, userOperation }) { // [!code focus]\\n // Estimate fees per gas for the User Operation. // [!code focus]\\n return { // [!code focus]\\n maxFeePerGas: /* ... */, // [!code focus]\\n maxPriorityFeePerGas: /* ... */, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) userOperation?: {\\n estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n }) => Promise>) | undefined;\\n} | undefined\",\"docs\":\"User Operation configuration.\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n}) => Promise>) | undefined\",\"docs\":\"Prepares fee properties for the User Operation request.\",\"start\":165,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | undefined\",\"start\":186,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(parameter) bundlerClient: Client\",\"start\":195,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: UserOperationRequest\",\"start\":210,\"length\":13,\"target\":\"userOperation\",\"line\":4,\"character\":55},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":358,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":408,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":8,\"character\":8}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n userOperation: { // [!code focus]\\n async estimateFeesPerGas({ account, bundlerClient, userOperation }) { // [!code focus]\\n // Estimate fees per gas for the User Operation. // [!code focus]\\n return { // [!code focus]\\n maxFeePerGas: /* ... */, // [!code focus]\\n maxPriorityFeePerGas: /* ... */, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) userOperation?: {\\n estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n }) => Promise>) | undefined;\\n} | undefined\",\"docs\":\"User Operation configuration.\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n}) => Promise>) | undefined\",\"docs\":\"Prepares fee properties for the User Operation request.\",\"start\":165,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | undefined\",\"start\":186,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(parameter) bundlerClient: Client\",\"start\":195,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: UserOperationRequest\",\"start\":210,\"length\":13,\"target\":\"userOperation\",\"line\":4,\"character\":55},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":358,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":408,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":8,\"character\":8}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n userOperation: { // [!code focus]\\n async estimateFeesPerGas({ account, bundlerClient, userOperation }) { // [!code focus]\\n // Estimate fees per gas for the User Operation. // [!code focus]\\n return { // [!code focus]\\n maxFeePerGas: /* ... */, // [!code focus]\\n maxPriorityFeePerGas: /* ... */, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) userOperation?: {\\n estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n }) => Promise>) | undefined;\\n} | undefined\",\"docs\":\"User Operation configuration.\",\"start\":121,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) estimateFeesPerGas?: ((parameters: {\\n account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n }) | undefined;\\n bundlerClient: Client;\\n userOperation: UserOperationRequest;\\n}) => Promise>) | undefined\",\"docs\":\"Prepares fee properties for the User Operation request.\",\"start\":165,\"length\":18,\"target\":\"estimateFeesPerGas\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) account: (object & Assign_, {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}> & {\\n address: Address;\\n getNonce: NonNullable;\\n isDeployed: () => Promise;\\n type: \\\"smart\\\";\\n}) | undefined\",\"start\":186,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(parameter) bundlerClient: Client\",\"start\":195,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: UserOperationRequest\",\"start\":210,\"length\":13,\"target\":\"userOperation\",\"line\":4,\"character\":55},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"docs\":\"Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas).\",\"start\":358,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: bigint\",\"docs\":\"Max priority fee per gas (in wei).\",\"start\":408,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":8,\"character\":8}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b97b3ccf45842abb2fd8c88b9a80155a03a876702651fa3396aa004c0b634e2d.json b/site/.cache/twoslash.b97b3ccf45842abb2fd8c88b9a80155a03a876702651fa3396aa004c0b634e2d.json index d43a9f7113..a95df979a7 100644 --- a/site/.cache/twoslash.b97b3ccf45842abb2fd8c88b9a80155a03a876702651fa3396aa004c0b634e2d.json +++ b/site/.cache/twoslash.b97b3ccf45842abb2fd8c88b9a80155a03a876702651fa3396aa004c0b634e2d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":289,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[236,261],[139,167]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":139,\"end\":167},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":236,\"end\":261}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":289,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":289,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[236,261],[139,167]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":139,\"end\":167},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":236,\"end\":261}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":152,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":289,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":139,\"length\":0,\"text\":\"↓ JSON-RPC Account\",\"line\":4,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"↓ Local Account\",\"line\":6,\"character\":0}]}}" diff --git a/site/.cache/twoslash.b991d5b2f1cf0d69e5a6d34c485b23ccebf844f32393998d947305e6aae65919.json b/site/.cache/twoslash.b991d5b2f1cf0d69e5a6d34c485b23ccebf844f32393998d947305e6aae65919.json index 55ae7f4ff6..6d1cb0f1d6 100644 --- a/site/.cache/twoslash.b991d5b2f1cf0d69e5a6d34c485b23ccebf844f32393998d947305e6aae65919.json +++ b/site/.cache/twoslash.b991d5b2f1cf0d69e5a6d34c485b23ccebf844f32393998d947305e6aae65919.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":64,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":73,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":82,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":90,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":94,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":125,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":141,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":151,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":159,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":163,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":64,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":73,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":82,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":90,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":94,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":125,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":141,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":151,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":159,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":163,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchPendingTransactions(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":64,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":73,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":82,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":90,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":94,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":125,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":141,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":151,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":159,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":163,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,204]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":191,\"end\":204}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\n// @noErrors\\nconst unwatch = publicClient.watchPendingTransactions(\\n { \\n onError: error => console.log(error), // [!code focus:1]\\n onTransactions: hashes => console.log(hashes),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":29,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onError?: ((error: Error) => void) | undefined\",\"docs\":\"The callback to call when an error occurred when trying to get for a new block.\",\"start\":64,\"length\":7,\"target\":\"onError\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":73,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":82,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":90,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) error: Error\",\"start\":94,\"length\":5,\"target\":\"error\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":125,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":141,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":151,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":159,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":163,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.b9cabfdf89d167a0b7c74192226b7dfe834040d8d064e3d089bfe694dcfbc905.json b/site/.cache/twoslash.b9cabfdf89d167a0b7c74192226b7dfe834040d8d064e3d089bfe694dcfbc905.json index 46565c2a5b..63d3dd5a1b 100644 --- a/site/.cache/twoslash.b9cabfdf89d167a0b7c74192226b7dfe834040d8d064e3d089bfe694dcfbc905.json +++ b/site/.cache/twoslash.b9cabfdf89d167a0b7c74192226b7dfe834040d8d064e3d089bfe694dcfbc905.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 1, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":262,\"length\":7,\"target\":\"chainId\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ba55da067529872cc2f9d8501f94087a38d5f0325d1959f5ff4bb999d5f15651.json b/site/.cache/twoslash.ba55da067529872cc2f9d8501f94087a38d5f0325d1959f5ff4bb999d5f15651.json deleted file mode 100644 index 5dbabfa454..0000000000 --- a/site/.cache/twoslash.ba55da067529872cc2f9d8501f94087a38d5f0325d1959f5ff4bb999d5f15651.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":93,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":115,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":128,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":167,\"length\":15,\"target\":\"contractAddress\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":93,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":115,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":128,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":167,\"length\":15,\"target\":\"contractAddress\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ba6ea242f1b7e13ec45df602df2d0abe2cdf37145862c6b6e00b1324644dcae0.json b/site/.cache/twoslash.ba6ea242f1b7e13ec45df602df2d0abe2cdf37145862c6b6e00b1324644dcae0.json index 5b9341b599..f0313ac5db 100644 --- a/site/.cache/twoslash.ba6ea242f1b7e13ec45df602df2d0abe2cdf37145862c6b6e00b1324644dcae0.json +++ b/site/.cache/twoslash.ba6ea242f1b7e13ec45df602df2d0abe2cdf37145862c6b6e00b1324644dcae0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...') // [!code focus]\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":92,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":152,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":174,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":187,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":226,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":235,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...') // [!code focus]\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":92,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":152,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":174,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":187,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":226,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":235,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...') // [!code focus]\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":92,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":152,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":174,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":187,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":226,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":235,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst eoa = privateKeyToAccount('0x...') // [!code focus]\\n \\nconst authorization = await walletClient.signAuthorization({ // [!code focus]\\n account: eoa, // [!code focus]\\n contractAddress, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":49,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":92,\"length\":3,\"target\":\"eoa\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":98,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":152,\"length\":13,\"target\":\"authorization\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":174,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":187,\"length\":17,\"target\":\"signAuthorization\",\"line\":5,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":226,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":235,\"length\":3,\"target\":\"eoa\",\"line\":6,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":259,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ba6f28553acf026cfb974501fd7b22a3c2c8baddaaece4eb74cedba4aee63f1c.json b/site/.cache/twoslash.ba6f28553acf026cfb974501fd7b22a3c2c8baddaaece4eb74cedba4aee63f1c.json index ac6b5edb15..6824c919b5 100644 --- a/site/.cache/twoslash.ba6f28553acf026cfb974501fd7b22a3c2c8baddaaece4eb74cedba4aee63f1c.json +++ b/site/.cache/twoslash.ba6f28553acf026cfb974501fd7b22a3c2c8baddaaece4eb74cedba4aee63f1c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createTestClient({\\n chain: foundry,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\", Transport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":16,\"target\":\"createTestClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":259,\"length\":7,\"target\":\"foundry\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":270,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":281,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":291,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: Transport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":358,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":373,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"anvil_addCompilationResult\\\" | \\\"hardhat_addCompilationResult\\\" | \\\"ganache_addCompilationResult\\\";\\n params: any[];\\n} | ... 38 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":380,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":409,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":424,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":528,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":445,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[553,573],[0,110]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":84,\"end\":97}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createTestClient({\\n chain: foundry,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[534],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":424,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":528,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\", Transport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":16,\"target\":\"createTestClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":259,\"length\":7,\"target\":\"foundry\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":270,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":281,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":291,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: Transport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":358,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":373,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"anvil_addCompilationResult\\\" | \\\"hardhat_addCompilationResult\\\" | \\\"ganache_addCompilationResult\\\";\\n params: any[];\\n} | ... 38 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":380,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":409,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":445,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createTestClient({\\n chain: foundry,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\", Transport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":16,\"target\":\"createTestClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":259,\"length\":7,\"target\":\"foundry\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":270,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":281,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":291,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: Transport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":358,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":373,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"anvil_addCompilationResult\\\" | \\\"hardhat_addCompilationResult\\\" | \\\"ganache_addCompilationResult\\\";\\n params: any[];\\n} | ... 38 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":380,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":409,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"completion\",\"start\":424,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":528,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":445,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[553,573],[0,110]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":84,\"end\":97}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// @noErrors\\n// ---cut---\\nimport { rpcSchema } from 'viem'\\n\\ntype CustomRpcSchema = [{ // [!code focus]\\n Method: 'eth_wagmi', // [!code focus]\\n Parameters: [string] // [!code focus]\\n ReturnType: string // [!code focus]\\n}] // [!code focus]\\n\\nconst client = createTestClient({\\n chain: foundry,\\n rpcSchema: rpcSchema(), // [!code focus]\\n transport: http()\\n})\\n\\nconst result = await client.request({ // [!code focus]\\n method: 'eth_wa // [!code focus] \\n// ^|\\n params: ['hello'], // [!code focus]\\n}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[534],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":424,\"length\":0,\"completions\":[{\"name\":\"eth_wagmi\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":528,\"length\":5},\"commitCharacters\":[]}],\"completionsPrefix\":\"eth_wa\",\"line\":15,\"character\":17}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function rpcSchema(): rpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":9,\"length\":9,\"target\":\"rpcSchema\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":39,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":2,\"character\":5},{\"type\":\"hover\",\"text\":\"(property) Method: \\\"eth_wagmi\\\"\",\"start\":79,\"length\":6,\"target\":\"Method\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Parameters: [string]\",\"start\":119,\"length\":10,\"target\":\"Parameters\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ReturnType: string\",\"start\":159,\"length\":10,\"target\":\"ReturnType\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\", Transport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, CustomRpcSchema>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":16,\"target\":\"createTestClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":259,\"length\":7,\"target\":\"foundry\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) rpcSchema?: CustomRpcSchema | undefined\",\"docs\":\"Typed JSON-RPC schema for the client.\",\"start\":270,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) rpcSchema(): CustomRpcSchema\\nimport rpcSchema\",\"docs\":\"Defines a typed JSON-RPC schema for the client.\\nNote: This is a runtime noop function.\",\"start\":281,\"length\":9,\"target\":\"rpcSchema\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"type CustomRpcSchema = [{\\n Method: \\\"eth_wagmi\\\";\\n Parameters: [string];\\n ReturnType: string;\\n}]\",\"start\":291,\"length\":15,\"target\":\"CustomRpcSchema\",\"line\":10,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) transport: Transport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":358,\"length\":6,\"target\":\"result\",\"line\":14,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":373,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"anvil_addCompilationResult\\\" | \\\"hardhat_addCompilationResult\\\" | \\\"ganache_addCompilationResult\\\";\\n params: any[];\\n} | ... 38 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":380,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_wa // [!code focus] \\\"\",\"start\":409,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) params: [\\\"hello\\\"]\",\"start\":445,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bb4caac0d85f9af587f8afeb0c2691498b894c273839d0bb91d626c6b3794dd7.json b/site/.cache/twoslash.bb4caac0d85f9af587f8afeb0c2691498b894c273839d0bb91d626c6b3794dd7.json index 57d0c800f3..8a6ee8c198 100644 --- a/site/.cache/twoslash.bb4caac0d85f9af587f8afeb0c2691498b894c273839d0bb91d626c6b3794dd7.json +++ b/site/.cache/twoslash.bb4caac0d85f9af587f8afeb0c2691498b894c273839d0bb91d626c6b3794dd7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":107,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":159,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":197,\"length\":9,\"target\":\"signature\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":215,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":228,\"length\":15,\"target\":\"signTransaction\",\"line\":7,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":244,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":451,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":464,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":477,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":496,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":51}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":107,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":159,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":197,\"length\":9,\"target\":\"signature\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":215,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":228,\"length\":15,\"target\":\"signTransaction\",\"line\":7,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":244,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":451,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":464,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":477,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":496,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":51}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":107,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":159,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":197,\"length\":9,\"target\":\"signature\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":215,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":228,\"length\":15,\"target\":\"signTransaction\",\"line\":7,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":244,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":451,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":464,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":477,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":496,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":51}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,701]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":556,\"end\":584},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":636,\"end\":661}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":238,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":662,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst request = await walletClient.prepareTransactionRequest({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\\n\\nconst signature = await walletClient.signTransaction(request) // [!code focus:2]\\n// 0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33\\n\\nconst hash = await walletClient.sendRawTransaction(signature)\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":48,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined, undefined>(args: PrepareTransactionRequestParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined, {\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":77,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":107,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":159,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":197,\"length\":9,\"target\":\"signature\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":215,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n} | ... 3 more ... | {\\n ...;\\n}>(args: never) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":228,\"length\":15,\"target\":\"signTransaction\",\"line\":7,\"character\":37},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":244,\"length\":7,\"target\":\"request\",\"line\":7,\"character\":53},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":451,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":464,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":477,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}` | `0x01${string}` | `0x03${string}` | `0x04${string}` | TransactionSerializedLegacy\",\"start\":496,\"length\":9,\"target\":\"signature\",\"line\":10,\"character\":51}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bc3ba4767bce884e84d1c072823ddd297035afcbfefa2ad8e0018812cb8116c6.json b/site/.cache/twoslash.bc3ba4767bce884e84d1c072823ddd297035afcbfefa2ad8e0018812cb8116c6.json index 327ec6d571..c751215a9f 100644 --- a/site/.cache/twoslash.bc3ba4767bce884e84d1c072823ddd297035afcbfefa2ad8e0018812cb8116c6.json +++ b/site/.cache/twoslash.bc3ba4767bce884e84d1c072823ddd297035afcbfefa2ad8e0018812cb8116c6.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mnemonicToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = mnemonicToAccount('legal winner thank year wave sausage worth useful legal winner thank yellow') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":57,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":107,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":143,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":153,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":283,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":317,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":324,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":335,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":346,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mnemonicToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = mnemonicToAccount('legal winner thank year wave sausage worth useful legal winner thank yellow') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":57,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":107,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":143,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":153,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":283,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":317,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":324,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":335,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":346,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { mnemonicToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = mnemonicToAccount('legal winner thank year wave sausage worth useful legal winner thank yellow') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":57,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":107,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":143,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":153,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":283,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":317,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":324,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":335,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":346,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { mnemonicToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = mnemonicToAccount('legal winner thank year wave sausage worth useful legal winner thank yellow') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":57,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":107,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n}\",\"start\":143,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) mnemonicToAccount(mnemonic: string, opts?: MnemonicToAccountOptions): HDAccount\\nimport mnemonicToAccount\",\"tags\":[[\"description\",\"Creates an Account from a mnemonic phrase.\"],[\"returns\",\"A HD Account.\"]],\"start\":153,\"length\":17,\"target\":\"mnemonicToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":274,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":283,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 7 more ...;\\n getHdKey: () => HDKey;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":306,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":317,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":324,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":335,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":346,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bc8589bd5e072fec380fe402bb07cdb4cc190006239d0c23223e93d46bc09ec1.json b/site/.cache/twoslash.bc8589bd5e072fec380fe402bb07cdb4cc190006239d0c23223e93d46bc09ec1.json index 6a3edaad27..e5ad92c234 100644 --- a/site/.cache/twoslash.bc8589bd5e072fec380fe402bb07cdb4cc190006239d0c23223e93d46bc09ec1.json +++ b/site/.cache/twoslash.bc8589bd5e072fec380fe402bb07cdb4cc190006239d0c23223e93d46bc09ec1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":411,\"length\":8,\"target\":\"gasPrice\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":421,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":12}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":411,\"length\":8,\"target\":\"gasPrice\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":421,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":12}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":411,\"length\":8,\"target\":\"gasPrice\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":421,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":12}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":147,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":207,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":214,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":268,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":297,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":327,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":411,\"length\":8,\"target\":\"gasPrice\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":421,\"length\":9,\"target\":\"parseGwei\",\"line\":20,\"character\":12}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bcd4565cec6427d6a255c036785ca4d000459ea07d3ec6097eedf903369386bb.json b/site/.cache/twoslash.bcd4565cec6427d6a255c036785ca4d000459ea07d3ec6097eedf903369386bb.json new file mode 100644 index 0000000000..2597daccab --- /dev/null +++ b/site/.cache/twoslash.bcd4565cec6427d6a255c036785ca4d000459ea07d3ec6097eedf903369386bb.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":163,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":184,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":240,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":247,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":308,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":89,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":163,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":184,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":240,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":247,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":282,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":308,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bd3ee7df9479475487ba8b1702dd0c5f7cb6e4953c7d7ccb03f17bc6e58a8ca4.json b/site/.cache/twoslash.bd3ee7df9479475487ba8b1702dd0c5f7cb6e4953c7d7ccb03f17bc6e58a8ca4.json index 9c9c5d73fc..931f5a27f4 100644 --- a/site/.cache/twoslash.bd3ee7df9479475487ba8b1702dd0c5f7cb6e4953c7d7ccb03f17bc6e58a8ca4.json +++ b/site/.cache/twoslash.bd3ee7df9479475487ba8b1702dd0c5f7cb6e4953c7d7ccb03f17bc6e58a8ca4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n name: 'Foo Wallet Client', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":38,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":95,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":102,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":109,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n name: 'Foo Wallet Client', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":38,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":95,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":102,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":109,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n name: 'Foo Wallet Client', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":38,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":95,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":102,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":109,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,84]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n// ---cut---\\nconst client = createWalletClient({\\n name: 'Foo Wallet Client', // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n account?: `0x${string}` | Account | undefined;\\n cacheTime?: number | undefined | undefined;\\n ccipRead?: {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n } | false | undefined | undefined;\\n ... 5 more ...;\\n transport: CustomTransport;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":38,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":84,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":95,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":102,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":109,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bd934cbc3491fe5bec60e8dd9f89873bdaa7851a80dd6339e396a3b8fb004057.json b/site/.cache/twoslash.bd934cbc3491fe5bec60e8dd9f89873bdaa7851a80dd6339e396a3b8fb004057.json index a1d57e1ec5..48e1d933df 100644 --- a/site/.cache/twoslash.bd934cbc3491fe5bec60e8dd9f89873bdaa7851a80dd6339e396a3b8fb004057.json +++ b/site/.cache/twoslash.bd934cbc3491fe5bec60e8dd9f89873bdaa7851a80dd6339e396a3b8fb004057.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...') // [!code --]\\nexport const eoa = privateKeyToAccount('0x...') // [!code ++]\\n \\nexport const walletClient = createWalletClient({\\n account: relay, // [!code --]\\n account: eoa, // [!code ++]\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":216,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":222,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":280,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":295,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":318,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":327,\"length\":5,\"target\":\"relay\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":350,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":359,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":380,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":387,\"length\":7,\"target\":\"sepolia\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":398,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":409,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...') // [!code --]\\nexport const eoa = privateKeyToAccount('0x...') // [!code ++]\\n \\nexport const walletClient = createWalletClient({\\n account: relay, // [!code --]\\n account: eoa, // [!code ++]\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":216,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":222,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":280,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":295,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":318,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":327,\"length\":5,\"target\":\"relay\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":350,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":359,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":380,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n ...;\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport sepolia\",\"start\":387,\"length\":7,\"target\":\"sepolia\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":398,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":409,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...') // [!code --]\\nexport const eoa = privateKeyToAccount('0x...') // [!code ++]\\n \\nexport const walletClient = createWalletClient({\\n account: relay, // [!code --]\\n account: eoa, // [!code ++]\\n chain: sepolia,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":216,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":222,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":280,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":295,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":318,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":327,\"length\":5,\"target\":\"relay\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":350,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":359,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":380,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":387,\"length\":7,\"target\":\"sepolia\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":398,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":409,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nexport const relay = privateKeyToAccount('0x...') // [!code --]\\nexport const eoa = privateKeyToAccount('0x...') // [!code ++]\\n \\nexport const walletClient = createWalletClient({\\n account: relay, // [!code --]\\n account: eoa, // [!code ++]\\n chain: sepolia,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":57,\"length\":7,\"target\":\"sepolia\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":95,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":152,\"length\":5,\"target\":\"relay\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":160,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":216,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":222,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":280,\"length\":12,\"target\":\"walletClient\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":295,\"length\":18,\"target\":\"createWalletClient\",\"line\":7,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":318,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const relay: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":327,\"length\":5,\"target\":\"relay\",\"line\":8,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":350,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":359,\"length\":3,\"target\":\"eoa\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":380,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":387,\"length\":7,\"target\":\"sepolia\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":398,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":409,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bda8afc7f2242e55fa5a2d2c25a2d7837d574375c20a94ad74735a45124dfb52.json b/site/.cache/twoslash.bda8afc7f2242e55fa5a2d2c25a2d7837d574375c20a94ad74735a45124dfb52.json new file mode 100644 index 0000000000..3e3939b185 --- /dev/null +++ b/site/.cache/twoslash.bda8afc7f2242e55fa5a2d2c25a2d7837d574375c20a94ad74735a45124dfb52.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":270,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":145,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":168,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":270,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":313,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bdb6163958a84d059324e08c7beb3306b646fe1a6573e40ab7ef252cadcf4732.json b/site/.cache/twoslash.bdb6163958a84d059324e08c7beb3306b646fe1a6573e40ab7ef252cadcf4732.json index 53f5274e15..81b5ab74ed 100644 --- a/site/.cache/twoslash.bdb6163958a84d059324e08c7beb3306b646fe1a6573e40ab7ef252cadcf4732.json +++ b/site/.cache/twoslash.bdb6163958a84d059324e08c7beb3306b646fe1a6573e40ab7ef252cadcf4732.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"// 1. Import modules.\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\n// 2. Set up your client with desired chain & transport.\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\n// 3. Consume an action!\\nconst blockNumber = await client.getBlockNumber()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":31,\"length\":18,\"target\":\"createPublicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":79,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":172,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":181,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":204,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":211,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":222,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":233,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":276,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":296,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":303,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// 1. Import modules.\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\n// 2. Set up your client with desired chain & transport.\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\n// 3. Consume an action!\\nconst blockNumber = await client.getBlockNumber()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":31,\"length\":18,\"target\":\"createPublicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":79,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":172,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":181,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":204,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":211,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":222,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":233,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":276,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":296,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":303,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33}],\"tags\":[]}}" +"{\"value\":{\"code\":\"// 1. Import modules.\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\n// 2. Set up your client with desired chain & transport.\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\n// 3. Consume an action!\\nconst blockNumber = await client.getBlockNumber()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":31,\"length\":18,\"target\":\"createPublicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":79,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":172,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":181,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":204,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":211,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":222,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":233,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":276,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":296,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":303,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// 1. Import modules.\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\n// 2. Set up your client with desired chain & transport.\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\n// 3. Consume an action!\\nconst blockNumber = await client.getBlockNumber()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":31,\"length\":18,\"target\":\"createPublicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":51,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":79,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":172,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":181,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":204,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":211,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":222,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":233,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":276,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":296,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":303,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bef250661f8ea24d203c2f7c8d74d0de670b6ef2bbe1d476f7b403a0ee5246a5.json b/site/.cache/twoslash.bef250661f8ea24d203c2f7c8d74d0de670b6ef2bbe1d476f7b403a0ee5246a5.json index 34653bf46c..09413304ed 100644 --- a/site/.cache/twoslash.bef250661f8ea24d203c2f7c8d74d0de670b6ef2bbe1d476f7b403a0ee5246a5.json +++ b/site/.cache/twoslash.bef250661f8ea24d203c2f7c8d74d0de670b6ef2bbe1d476f7b403a0ee5246a5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":269,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":278,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":269,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":278,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":269,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":278,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80') // [!code focus]\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":109,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":155,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":269,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":278,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":312,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":319,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":330,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":341,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bf15780cce476184fa853745f35bcdd3e761b1ca560b95a02b7714937ae7a808.json b/site/.cache/twoslash.bf15780cce476184fa853745f35bcdd3e761b1ca560b95a02b7714937ae7a808.json index ef5d0bbc3b..8f1a559a5b 100644 --- a/site/.cache/twoslash.bf15780cce476184fa853745f35bcdd3e761b1ca560b95a02b7714937ae7a808.json +++ b/site/.cache/twoslash.bf15780cce476184fa853745f35bcdd3e761b1ca560b95a02b7714937ae7a808.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n chain: mainnet, // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":32,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":39,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":67,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":78,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bf4c56ff960865623da9191c223c3a2585091c674e17f7215c3a379431602e81.json b/site/.cache/twoslash.bf4c56ff960865623da9191c223c3a2585091c674e17f7215c3a379431602e81.json deleted file mode 100644 index c2231dce20..0000000000 --- a/site/.cache/twoslash.bf4c56ff960865623da9191c223c3a2585091c674e17f7215c3a379431602e81.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":140,\"length\":6,\"target\":\"expiry\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":165,\"length\":11,\"target\":\"permissions\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":194,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) amount: bigint\",\"start\":246,\"length\":6,\"target\":\"amount\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":254,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) required?: boolean | undefined\",\"docs\":\"Whether or not the wallet must grant the permission.\",\"start\":290,\"length\":8,\"target\":\"required\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) signer?: Signer | undefined\",\"docs\":\"Signer to assign the permissions to.\",\"start\":323,\"length\":6,\"target\":\"signer\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"key\\\"\",\"start\":354,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: {\\n id: string;\\n}\",\"start\":388,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":419,\"length\":2,\"target\":\"id\",\"line\":17,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,443]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [ \\n { \\n type: 'native-token-limit', \\n data: { \\n amount: parseEther('0.5'), \\n }, \\n required: true, \\n }, \\n ], \\n signer: { // [!code focus]\\n type: 'key', // [!code focus]\\n data: { // [!code focus]\\n id: '...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":140,\"length\":6,\"target\":\"expiry\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":165,\"length\":11,\"target\":\"permissions\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":194,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":229,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) amount: bigint\",\"start\":246,\"length\":6,\"target\":\"amount\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":254,\"length\":10,\"target\":\"parseEther\",\"line\":9,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) required?: boolean | undefined\",\"docs\":\"Whether or not the wallet must grant the permission.\",\"start\":290,\"length\":8,\"target\":\"required\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) signer?: Signer | undefined\",\"docs\":\"Signer to assign the permissions to.\",\"start\":323,\"length\":6,\"target\":\"signer\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"key\\\"\",\"start\":354,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: {\\n id: string;\\n}\",\"start\":388,\"length\":4,\"target\":\"data\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":419,\"length\":2,\"target\":\"id\",\"line\":17,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.bf7b0db9d5c3be10b9977d4873f3426674067ebf7e2700ebbd41185fd768835e.json b/site/.cache/twoslash.bf7b0db9d5c3be10b9977d4873f3426674067ebf7e2700ebbd41185fd768835e.json deleted file mode 100644 index d7e2b07fd9..0000000000 --- a/site/.cache/twoslash.bf7b0db9d5c3be10b9977d4873f3426674067ebf7e2700ebbd41185fd768835e.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":262,\"length\":7,\"target\":\"sponsor\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n sponsor: true, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":262,\"length\":7,\"target\":\"sponsor\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c07f22c49f102873a825d3bc286493add6b2a7b74249e0dda0d1d2ae3fee24a1.json b/site/.cache/twoslash.c07f22c49f102873a825d3bc286493add6b2a7b74249e0dda0d1d2ae3fee24a1.json deleted file mode 100644 index 390110d6fd..0000000000 --- a/site/.cache/twoslash.c07f22c49f102873a825d3bc286493add6b2a7b74249e0dda0d1d2ae3fee24a1.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseErc6492Signature } from 'viem/experimental'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":9,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}` | undefined\",\"docs\":\"The ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":89,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const data: `0x${string}` | undefined\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":100,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":108,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":123,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":6,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { parseErc6492Signature } from 'viem/experimental'\\n\\nconst { // [!code focus:99]\\n address,\\n data,\\n signature,\\n} = parseErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n/**\\n * {\\n * address: '0xCafEBAbECAFEbAbEcaFEbabECAfebAbEcAFEBaBe',\\n * data: '0xdeadbeef',\\n * signature: '0xa461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b'\\n * }\\n */\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":9,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}` | undefined\",\"docs\":\"The ERC-4337 Account Factory or preparation address to use for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":89,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"const data: `0x${string}` | undefined\",\"docs\":\"Calldata to pass to deploy account (if not deployed) for counterfactual verification.\\n`undefined` if the signature is not in ERC-6492 format.\",\"start\":100,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"docs\":\"The original signature.\",\"start\":108,\"length\":9,\"target\":\"signature\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseErc6492Signature(signature: ParseErc6492SignatureParameters): ParseErc6492SignatureReturnType\\nimport parseErc6492Signature\",\"tags\":[[\"description\",\"Parses a hex-formatted ERC-6492 flavoured signature.\\nIf the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\"],[\"param\",\"signature ERC-6492 signature in hex format.\"],[\"returns\",\"The parsed ERC-6492 signature.\"],[\"example\",\"parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\\n// { address: '0x...', data: '0x...', signature: '0x...' }\"]],\"start\":123,\"length\":21,\"target\":\"parseErc6492Signature\",\"line\":6,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c0933fe4d053d96f1bfa8bfb83615a388565befaaf09c2425af7c8774aa75593.json b/site/.cache/twoslash.c0933fe4d053d96f1bfa8bfb83615a388565befaaf09c2425af7c8774aa75593.json index 5b4247bdba..4686ca09bd 100644 --- a/site/.cache/twoslash.c0933fe4d053d96f1bfa8bfb83615a388565befaaf09c2425af7c8774aa75593.json +++ b/site/.cache/twoslash.c0933fe4d053d96f1bfa8bfb83615a388565befaaf09c2425af7c8774aa75593.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":129,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":129,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":129,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus:1]\\n message: 'hello world',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (args: SignMessageParameters) => Promise\",\"docs\":\"Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signMessage\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\\n - Local Accounts: Signs locally. No JSON-RPC request.\\n\\nWith the calculated signature, you can:\\n- use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\\n- use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\",\"tags\":[[\"param\",\"args - {@link SignMessageParameters}\"],[\"returns\",\"The signed message. {@link SignMessageReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signMessage({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n message: 'hello world',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signMessage({\\n message: 'hello world',\\n})\"]],\"start\":37,\"length\":11,\"target\":\"signMessage\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":53,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":129,\"length\":7,\"target\":\"message\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c0cff66ee192071edda6cfd8263460f48dc37ad8776ddb59bb3938915689a357.json b/site/.cache/twoslash.c0cff66ee192071edda6cfd8263460f48dc37ad8776ddb59bb3938915689a357.json deleted file mode 100644 index 9cfd76d874..0000000000 --- a/site/.cache/twoslash.c0cff66ee192071edda6cfd8263460f48dc37ad8776ddb59bb3938915689a357.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":84,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":71,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":84,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c108f3f339f1bd892b8322f9d2aff04b1f7911ed210a74c8150d2dd9d72a68f7.json b/site/.cache/twoslash.c108f3f339f1bd892b8322f9d2aff04b1f7911ed210a74c8150d2dd9d72a68f7.json deleted file mode 100644 index d819e8d5ba..0000000000 --- a/site/.cache/twoslash.c108f3f339f1bd892b8322f9d2aff04b1f7911ed210a74c8150d2dd9d72a68f7.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":47,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":71,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":159,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":180,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":236,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":278,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":304,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":47,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":58,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":71,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":159,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":180,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":236,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":243,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":278,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":304,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c1f5bb12896064dd9ee8747ab6f72e0d600490e9da28a5b20aa509eb8f67184b.json b/site/.cache/twoslash.c1f5bb12896064dd9ee8747ab6f72e0d600490e9da28a5b20aa509eb8f67184b.json index 69fc2f6e35..8ca73f46dc 100644 --- a/site/.cache/twoslash.c1f5bb12896064dd9ee8747ab6f72e0d600490e9da28a5b20aa509eb8f67184b.json +++ b/site/.cache/twoslash.c1f5bb12896064dd9ee8747ab6f72e0d600490e9da28a5b20aa509eb8f67184b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createWalletClient({\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":73,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":84,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":91,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":98,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,122]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createWalletClient({\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":73,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":84,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":91,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":98,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createWalletClient({\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":73,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":84,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":91,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":98,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,122]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createWalletClient({\\n chain: mainnet, // [!code focus]\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":38,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":45,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":73,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":84,\"length\":6,\"target\":\"custom\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":91,\"length\":6,\"target\":\"window\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":98,\"length\":8,\"target\":\"ethereum\",\"line\":2,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c21cc45d63a8b04009750114236b02584c0e0ee9dc208f8d99d99fa4dbcb0389.json b/site/.cache/twoslash.c21cc45d63a8b04009750114236b02584c0e0ee9dc208f8d99d99fa4dbcb0389.json deleted file mode 100644 index 94c3ff97f7..0000000000 --- a/site/.cache/twoslash.c21cc45d63a8b04009750114236b02584c0e0ee9dc208f8d99d99fa4dbcb0389.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: {\\n weights: {\\n latency: 0.4, // [!code focus:3]\\n stability: 0.6\\n }\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":62,\"length\":7,\"target\":\"weights\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":79,\"length\":7,\"target\":\"latency\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":118,\"length\":9,\"target\":\"stability\",\"line\":4,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: {\\n weights: {\\n latency: 0.4, // [!code focus:3]\\n stability: 0.6\\n }\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) weights?: {\\n latency?: number | undefined;\\n stability?: number | undefined;\\n} | undefined\",\"docs\":\"Weights to apply to the scores. Weight values are proportional.\",\"start\":62,\"length\":7,\"target\":\"weights\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) latency?: number | undefined\",\"docs\":\"The weight to apply to the latency score.\",\"tags\":[[\"default\",\"0.3\"]],\"start\":79,\"length\":7,\"target\":\"latency\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) stability?: number | undefined\",\"docs\":\"The weight to apply to the stability score.\",\"tags\":[[\"default\",\"0.7\"]],\"start\":118,\"length\":9,\"target\":\"stability\",\"line\":4,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c300c009b78729939f237d18c859675c18eb80bc0441750e56ab83558ec04445.json b/site/.cache/twoslash.c300c009b78729939f237d18c859675c18eb80bc0441750e56ab83558ec04445.json deleted file mode 100644 index 1f9611b51e..0000000000 --- a/site/.cache/twoslash.c300c009b78729939f237d18c859675c18eb80bc0441750e56ab83558ec04445.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function walletActionsErc7715(): (client: Client) => Erc7715Actions\\nimport walletActionsErc7715\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":97,\"length\":20,\"target\":\"walletActionsErc7715\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":159,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":174,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":197,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":204,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":215,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":226,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":233,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":240,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7715Actions) => Client<...>\",\"start\":255,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) walletActionsErc7715(): (client: Client) => Erc7715Actions\\nimport walletActionsErc7715\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":262,\"length\":20,\"target\":\"walletActionsErc7715\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":318,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":331,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function walletActionsErc7715(): (client: Client) => Erc7715Actions\\nimport walletActionsErc7715\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":97,\"length\":20,\"target\":\"walletActionsErc7715\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":159,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":174,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":197,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":204,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":215,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":226,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":233,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":240,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: (fn: (client: Client | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Erc7715Actions) => Client<...>\",\"start\":255,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) walletActionsErc7715(): (client: Client) => Erc7715Actions\\nimport walletActionsErc7715\",\"docs\":\"A suite of ERC-7715 Wallet Actions.\\n\\n- Docs: https://viem.sh/experimental\",\"tags\":[[\"example\",\"import { createPublicClient, createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7715Actions())\\n\\nconst result = await walletClient.grantPermissions({...})\"]],\"start\":262,\"length\":20,\"target\":\"walletActionsErc7715\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":318,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":331,\"length\":12,\"target\":\"getAddresses\",\"line\":9,\"character\":44}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c3565116b25892b975980ed38cb2630aacb5facc2e6e90b2d4e318f4d5d99702.json b/site/.cache/twoslash.c3565116b25892b975980ed38cb2630aacb5facc2e6e90b2d4e318f4d5d99702.json new file mode 100644 index 0000000000..8d146894c3 --- /dev/null +++ b/site/.cache/twoslash.c3565116b25892b975980ed38cb2630aacb5facc2e6e90b2d4e318f4d5d99702.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":233,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":246,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":259,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":293,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":370,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":377,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":468,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":479,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":614,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":670,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":681,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":717,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbi } from 'viem'\\nimport { walletClient } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst { id } = await walletClient.sendCalls({ // [!code focus:99]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":41,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":79,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]>(signatures: [\\\"function approve(address, uint256) returns (bool)\\\", \\\"function transferFrom(address, address, uint256) returns (bool)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":233,\"length\":2,\"target\":\"id\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":246,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":259,\"length\":9,\"target\":\"sendCalls\",\"line\":8,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":293,\"length\":5,\"target\":\"calls\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":314,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":370,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":377,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":468,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":479,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":510,\"length\":4,\"target\":\"args\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":614,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"approve\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n }];\\n readonly outputs: readonly [...];\\n}, {\\n ...;\\n}]\",\"start\":670,\"length\":3,\"target\":\"abi\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":681,\"length\":12,\"target\":\"functionName\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":717,\"length\":4,\"target\":\"args\",\"line\":27,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c39307d7b8397351753ccf7003391c1753e0d7f0ed1263e380a806ae784be873.json b/site/.cache/twoslash.c39307d7b8397351753ccf7003391c1753e0d7f0ed1263e380a806ae784be873.json index 28870b8446..d778685b01 100644 --- a/site/.cache/twoslash.c39307d7b8397351753ccf7003391c1753e0d7f0ed1263e380a806ae784be873.json +++ b/site/.cache/twoslash.c39307d7b8397351753ccf7003391c1753e0d7f0ed1263e380a806ae784be873.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18, // [!code focus]\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18, // [!code focus]\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18, // [!code focus]\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18, // [!code focus]\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":141,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c42464b40fc2d54689bca881b236824690d7b01a14344259f294bae83ae54e11.json b/site/.cache/twoslash.c42464b40fc2d54689bca881b236824690d7b01a14344259f294bae83ae54e11.json deleted file mode 100644 index 5147e2a004..0000000000 --- a/site/.cache/twoslash.c42464b40fc2d54689bca881b236824690d7b01a14344259f294bae83ae54e11.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":269,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":276,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":362,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":405,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet,\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus]\\n ], // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":141,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":269,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":276,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":362,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":405,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c4f7c109ef586469db372096abebf8e68b7c91778269fce2bdb50ecf44222eb9.json b/site/.cache/twoslash.c4f7c109ef586469db372096abebf8e68b7c91778269fce2bdb50ecf44222eb9.json new file mode 100644 index 0000000000..50eb2667f6 --- /dev/null +++ b/site/.cache/twoslash.c4f7c109ef586469db372096abebf8e68b7c91778269fce2bdb50ecf44222eb9.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":82,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.connect() // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":82,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c5975a108b550fdee946668d23b6f7a93cabcad7abee3b80ad0d7e475b60a215.json b/site/.cache/twoslash.c5975a108b550fdee946668d23b6f7a93cabcad7abee3b80ad0d7e475b60a215.json index f0a205e275..569123fe2c 100644 --- a/site/.cache/twoslash.c5975a108b550fdee946668d23b6f7a93cabcad7abee3b80ad0d7e475b60a215.json +++ b/site/.cache/twoslash.c5975a108b550fdee946668d23b6f7a93cabcad7abee3b80ad0d7e475b60a215.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":122,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":158,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":122,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":158,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":122,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":158,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":63,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":115,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":122,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":158,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c6a0d73868e2a3d6a1632fdbf5e80ed846c96368a78c244b291d3aa1698dd8b2.json b/site/.cache/twoslash.c6a0d73868e2a3d6a1632fdbf5e80ed846c96368a78c244b291d3aa1698dd8b2.json index a591927327..f48bbdd203 100644 --- a/site/.cache/twoslash.c6a0d73868e2a3d6a1632fdbf5e80ed846c96368a78c244b291d3aa1698dd8b2.json +++ b/site/.cache/twoslash.c6a0d73868e2a3d6a1632fdbf5e80ed846c96368a78c244b291d3aa1698dd8b2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const paymasterClient = createPaymasterClient({\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient,\\n paymasterContext: { // [!code focus]\\n policyId: 'abc123' // [!code focus]\\n }, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":114,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":130,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":154,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":161,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":172,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":183,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) paymasterContext?: unknown\",\"docs\":\"Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls.\",\"start\":202,\"length\":16,\"target\":\"paymasterContext\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) policyId: string\",\"start\":243,\"length\":8,\"target\":\"policyId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":303,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":314,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,212]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { client } from './config'\\n// ---cut---\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient,\\n paymasterContext: { // [!code focus]\\n policyId: 'abc123' // [!code focus]\\n }, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":114,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":130,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":154,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":161,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":172,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":183,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) paymasterContext?: unknown\",\"docs\":\"Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls.\",\"start\":202,\"length\":16,\"target\":\"paymasterContext\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) policyId: string\",\"start\":243,\"length\":8,\"target\":\"policyId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":303,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":314,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const paymasterClient = createPaymasterClient({\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient,\\n paymasterContext: { // [!code focus]\\n policyId: 'abc123' // [!code focus]\\n }, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":114,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":130,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":154,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":161,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":172,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":183,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) paymasterContext?: unknown\",\"docs\":\"Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls.\",\"start\":202,\"length\":16,\"target\":\"paymasterContext\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) policyId: string\",\"start\":243,\"length\":8,\"target\":\"policyId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":303,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":314,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,212]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { client } from './config'\\n// ---cut---\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: paymasterClient,\\n paymasterContext: { // [!code focus]\\n policyId: 'abc123' // [!code focus]\\n }, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":15,\"target\":\"paymasterClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n rpcSchema?: undefined;\\n transport: HttpTransport<...>;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":24,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":50,\"length\":9,\"target\":\"transport\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":61,\"length\":4,\"target\":\"http\",\"line\":1,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":114,\"length\":13,\"target\":\"bundlerClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":130,\"length\":19,\"target\":\"createBundlerClient\",\"line\":4,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":154,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":161,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":172,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":183,\"length\":15,\"target\":\"paymasterClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) paymasterContext?: unknown\",\"docs\":\"Paymaster context to pass to `getPaymasterData` and `getPaymasterStubData` calls.\",\"start\":202,\"length\":16,\"target\":\"paymasterContext\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) policyId: string\",\"start\":243,\"length\":8,\"target\":\"policyId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":303,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":314,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c7a156f178c7ef83475d814c1c5d04f6cbf0311dd44328841d630a97c5a3bfa7.json b/site/.cache/twoslash.c7a156f178c7ef83475d814c1c5d04f6cbf0311dd44328841d630a97c5a3bfa7.json index cce47f1a9f..b6e73eaebd 100644 --- a/site/.cache/twoslash.c7a156f178c7ef83475d814c1c5d04f6cbf0311dd44328841d630a97c5a3bfa7.json +++ b/site/.cache/twoslash.c7a156f178c7ef83475d814c1c5d04f6cbf0311dd44328841d630a97c5a3bfa7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":57,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":128,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":57,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":128,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":57,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":128,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<...>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":57,\"length\":4,\"target\":\"data\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":128,\"length\":7,\"target\":\"account\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":139,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.c900936d70e780137158bd7826bea7931ba20eac92d2f96f3391bc623bba7294.json b/site/.cache/twoslash.c900936d70e780137158bd7826bea7931ba20eac92d2f96f3391bc623bba7294.json index 8765ddb2da..b5e1abd430 100644 --- a/site/.cache/twoslash.c900936d70e780137158bd7826bea7931ba20eac92d2f96f3391bc623bba7294.json +++ b/site/.cache/twoslash.c900936d70e780137158bd7826bea7931ba20eac92d2f96f3391bc623bba7294.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":65,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":110,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":132,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":168,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":65,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":110,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":132,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":168,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":65,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":110,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":132,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":168,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n accessList: [ // [!code focus:6]\\n {\\n address: '0x1',\\n storageKeys: ['0x1'],\\n },\\n ],\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n }];\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) accessList: readonly [{\\n readonly address: \\\"0x1\\\";\\n readonly storageKeys: readonly [\\\"0x1\\\"];\\n}]\",\"start\":65,\"length\":10,\"target\":\"accessList\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0x1\\\"\",\"start\":110,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) storageKeys: readonly [\\\"0x1\\\"]\",\"start\":132,\"length\":11,\"target\":\"storageKeys\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":168,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ca417006f90a85f8b6e906828e959bdcd9fd07333288772ae47d3d02776ce87f.json b/site/.cache/twoslash.ca417006f90a85f8b6e906828e959bdcd9fd07333288772ae47d3d02776ce87f.json deleted file mode 100644 index 0a1f786921..0000000000 --- a/site/.cache/twoslash.ca417006f90a85f8b6e906828e959bdcd9fd07333288772ae47d3d02776ce87f.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":158,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":235,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":242,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":277,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst id = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":85,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":96,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":109,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":123,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":130,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":158,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":179,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":235,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":242,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":277,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ca5d8b0392b6a33f9906be79337da04fe001d13c9b21deeb7bdf81d6438809db.json b/site/.cache/twoslash.ca5d8b0392b6a33f9906be79337da04fe001d13c9b21deeb7bdf81d6438809db.json index 931be8f068..6ff42541ef 100644 --- a/site/.cache/twoslash.ca5d8b0392b6a33f9906be79337da04fe001d13c9b21deeb7bdf81d6438809db.json +++ b/site/.cache/twoslash.ca5d8b0392b6a33f9906be79337da04fe001d13c9b21deeb7bdf81d6438809db.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst result = await publicClient.createAccessList({ // [!code focus:7]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":56,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":71,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":84,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":124,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":146,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,240]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst result = await publicClient.createAccessList({ // [!code focus:7]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":56,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":71,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":84,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":124,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":146,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { account, publicClient } from './config'\\n\\nconst result = await publicClient.createAccessList({ // [!code focus:7]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":56,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":71,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":84,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":124,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":146,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,240]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, publicClient } from './config'\\n\\nconst result = await publicClient.createAccessList({ // [!code focus:7]\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"import account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":18,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":56,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":71,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":84,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":124,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":146,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cb21a4e327084f8e4610fb27ae91f4c9d12a53441807605806df95db1e4f6ec5.json b/site/.cache/twoslash.cb21a4e327084f8e4610fb27ae91f4c9d12a53441807605806df95db1e4f6ec5.json deleted file mode 100644 index 6af27b5543..0000000000 --- a/site/.cache/twoslash.cb21a4e327084f8e4610fb27ae91f4c9d12a53441807605806df95db1e4f6ec5.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n sampleCount: 10\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":81,\"length\":11,\"target\":\"sampleCount\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n sampleCount: 10\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sampleCount?: number | undefined\",\"docs\":\"The number of previous samples to perform ranking on.\",\"tags\":[[\"default\",\"10\"]],\"start\":81,\"length\":11,\"target\":\"sampleCount\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cb744085cb4136ab6578e202bfe9e31afefe5ffd09ce3c06e270afb62ca365aa.json b/site/.cache/twoslash.cb744085cb4136ab6578e202bfe9e31afefe5ffd09ce3c06e270afb62ca365aa.json deleted file mode 100644 index df0fc7fa7a..0000000000 --- a/site/.cache/twoslash.cb744085cb4136ab6578e202bfe9e31afefe5ffd09ce3c06e270afb62ca365aa.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { recoverAuthorizationAddress } from 'viem/experimental'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { recoverAuthorizationAddress } from 'viem/experimental'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cc6ee9955c870e0625fb5ff0bead2d0b7036e538c3ca9edfced1fe05c3ac3abb.json b/site/.cache/twoslash.cc6ee9955c870e0625fb5ff0bead2d0b7036e538c3ca9edfced1fe05c3ac3abb.json index e8dfbf7828..9fbca87d42 100644 --- a/site/.cache/twoslash.cc6ee9955c870e0625fb5ff0bead2d0b7036e538c3ca9edfced1fe05c3ac3abb.json +++ b/site/.cache/twoslash.cc6ee9955c870e0625fb5ff0bead2d0b7036e538c3ca9edfced1fe05c3ac3abb.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly maxFeePerGas: bigint;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":122,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":136,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":173,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":225,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":232,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cd1080086329e22cc15dc89388aff05748ed00d6cdcc73d1d8b9985c505e32db.json b/site/.cache/twoslash.cd1080086329e22cc15dc89388aff05748ed00d6cdcc73d1d8b9985c505e32db.json index e91f40ab2d..0319a817b6 100644 --- a/site/.cache/twoslash.cd1080086329e22cc15dc89388aff05748ed00d6cdcc73d1d8b9985c505e32db.json +++ b/site/.cache/twoslash.cd1080086329e22cc15dc89388aff05748ed00d6cdcc73d1d8b9985c505e32db.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":109,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":132,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":139,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":150,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":161,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cd4adc52b8ab0a6bdf9908be573bf156c30eb7f57ea401701482c72120df7cd5.json b/site/.cache/twoslash.cd4adc52b8ab0a6bdf9908be573bf156c30eb7f57ea401701482c72120df7cd5.json deleted file mode 100644 index 38f7a9c612..0000000000 --- a/site/.cache/twoslash.cd4adc52b8ab0a6bdf9908be573bf156c30eb7f57ea401701482c72120df7cd5.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { recoverAuthorizationAddress } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":90,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":128,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":150,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":163,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":185,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":271,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":320,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,410]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { recoverAuthorizationAddress } from 'viem/experimental' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst address = await recoverAuthorizationAddress({ // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":90,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":128,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":150,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":163,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":185,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":255,\"length\":7,\"target\":\"address\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) recoverAuthorizationAddress(parameters: RecoverAuthorizationAddressParameters>): Promise\\nimport recoverAuthorizationAddress\",\"start\":271,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf | SignAuthorizationReturnType\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":320,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cd519898d580ff0de56f42f469913961c4e41343e57dce7f686f9a9759f0683d.json b/site/.cache/twoslash.cd519898d580ff0de56f42f469913961c4e41343e57dce7f686f9a9759f0683d.json index 556022c595..5f0011fb0c 100644 --- a/site/.cache/twoslash.cd519898d580ff0de56f42f469913961c4e41343e57dce7f686f9a9759f0683d.json +++ b/site/.cache/twoslash.cd519898d580ff0de56f42f469913961c4e41343e57dce7f686f9a9759f0683d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { http } from 'viem'\\nimport { \\n createBundlerClient, \\n createPaymasterClient,\\n} from 'viem/account-abstraction'\\nimport { sepolia } from 'viem/chains'\\n\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'), // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: sepolia,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":40,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function createPaymasterClient(parameters: PaymasterClientConfig): PaymasterClient\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":64,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":130,\"length\":7,\"target\":\"sepolia\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":15,\"target\":\"paymasterClient\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n transport: HttpTransport<...>;\\n rpcSchema?: undefined;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":184,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":238,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":333,\"length\":13,\"target\":\"bundlerClient\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":349,\"length\":19,\"target\":\"createBundlerClient\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":373,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":380,\"length\":7,\"target\":\"sepolia\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":391,\"length\":9,\"target\":\"paymaster\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":402,\"length\":15,\"target\":\"paymasterClient\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":438,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":449,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\nimport { \\n createBundlerClient, \\n createPaymasterClient,\\n} from 'viem/account-abstraction'\\nimport { sepolia } from 'viem/chains'\\n\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'), // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: sepolia,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":40,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function createPaymasterClient(parameters: PaymasterClientConfig): PaymasterClient\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":64,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":130,\"length\":7,\"target\":\"sepolia\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":15,\"target\":\"paymasterClient\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n transport: HttpTransport<...>;\\n rpcSchema?: undefined;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":184,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":238,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":333,\"length\":13,\"target\":\"bundlerClient\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":349,\"length\":19,\"target\":\"createBundlerClient\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":373,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":380,\"length\":7,\"target\":\"sepolia\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":391,\"length\":9,\"target\":\"paymaster\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":402,\"length\":15,\"target\":\"paymasterClient\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":438,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":449,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { http } from 'viem'\\nimport { \\n createBundlerClient, \\n createPaymasterClient,\\n} from 'viem/account-abstraction'\\nimport { sepolia } from 'viem/chains'\\n\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'), // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: sepolia,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":40,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function createPaymasterClient(parameters: PaymasterClientConfig): PaymasterClient\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":64,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":130,\"length\":7,\"target\":\"sepolia\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":15,\"target\":\"paymasterClient\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n transport: HttpTransport<...>;\\n rpcSchema?: undefined;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":184,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":238,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":333,\"length\":13,\"target\":\"bundlerClient\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":349,\"length\":19,\"target\":\"createBundlerClient\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":373,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":380,\"length\":7,\"target\":\"sepolia\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":391,\"length\":9,\"target\":\"paymaster\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":402,\"length\":15,\"target\":\"paymasterClient\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":438,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":449,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\nimport { \\n createBundlerClient, \\n createPaymasterClient,\\n} from 'viem/account-abstraction'\\nimport { sepolia } from 'viem/chains'\\n\\nconst paymasterClient = createPaymasterClient({ // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'), // [!code focus]\\n}) // [!code focus]\\n\\nconst bundlerClient = createBundlerClient({\\n chain: sepolia,\\n paymaster: paymasterClient, // [!code focus]\\n transport: http('https://public.pimlico.io/v2/11155111/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":40,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function createPaymasterClient(parameters: PaymasterClientConfig): PaymasterClient\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":64,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":130,\"length\":7,\"target\":\"sepolia\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":15,\"target\":\"paymasterClient\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPaymasterClient, undefined>(parameters: {\\n cacheTime?: number | undefined | undefined;\\n key?: string | undefined | undefined;\\n name?: string | undefined | undefined;\\n pollingInterval?: number | undefined | undefined;\\n transport: HttpTransport<...>;\\n rpcSchema?: undefined;\\n}): {\\n ...;\\n}\\nimport createPaymasterClient\",\"docs\":\"Creates a Paymaster Client.\\n\\n- Docs: https://viem.sh/account-abstraction/clients/paymaster\",\"tags\":[[\"param\",\"config - {@link PaymasterClientConfig}\"],[\"returns\",\"A Paymaster Client. {@link PaymasterClient}\"],[\"example\",\"import { http } from 'viem'\\nimport { createPaymasterClient } from 'viem/account-abstraction'\\n\\nconst paymasterClient = createPaymasterClient({\\n transport: http('https://...'),\\n})\"]],\"start\":184,\"length\":21,\"target\":\"createPaymasterClient\",\"line\":7,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":227,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":238,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":333,\"length\":13,\"target\":\"bundlerClient\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":349,\"length\":19,\"target\":\"createBundlerClient\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":373,\"length\":5,\"target\":\"chain\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const sepolia: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport sepolia\",\"start\":380,\"length\":7,\"target\":\"sepolia\",\"line\":12,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":391,\"length\":9,\"target\":\"paymaster\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const paymasterClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 12 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":402,\"length\":15,\"target\":\"paymasterClient\",\"line\":13,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":438,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":449,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cdbd58cadc11f4036b8b95deef78b8c5529aa88d5fb3f1d601792385c05e728c.json b/site/.cache/twoslash.cdbd58cadc11f4036b8b95deef78b8c5529aa88d5fb3f1d601792385c05e728c.json index 44ce22dadb..4fe174c04a 100644 --- a/site/.cache/twoslash.cdbd58cadc11f4036b8b95deef78b8c5529aa88d5fb3f1d601792385c05e728c.json +++ b/site/.cache/twoslash.cdbd58cadc11f4036b8b95deef78b8c5529aa88d5fb3f1d601792385c05e728c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,343]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,343]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":63,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":133,\"length\":5,\"target\":\"valid\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":147,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":4,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":171,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":228,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ce02f2160c37c988696a93251c04fafd5cfcbec6be5a09af248d078776404687.json b/site/.cache/twoslash.ce02f2160c37c988696a93251c04fafd5cfcbec6be5a09af248d078776404687.json index 64d04571c3..a66b407b39 100644 --- a/site/.cache/twoslash.ce02f2160c37c988696a93251c04fafd5cfcbec6be5a09af248d078776404687.json +++ b/site/.cache/twoslash.ce02f2160c37c988696a93251c04fafd5cfcbec6be5a09af248d078776404687.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address, // [!code --]\\n to: walletClient.account.address, // [!code ++]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":134,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":156,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":169,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":191,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":200,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":221,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":240,\"length\":8,\"target\":\"executor\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":282,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":295,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":308,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":328,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":348,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":372,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":406,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":442,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":446,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":450,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":475,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":479,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":492,\"length\":7,\"target\":\"account\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":500,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address, // [!code --]\\n to: walletClient.account.address, // [!code ++]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":134,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":156,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":169,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":191,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":200,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":221,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":240,\"length\":8,\"target\":\"executor\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":282,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":295,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":308,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":328,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":348,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":372,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":406,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":442,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":446,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":450,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":475,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":479,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":492,\"length\":7,\"target\":\"account\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":500,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address, // [!code --]\\n to: walletClient.account.address, // [!code ++]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":134,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":156,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":169,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":191,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":200,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":221,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":240,\"length\":8,\"target\":\"executor\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":282,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":295,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":308,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":328,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":348,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":372,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":406,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":442,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":446,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":450,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":475,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":479,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":492,\"length\":7,\"target\":\"account\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":500,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2084]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":344,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":688,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1032,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1376,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"initialize\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"ping\\\",\\n \\\"inputs\\\": [],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"pure\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1720,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { sepolia } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\n\\nexport const relay = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: sepolia,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2045,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa, // [!code --]\\n contractAddress,\\n executor: 'self', // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'initialize',\\n }),\\n to: eoa.address, // [!code --]\\n to: walletClient.account.address, // [!code ++]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":51,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":91,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":134,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":156,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":169,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":191,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":200,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":221,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) executor?: `0x${string}` | Account | \\\"self\\\" | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\\n\\nBy default, it will be assumed that the EIP-7702 Transaction will\\nbe executed by another Account.\",\"start\":240,\"length\":8,\"target\":\"executor\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":282,\"length\":4,\"target\":\"hash\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":295,\"length\":12,\"target\":\"walletClient\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://sepolia.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-sepolia.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":308,\"length\":15,\"target\":\"sendTransaction\",\"line\":10,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":328,\"length\":17,\"target\":\"authorizationList\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":348,\"length\":13,\"target\":\"authorization\",\"line\":11,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":366,\"length\":4,\"target\":\"data\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":372,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":397,\"length\":3,\"target\":\"abi\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":406,\"length\":12,\"target\":\"functionName\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":442,\"length\":2,\"target\":\"to\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":446,\"length\":3,\"target\":\"eoa\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":450,\"length\":7,\"target\":\"address\",\"line\":16,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":475,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":479,\"length\":12,\"target\":\"walletClient\",\"line\":17,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"docs\":\"The Account of the Client.\",\"start\":492,\"length\":7,\"target\":\"account\",\"line\":17,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":500,\"length\":7,\"target\":\"address\",\"line\":17,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ceaae624cfa2a9bd90c5b7e1536771862de8a9c7489f91d9169cb877bd25a8b4.json b/site/.cache/twoslash.ceaae624cfa2a9bd90c5b7e1536771862de8a9c7489f91d9169cb877bd25a8b4.json new file mode 100644 index 0000000000..d1e36ce721 --- /dev/null +++ b/site/.cache/twoslash.ceaae624cfa2a9bd90c5b7e1536771862de8a9c7489f91d9169cb877bd25a8b4.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: any\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) disconnect: () => Promise\",\"docs\":\"Requests to disconnect connected accounts.\\n\\n- Docs: https://viem.sh/experimental/erc7846/disconnect\\n- JSON-RPC Methods: [`wallet_disconnect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"void\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nawait client.disconnect()\"]],\"start\":82,\"length\":10,\"target\":\"disconnect\",\"line\":2,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst { accounts } = await walletClient.disconnect() // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: any\",\"start\":50,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":69,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) disconnect: () => Promise\",\"docs\":\"Requests to disconnect connected accounts.\\n\\n- Docs: https://viem.sh/experimental/erc7846/disconnect\\n- JSON-RPC Methods: [`wallet_disconnect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"void\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nawait client.disconnect()\"]],\"start\":82,\"length\":10,\"target\":\"disconnect\",\"line\":2,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ceb2c59bfe22ed5ee87d47332f86e5e15ffd32aab8e6c280bf2ed1799ee0867b.json b/site/.cache/twoslash.ceb2c59bfe22ed5ee87d47332f86e5e15ffd32aab8e6c280bf2ed1799ee0867b.json index 69d6c5174b..265f3daa4f 100644 --- a/site/.cache/twoslash.ceb2c59bfe22ed5ee87d47332f86e5e15ffd32aab8e6c280bf2ed1799ee0867b.json +++ b/site/.cache/twoslash.ceb2c59bfe22ed5ee87d47332f86e5e15ffd32aab8e6c280bf2ed1799ee0867b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { \\n async getPaymasterStubData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n async getPaymasterData(userOperation) { /* ... */ }\\n } \\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterStubData?: ((parameters: GetPaymasterStubDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for gas estimation.\",\"start\":88,\"length\":20,\"target\":\"getPaymasterStubData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterStubDataParameters\",\"start\":109,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":263,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":308,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":357,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit: bigint\",\"start\":421,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":529,\"length\":16,\"target\":\"getPaymasterData\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":546,\"length\":13,\"target\":\"userOperation\",\"line\":12,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":582,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":593,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { \\n async getPaymasterStubData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n async getPaymasterData(userOperation) { /* ... */ }\\n } \\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterStubData?: ((parameters: GetPaymasterStubDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for gas estimation.\",\"start\":88,\"length\":20,\"target\":\"getPaymasterStubData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterStubDataParameters\",\"start\":109,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":263,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":308,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":357,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit: bigint\",\"start\":421,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":529,\"length\":16,\"target\":\"getPaymasterData\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":546,\"length\":13,\"target\":\"userOperation\",\"line\":12,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":582,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":593,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { \\n async getPaymasterStubData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n async getPaymasterData(userOperation) { /* ... */ }\\n } \\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterStubData?: ((parameters: GetPaymasterStubDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for gas estimation.\",\"start\":88,\"length\":20,\"target\":\"getPaymasterStubData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterStubDataParameters\",\"start\":109,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":263,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":308,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":357,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit: bigint\",\"start\":421,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":529,\"length\":16,\"target\":\"getPaymasterData\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":546,\"length\":13,\"target\":\"userOperation\",\"line\":12,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":582,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":593,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,155]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n paymaster: { \\n async getPaymasterStubData(userOperation) { // [!code focus]\\n // Retrieve paymaster properties for the User Operation. // [!code focus]\\n return { // [!code focus]\\n paymaster: '0x...', // [!code focus]\\n paymasterData: '0x...', // [!code focus]\\n paymasterVerificationGasLimit: 69420n, // [!code focus]\\n paymasterPostOpGasLimit: 69420n, // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n async getPaymasterData(userOperation) { /* ... */ }\\n } \\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) paymaster?: true | {\\n getPaymasterData?: PaymasterActions[\\\"getPaymasterData\\\"] | undefined;\\n getPaymasterStubData?: PaymasterActions[\\\"getPaymasterStubData\\\"] | undefined;\\n} | undefined\",\"docs\":\"Paymaster configuration.\",\"start\":64,\"length\":9,\"target\":\"paymaster\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) getPaymasterStubData?: ((parameters: GetPaymasterStubDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for gas estimation.\",\"start\":88,\"length\":20,\"target\":\"getPaymasterStubData\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterStubDataParameters\",\"start\":109,\"length\":13,\"target\":\"userOperation\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) paymaster: `0x${string}`\",\"start\":263,\"length\":9,\"target\":\"paymaster\",\"line\":6,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterData: `0x${string}`\",\"start\":308,\"length\":13,\"target\":\"paymasterData\",\"line\":7,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterVerificationGasLimit?: bigint | undefined\",\"start\":357,\"length\":29,\"target\":\"paymasterVerificationGasLimit\",\"line\":8,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) paymasterPostOpGasLimit: bigint\",\"start\":421,\"length\":23,\"target\":\"paymasterPostOpGasLimit\",\"line\":9,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) getPaymasterData?: ((parameters: GetPaymasterDataParameters) => Promise) | undefined\",\"docs\":\"Retrieves paymaster-related User Operation properties to be used for sending the User Operation.\",\"start\":529,\"length\":16,\"target\":\"getPaymasterData\",\"line\":12,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) userOperation: GetPaymasterDataParameters\",\"start\":546,\"length\":13,\"target\":\"userOperation\",\"line\":12,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":582,\"length\":9,\"target\":\"transport\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":593,\"length\":4,\"target\":\"http\",\"line\":14,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cedbc76ff9f17e9f62c8344e42d650a9f6ee73659d80fa84c0fff1a8d70482e7.json b/site/.cache/twoslash.cedbc76ff9f17e9f62c8344e42d650a9f6ee73659d80fa84c0fff1a8d70482e7.json index 0ee4b94aaf..13ec7b3742 100644 --- a/site/.cache/twoslash.cedbc76ff9f17e9f62c8344e42d650a9f6ee73659d80fa84c0fff1a8d70482e7.json +++ b/site/.cache/twoslash.cedbc76ff9f17e9f62c8344e42d650a9f6ee73659d80fa84c0fff1a8d70482e7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [address] = await window.ethereum.request({ // [!code focus:3]\\n method: 'eth_requestAccounts' \\n})\\n\\nconst client = createWalletClient({\\n account: address, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":30,\"length\":18,\"target\":\"createWalletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":50,\"length\":6,\"target\":\"custom\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":80,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":117,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":134,\"length\":6,\"target\":\"window\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":141,\"length\":8,\"target\":\"ethereum\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":181,\"length\":6,\"target\":\"method\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":254,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":263,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":291,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":298,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":309,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":320,\"length\":6,\"target\":\"custom\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":327,\"length\":6,\"target\":\"window\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":334,\"length\":8,\"target\":\"ethereum\",\"line\":11,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [address] = await window.ethereum.request({ // [!code focus:3]\\n method: 'eth_requestAccounts' \\n})\\n\\nconst client = createWalletClient({\\n account: address, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":30,\"length\":18,\"target\":\"createWalletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":50,\"length\":6,\"target\":\"custom\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":80,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":117,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":134,\"length\":6,\"target\":\"window\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":141,\"length\":8,\"target\":\"ethereum\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":181,\"length\":6,\"target\":\"method\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":254,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":263,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":291,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":298,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":309,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":320,\"length\":6,\"target\":\"custom\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":327,\"length\":6,\"target\":\"window\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":334,\"length\":8,\"target\":\"ethereum\",\"line\":11,\"character\":27}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [address] = await window.ethereum.request({ // [!code focus:3]\\n method: 'eth_requestAccounts' \\n})\\n\\nconst client = createWalletClient({\\n account: address, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":30,\"length\":18,\"target\":\"createWalletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":50,\"length\":6,\"target\":\"custom\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":80,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":117,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":134,\"length\":6,\"target\":\"window\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":141,\"length\":8,\"target\":\"ethereum\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":181,\"length\":6,\"target\":\"method\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":254,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":263,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":291,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":298,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":309,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":320,\"length\":6,\"target\":\"custom\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":327,\"length\":6,\"target\":\"window\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":334,\"length\":8,\"target\":\"ethereum\",\"line\":11,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [address] = await window.ethereum.request({ // [!code focus:3]\\n method: 'eth_requestAccounts' \\n})\\n\\nconst client = createWalletClient({\\n account: address, // [!code focus]\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":30,\"length\":18,\"target\":\"createWalletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":50,\"length\":6,\"target\":\"custom\",\"line\":1,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":80,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":117,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":134,\"length\":6,\"target\":\"window\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":141,\"length\":8,\"target\":\"ethereum\",\"line\":4,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":4,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":181,\"length\":6,\"target\":\"method\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":222,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":231,\"length\":18,\"target\":\"createWalletClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":254,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const address: `0x${string}`\",\"start\":263,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":291,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":298,\"length\":7,\"target\":\"mainnet\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":309,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":320,\"length\":6,\"target\":\"custom\",\"line\":11,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":327,\"length\":6,\"target\":\"window\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":334,\"length\":8,\"target\":\"ethereum\",\"line\":11,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.cf39868d699121940cfc1206a98864b2b9db6a5129ca887da87de719857320ef.json b/site/.cache/twoslash.cf39868d699121940cfc1206a98864b2b9db6a5129ca887da87de719857320ef.json index 40124ccfe3..226432fef1 100644 --- a/site/.cache/twoslash.cf39868d699121940cfc1206a98864b2b9db6a5129ca887da87de719857320ef.json +++ b/site/.cache/twoslash.cf39868d699121940cfc1206a98864b2b9db6a5129ca887da87de719857320ef.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { client } from './config'\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":43,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":78,\"length\":7,\"target\":\"results\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":96,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":103,\"length\":13,\"target\":\"simulateCalls\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":121,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to simulate.\",\"start\":178,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":199,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":255,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":262,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":298,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":354,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":361,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":394,\"length\":7,\"target\":\"console\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":402,\"length\":3,\"target\":\"log\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":406,\"length\":7,\"target\":\"results\",\"line\":17,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":415,\"length\":0,\"text\":\"[\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":416,\"length\":0,\"text\":\" {\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":417,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":418,\"length\":0,\"text\":\" logs: [],\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":419,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":22,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":420,\"length\":0,\"text\":\" },\",\"line\":23,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":421,\"length\":0,\"text\":\" {\",\"line\":24,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":422,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":25,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":423,\"length\":0,\"text\":\" logs: [],\",\"line\":26,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":424,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":27,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":425,\"length\":0,\"text\":\" },\",\"line\":28,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":426,\"length\":0,\"text\":\"]\",\"line\":30,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1484,1495],[1469,1483],[1436,1468],[1412,1435],[1381,1411],[1367,1380],[1352,1366],[1319,1351],[1295,1318],[1264,1294],[1250,1263],[1238,1249],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1238,\"end\":1249},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1250,\"end\":1263},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1264,\"end\":1294},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1295,\"end\":1318},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1319,\"end\":1351},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1352,\"end\":1366},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1367,\"end\":1380},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1381,\"end\":1411},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1412,\"end\":1435},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1436,\"end\":1468},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1469,\"end\":1483},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":1484,\"end\":1495}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { client } from './config'\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":43,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":78,\"length\":7,\"target\":\"results\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":96,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":103,\"length\":13,\"target\":\"simulateCalls\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":121,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to simulate.\",\"start\":178,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":199,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":255,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":262,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":298,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":354,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":361,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":394,\"length\":7,\"target\":\"console\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":402,\"length\":3,\"target\":\"log\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":406,\"length\":7,\"target\":\"results\",\"line\":17,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":415,\"length\":0,\"text\":\"[\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":416,\"length\":0,\"text\":\" {\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":417,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":418,\"length\":0,\"text\":\" logs: [],\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":419,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":22,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":420,\"length\":0,\"text\":\" },\",\"line\":23,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":421,\"length\":0,\"text\":\" {\",\"line\":24,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":422,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":25,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":423,\"length\":0,\"text\":\" logs: [],\",\"line\":26,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":424,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":27,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":425,\"length\":0,\"text\":\" },\",\"line\":28,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":426,\"length\":0,\"text\":\"]\",\"line\":30,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { client } from './config'\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":43,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":78,\"length\":7,\"target\":\"results\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":96,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":103,\"length\":13,\"target\":\"simulateCalls\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":121,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to simulate.\",\"start\":178,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":199,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":255,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":262,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":298,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":354,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":361,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":394,\"length\":7,\"target\":\"console\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":402,\"length\":3,\"target\":\"log\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":406,\"length\":7,\"target\":\"results\",\"line\":17,\"character\":12},{\"type\":\"tag\",\"name\":\"log\",\"start\":415,\"length\":0,\"text\":\"[\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":416,\"length\":0,\"text\":\" {\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":417,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":418,\"length\":0,\"text\":\" logs: [],\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":419,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":22,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":420,\"length\":0,\"text\":\" },\",\"line\":23,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":421,\"length\":0,\"text\":\" {\",\"line\":24,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":422,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":25,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":423,\"length\":0,\"text\":\" logs: [],\",\"line\":26,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":424,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":27,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":425,\"length\":0,\"text\":\" },\",\"line\":28,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":426,\"length\":0,\"text\":\"]\",\"line\":30,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1484,1495],[1469,1483],[1436,1468],[1412,1435],[1381,1411],[1367,1380],[1352,1366],[1319,1351],[1295,1318],[1264,1294],[1250,1263],[1238,1249],[0,823]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[\",\"start\":1238,\"end\":1249},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1250,\"end\":1263},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1264,\"end\":1294},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1295,\"end\":1318},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1319,\"end\":1351},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1352,\"end\":1366},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" {\",\"start\":1367,\"end\":1380},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" gasUsed: 21000n,\",\"start\":1381,\"end\":1411},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" logs: [],\",\"start\":1412,\"end\":1435},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: \\\"success\\\",\",\"start\":1436,\"end\":1468},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1469,\"end\":1483},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"]\",\"start\":1484,\"end\":1495}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":196,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":588,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":784,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { client } from './config'\\n \\nconst { results } = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [\\n {\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('2'),\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ],\\n})\\n\\nconsole.log(results)\\n// @log: [\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: {\\n\\n// @log: gasUsed: 21000n,\\n\\n// @log: logs: [],\\n\\n// @log: status: \\\"success\\\",\\n\\n// @log: },\\n\\n// @log: ]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":43,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":78,\"length\":7,\"target\":\"results\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":96,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateCalls: (args: SimulateCallsParameters<...>) => Promise<...>\",\"docs\":\"Simulates a set of calls.\",\"tags\":[[\"example\",\"```ts\\nimport { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst result = await client.simulateCalls({\\n account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n },\\n ]\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link SimulateCallsParameters}\"],[\"returns\",\"Results. {@link SimulateCallsReturnType}\"]],\"start\":103,\"length\":13,\"target\":\"simulateCalls\",\"line\":3,\"character\":33},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the calls (msg.sender).\",\"start\":121,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to simulate.\",\"start\":178,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xcb98643b8786950F0461f3B0edf99D88F274574D\\\"\",\"start\":199,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":255,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":262,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":298,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":354,\"length\":5,\"target\":\"value\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":361,\"length\":10,\"target\":\"parseEther\",\"line\":12,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":394,\"length\":7,\"target\":\"console\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":402,\"length\":3,\"target\":\"log\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"const results: [({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n}), ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n error: Error;\\n result?: undefined;\\n status: \\\"failure\\\";\\n}) | ({\\n data: Hex;\\n gasUsed: bigint;\\n logs?: Log[] | undefined;\\n} & {\\n ...;\\n})]\",\"docs\":\"Call results.\",\"start\":406,\"length\":7,\"target\":\"results\",\"line\":17,\"character\":12}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":415,\"length\":0,\"text\":\"[\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":416,\"length\":0,\"text\":\" {\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":417,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":418,\"length\":0,\"text\":\" logs: [],\",\"line\":21,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":419,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":22,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":420,\"length\":0,\"text\":\" },\",\"line\":23,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":421,\"length\":0,\"text\":\" {\",\"line\":24,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":422,\"length\":0,\"text\":\" gasUsed: 21000n,\",\"line\":25,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":423,\"length\":0,\"text\":\" logs: [],\",\"line\":26,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":424,\"length\":0,\"text\":\" status: \\\"success\\\",\",\"line\":27,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":425,\"length\":0,\"text\":\" },\",\"line\":28,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":426,\"length\":0,\"text\":\"]\",\"line\":30,\"character\":0}]}}" diff --git a/site/.cache/twoslash.cf4e77f538ec0078150e550914ce850c5187218bde7cd04e83654353bac01720.json b/site/.cache/twoslash.cf4e77f538ec0078150e550914ce850c5187218bde7cd04e83654353bac01720.json index 0a5c874e05..95d31995e0 100644 --- a/site/.cache/twoslash.cf4e77f538ec0078150e550914ce850c5187218bde7cd04e83654353bac01720.json +++ b/site/.cache/twoslash.cf4e77f538ec0078150e550914ce850c5187218bde7cd04e83654353bac01720.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', // [!code focus]\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', // [!code focus]\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', // [!code focus]\\n transport: http(), \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', // [!code focus]\\n transport: http(), \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":88,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":99,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d01a0f6c2063e4cdd9632073e70e45b0b6c6b073d4adcff8a1460080ff4841fc.json b/site/.cache/twoslash.d01a0f6c2063e4cdd9632073e70e45b0b6c6b073d4adcff8a1460080ff4841fc.json index 1331032aaf..df7ef90943 100644 --- a/site/.cache/twoslash.d01a0f6c2063e4cdd9632073e70e45b0b6c6b073d4adcff8a1460080ff4841fc.json +++ b/site/.cache/twoslash.d01a0f6c2063e4cdd9632073e70e45b0b6c6b073d4adcff8a1460080ff4841fc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":258,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":310,\"length\":0,\"text\":\"↑ Local Account\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[373,398],[293,321],[0,35]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":293,\"end\":321},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":373,\"end\":398}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":258,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":310,\"length\":0,\"text\":\"↑ Local Account\",\"line\":12,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\\n// export const account = privateKeyToAccount(...)\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44},{\"type\":\"tag\",\"name\":\"log\",\"start\":258,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":310,\"length\":0,\"text\":\"↑ Local Account\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[373,398],[293,321],[0,35]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":293,\"end\":321},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":373,\"end\":398}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":59,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":117,\"length\":18,\"target\":\"createWalletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":140,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":147,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":158,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":169,\"length\":6,\"target\":\"custom\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":176,\"length\":6,\"target\":\"window\",\"line\":5,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":183,\"length\":8,\"target\":\"ethereum\",\"line\":5,\"character\":27},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":213,\"length\":7,\"target\":\"account\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":230,\"length\":12,\"target\":\"walletClient\",\"line\":8,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":243,\"length\":12,\"target\":\"getAddresses\",\"line\":8,\"character\":44}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":258,\"length\":0,\"text\":\"↑ JSON-RPC Account\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":310,\"length\":0,\"text\":\"↑ Local Account\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.d0538bcff7ccd517ae84d0f2e37048da9b72683f3c471695661deee1dce5f99c.json b/site/.cache/twoslash.d0538bcff7ccd517ae84d0f2e37048da9b72683f3c471695661deee1dce5f99c.json new file mode 100644 index 0000000000..ce7ebafbb6 --- /dev/null +++ b/site/.cache/twoslash.d0538bcff7ccd517ae84d0f2e37048da9b72683f3c471695661deee1dce5f99c.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":63,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":95,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":147,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":154,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":63,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":95,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":147,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":154,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d17fb54d1902e904c2377fc2e9ae02dc9eb708e0a09ba1caa3e4f4784db75711.json b/site/.cache/twoslash.d17fb54d1902e904c2377fc2e9ae02dc9eb708e0a09ba1caa3e4f4784db75711.json deleted file mode 100644 index 08633419d4..0000000000 --- a/site/.cache/twoslash.d17fb54d1902e904c2377fc2e9ae02dc9eb708e0a09ba1caa3e4f4784db75711.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":168,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,443]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account, // [!code focus]\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":168,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":193,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":220,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":257,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":273,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":303,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":335,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":370,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":390,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":401,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d1ce14c38c6ffc7a0613e7057ccf22b5b81473cc01fe690e690a97ea692c0b8e.json b/site/.cache/twoslash.d1ce14c38c6ffc7a0613e7057ccf22b5b81473cc01fe690e690a97ea692c0b8e.json index e1c30cc4ab..db9b4e086e 100644 --- a/site/.cache/twoslash.d1ce14c38c6ffc7a0613e7057ccf22b5b81473cc01fe690e690a97ea692c0b8e.json +++ b/site/.cache/twoslash.d1ce14c38c6ffc7a0613e7057ccf22b5b81473cc01fe690e690a97ea692c0b8e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { verifyAuthorization } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":61,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":127,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":165,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":171,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":207,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":242,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":264,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":273,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":280,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":350,\"length\":5,\"target\":\"valid\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":364,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":405,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":414,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":418,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":446,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,241]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { verifyAuthorization } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":61,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":127,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":165,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":171,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":207,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":242,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":264,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":273,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":280,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":350,\"length\":5,\"target\":\"valid\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":364,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":405,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":414,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":418,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":446,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { verifyAuthorization } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":61,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":127,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":165,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":171,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":207,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":242,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":264,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":273,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":280,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":350,\"length\":5,\"target\":\"valid\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":364,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":405,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":414,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":418,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":446,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,241]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { verifyAuthorization } from 'viem/utils' // [!code focus]\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n authorization: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n})\\n\\nconst valid = await verifyAuthorization({ // [!code focus]\\n address: eoa.address, // [!code focus]\\n authorization, // [!code focus]\\n}) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":61,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":127,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":165,\"length\":3,\"target\":\"eoa\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":171,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":207,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":229,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":242,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":264,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":273,\"length\":3,\"target\":\"eoa\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorization: string\",\"start\":280,\"length\":13,\"target\":\"authorization\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":350,\"length\":5,\"target\":\"valid\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":364,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":11,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":405,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":414,\"length\":3,\"target\":\"eoa\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":418,\"length\":7,\"target\":\"address\",\"line\":12,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":446,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d2558d8c3d79c24be6574c400afa74544b54a4e4b66a4365bb0bb3cd4660857e.json b/site/.cache/twoslash.d2558d8c3d79c24be6574c400afa74544b54a4e4b66a4365bb0bb3cd4660857e.json index 21d783106d..1717684ead 100644 --- a/site/.cache/twoslash.d2558d8c3d79c24be6574c400afa74544b54a4e4b66a4365bb0bb3cd4660857e.json +++ b/site/.cache/twoslash.d2558d8c3d79c24be6574c400afa74544b54a4e4b66a4365bb0bb3cd4660857e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 30_000 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in ms) to wait before stopping polling.\",\"start\":146,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 30_000 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in ms) to wait before stopping polling.\",\"start\":146,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 30_000 // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in ms) to wait before stopping polling.\",\"start\":146,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,375]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":282,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { bundlerClient } from './client'\\n// ---cut---\\nconst receipt = await bundlerClient.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n timeout: 30_000 // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const receipt: {\\n actualGasCost: bigint;\\n actualGasUsed: bigint;\\n entryPoint: Address;\\n logs: Log[];\\n nonce: bigint;\\n paymaster?: `0x${string}` | undefined;\\n reason?: string | undefined | undefined;\\n receipt: TransactionReceipt<...>;\\n sender: Address;\\n success: boolean;\\n userOpHash: Hash;\\n}\",\"start\":6,\"length\":7,\"target\":\"receipt\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\\nimport bundlerClient\",\"start\":22,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) waitForUserOperationReceipt: (parameters: WaitForUserOperationReceiptParameters) => Promise\",\"docs\":\"Waits for the User Operation to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the User Operation receipt.\\n\\n- Docs: https://viem.sh/docs/actions/bundler/waitForUserOperationReceipt\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForUserOperationReceiptParameters}\"],[\"returns\",\"The receipt. {@link WaitForUserOperationReceiptReturnType}\"],[\"example\",\"import { createBundlerClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createBundlerClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst receipt = await client.waitForUserOperationReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":36,\"length\":27,\"target\":\"waitForUserOperationReceipt\",\"line\":0,\"character\":36},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the User Operation.\",\"start\":68,\"length\":4,\"target\":\"hash\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"Optional timeout (in ms) to wait before stopping polling.\",\"start\":146,\"length\":7,\"target\":\"timeout\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d270cdd50c333e01a9ea0d393d9625cadd1505ffc8cc000f216cf37cb0ae35f2.json b/site/.cache/twoslash.d270cdd50c333e01a9ea0d393d9625cadd1505ffc8cc000f216cf37cb0ae35f2.json index e1c963e74d..83b4348ab8 100644 --- a/site/.cache/twoslash.d270cdd50c333e01a9ea0d393d9625cadd1505ffc8cc000f216cf37cb0ae35f2.json +++ b/site/.cache/twoslash.d270cdd50c333e01a9ea0d393d9625cadd1505ffc8cc000f216cf37cb0ae35f2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":158,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":158,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":158,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst success = await walletClient.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n});\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":6,\"length\":7,\"target\":\"success\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":35,\"length\":10,\"target\":\"watchAsset\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":50,\"length\":4,\"target\":\"type\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":67,\"length\":7,\"target\":\"options\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":82,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":158,\"length\":8,\"target\":\"decimals\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":176,\"length\":6,\"target\":\"symbol\",\"line\":5,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d27a543e2dc802b9fe5df07b58e79e680d7ad024cfe9bfca437f7e4eda011c15.json b/site/.cache/twoslash.d27a543e2dc802b9fe5df07b58e79e680d7ad024cfe9bfca437f7e4eda011c15.json deleted file mode 100644 index c098fac165..0000000000 --- a/site/.cache/twoslash.d27a543e2dc802b9fe5df07b58e79e680d7ad024cfe9bfca437f7e4eda011c15.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n interval: 5_000\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":81,\"length\":8,\"target\":\"interval\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n interval: 5_000\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The polling interval (in ms) at which the ranker should ping the RPC URL.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":81,\"length\":8,\"target\":\"interval\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d301ddcd3a44a3f50857724c27ca72bb6140095af0fd587578caa909014fd6e5.json b/site/.cache/twoslash.d301ddcd3a44a3f50857724c27ca72bb6140095af0fd587578caa909014fd6e5.json index ebc65373d3..7b05208722 100644 --- a/site/.cache/twoslash.d301ddcd3a44a3f50857724c27ca72bb6140095af0fd587578caa909014fd6e5.json +++ b/site/.cache/twoslash.d301ddcd3a44a3f50857724c27ca72bb6140095af0fd587578caa909014fd6e5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { \\n createClient, \\n http,\\n formatTransactionRequest,\\n type CallParameters\\n} from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst debugClient = createClient({ \\n chain: mainnet,\\n transport: http(),\\n}).extend(client => ({\\n // ...\\n async traceCall(args: CallParameters) {\\n return client.request({\\n method: 'debug_traceCall',\\n params: [formatTransactionRequest(args), 'latest', {}]\\n })\\n },\\n // ...\\n}))\\n\\nconst response = await debugClient.traceCall({\\n account: '0xdeadbeef29292929192939494959594933929292',\\n to: '0xde929f939d939d393f939393f93939f393929023',\\n gas: 69420n,\\n data: '0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810'\\n})\\n// { failed: false, gas: 69420, returnValue: '...', structLogs: [] }\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":12,\"length\":12,\"target\":\"createClient\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":37,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":70,\"length\":14,\"target\":\"CallParameters\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":108,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":144,\"length\":11,\"target\":\"debugClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":158,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":205,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: <{\\n readonly traceCall: (args: CallParameters) => Promise;\\n}>(fn: (client: Client<...>) => {\\n readonly traceCall: (args: CallParameters) => Promise;\\n}) => Client<...>\",\"start\":216,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":223,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":253,\"length\":9,\"target\":\"traceCall\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":263,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":269,\"length\":14,\"target\":\"CallParameters\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":298,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) method: \\\"debug_traceCall\\\"\",\"start\":321,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) params: [RpcTransactionRequest, \\\"latest\\\", {}]\",\"start\":354,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":363,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":388,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":40},{\"type\":\"hover\",\"text\":\"const response: string | boolean | void | readonly `0x${string}`[] | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | ... 16 more ... | null\",\"start\":441,\"length\":8,\"target\":\"response\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":458,\"length\":11,\"target\":\"debugClient\",\"line\":22,\"character\":23},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":470,\"length\":9,\"target\":\"traceCall\",\"line\":22,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":484,\"length\":7,\"target\":\"account\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xde929f939d939d393f939393f93939f393929023\\\"\",\"start\":541,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":593,\"length\":3,\"target\":\"gas\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810\\\"\",\"start\":608,\"length\":4,\"target\":\"data\",\"line\":26,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { \\n createClient, \\n http,\\n formatTransactionRequest,\\n type CallParameters\\n} from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst debugClient = createClient({ \\n chain: mainnet,\\n transport: http(),\\n}).extend(client => ({\\n // ...\\n async traceCall(args: CallParameters) {\\n return client.request({\\n method: 'debug_traceCall',\\n params: [formatTransactionRequest(args), 'latest', {}]\\n })\\n },\\n // ...\\n}))\\n\\nconst response = await debugClient.traceCall({\\n account: '0xdeadbeef29292929192939494959594933929292',\\n to: '0xde929f939d939d393f939393f93939f393929023',\\n gas: 69420n,\\n data: '0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810'\\n})\\n// { failed: false, gas: 69420, returnValue: '...', structLogs: [] }\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":12,\"length\":12,\"target\":\"createClient\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":37,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":70,\"length\":14,\"target\":\"CallParameters\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":108,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":144,\"length\":11,\"target\":\"debugClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":158,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":205,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: <{\\n readonly traceCall: (args: CallParameters) => Promise;\\n}>(fn: (client: Client<...>) => {\\n readonly traceCall: (args: CallParameters) => Promise;\\n}) => Client<...>\",\"start\":216,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":223,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":253,\"length\":9,\"target\":\"traceCall\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":263,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":269,\"length\":14,\"target\":\"CallParameters\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":298,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) method: \\\"debug_traceCall\\\"\",\"start\":321,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) params: [RpcTransactionRequest, \\\"latest\\\", {}]\",\"start\":354,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":363,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":388,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":40},{\"type\":\"hover\",\"text\":\"const response: string | boolean | void | readonly `0x${string}`[] | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | ... 16 more ... | null\",\"start\":441,\"length\":8,\"target\":\"response\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":458,\"length\":11,\"target\":\"debugClient\",\"line\":22,\"character\":23},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":470,\"length\":9,\"target\":\"traceCall\",\"line\":22,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":484,\"length\":7,\"target\":\"account\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xde929f939d939d393f939393f93939f393929023\\\"\",\"start\":541,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":593,\"length\":3,\"target\":\"gas\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810\\\"\",\"start\":608,\"length\":4,\"target\":\"data\",\"line\":26,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { \\n createClient, \\n http,\\n formatTransactionRequest,\\n type CallParameters\\n} from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst debugClient = createClient({ \\n chain: mainnet,\\n transport: http(),\\n}).extend(client => ({\\n // ...\\n async traceCall(args: CallParameters) {\\n return client.request({\\n method: 'debug_traceCall',\\n params: [formatTransactionRequest(args), 'latest', {}]\\n })\\n },\\n // ...\\n}))\\n\\nconst response = await debugClient.traceCall({\\n account: '0xdeadbeef29292929192939494959594933929292',\\n to: '0xde929f939d939d393f939393f93939f393929023',\\n gas: 69420n,\\n data: '0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810'\\n})\\n// { failed: false, gas: 69420, returnValue: '...', structLogs: [] }\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":12,\"length\":12,\"target\":\"createClient\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":37,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":70,\"length\":14,\"target\":\"CallParameters\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":108,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":144,\"length\":11,\"target\":\"debugClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":158,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":205,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: <{\\n readonly traceCall: (args: CallParameters) => Promise;\\n}>(fn: (client: Client<...>) => {\\n readonly traceCall: (args: CallParameters) => Promise;\\n}) => Client<...>\",\"start\":216,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":223,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":253,\"length\":9,\"target\":\"traceCall\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":263,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":269,\"length\":14,\"target\":\"CallParameters\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":298,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) method: \\\"debug_traceCall\\\"\",\"start\":321,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) params: [RpcTransactionRequest, \\\"latest\\\", {}]\",\"start\":354,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":363,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":388,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":40},{\"type\":\"hover\",\"text\":\"const response: string | boolean | void | readonly `0x${string}`[] | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | ... 17 more ... | null\",\"start\":441,\"length\":8,\"target\":\"response\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":458,\"length\":11,\"target\":\"debugClient\",\"line\":22,\"character\":23},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":470,\"length\":9,\"target\":\"traceCall\",\"line\":22,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":484,\"length\":7,\"target\":\"account\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xde929f939d939d393f939393f93939f393929023\\\"\",\"start\":541,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":593,\"length\":3,\"target\":\"gas\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810\\\"\",\"start\":608,\"length\":4,\"target\":\"data\",\"line\":26,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { \\n createClient, \\n http,\\n formatTransactionRequest,\\n type CallParameters\\n} from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst debugClient = createClient({ \\n chain: mainnet,\\n transport: http(),\\n}).extend(client => ({\\n // ...\\n async traceCall(args: CallParameters) {\\n return client.request({\\n method: 'debug_traceCall',\\n params: [formatTransactionRequest(args), 'latest', {}]\\n })\\n },\\n // ...\\n}))\\n\\nconst response = await debugClient.traceCall({\\n account: '0xdeadbeef29292929192939494959594933929292',\\n to: '0xde929f939d939d393f939393f93939f393929023',\\n gas: 69420n,\\n data: '0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810'\\n})\\n// { failed: false, gas: 69420, returnValue: '...', structLogs: [] }\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createClient(parameters: ClientConfig): Prettify> : accountOrAddress, rpcSchema>>\\nimport createClient\",\"start\":12,\"length\":12,\"target\":\"createClient\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":37,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":70,\"length\":14,\"target\":\"CallParameters\",\"line\":4,\"character\":7},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":108,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":144,\"length\":11,\"target\":\"debugClient\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":158,\"length\":12,\"target\":\"createClient\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":176,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":183,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":194,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":205,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: <{\\n readonly traceCall: (args: CallParameters) => Promise;\\n}>(fn: (client: Client<...>) => {\\n readonly traceCall: (args: CallParameters) => Promise;\\n}) => Client<...>\",\"start\":216,\"length\":6,\"target\":\"extend\",\"line\":11,\"character\":3},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":223,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":10},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":253,\"length\":9,\"target\":\"traceCall\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":263,\"length\":4,\"target\":\"args\",\"line\":13,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) type CallParameters = UnionOmit, \\\"from\\\"> & ({\\n ...;\\n} & ({\\n ...;\\n} | {\\n ...;\\n}))\\nimport CallParameters\",\"start\":269,\"length\":14,\"target\":\"CallParameters\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(parameter) client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n} | undefined>\",\"start\":298,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"web3_clientVersion\\\";\\n params?: undefined | undefined;\\n} | ... 71 more ... | {\\n ...;\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"docs\":\"Request function wrapped with friendly error handling\",\"start\":305,\"length\":7,\"target\":\"request\",\"line\":14,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) method: \\\"debug_traceCall\\\"\",\"start\":321,\"length\":6,\"target\":\"method\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) params: [RpcTransactionRequest, \\\"latest\\\", {}]\",\"start\":354,\"length\":6,\"target\":\"params\",\"line\":16,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) formatTransactionRequest(request: ExactPartial): RpcTransactionRequest\\nimport formatTransactionRequest\",\"start\":363,\"length\":24,\"target\":\"formatTransactionRequest\",\"line\":16,\"character\":15},{\"type\":\"hover\",\"text\":\"(parameter) args: CallParameters\",\"start\":388,\"length\":4,\"target\":\"args\",\"line\":16,\"character\":40},{\"type\":\"hover\",\"text\":\"const response: string | boolean | void | readonly `0x${string}`[] | `0x${string}`[] | {\\n accessList: AccessList;\\n gasUsed: Quantity;\\n} | RpcFeeHistory | RpcBlock | ... 17 more ... | null\",\"start\":441,\"length\":8,\"target\":\"response\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"const debugClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\",\"start\":458,\"length\":11,\"target\":\"debugClient\",\"line\":22,\"character\":23},{\"type\":\"hover\",\"text\":\"(method) traceCall(args: CallParameters): Promise\",\"start\":470,\"length\":9,\"target\":\"traceCall\",\"line\":22,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":484,\"length\":7,\"target\":\"account\",\"line\":23,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xde929f939d939d393f939393f93939f393929023\\\"\",\"start\":541,\"length\":2,\"target\":\"to\",\"line\":24,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":593,\"length\":3,\"target\":\"gas\",\"line\":25,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xf00d4b5d00000000000000000000000001291230982139282304923482304912923823920000000000000000000000001293123098123928310239129839291010293810\\\"\",\"start\":608,\"length\":4,\"target\":\"data\",\"line\":26,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d33036ccfce5c37072bd67f6b217868b8ddd2b6022590d43589bc5ca590f21e2.json b/site/.cache/twoslash.d33036ccfce5c37072bd67f6b217868b8ddd2b6022590d43589bc5ca590f21e2.json new file mode 100644 index 0000000000..9edde28c60 --- /dev/null +++ b/site/.cache/twoslash.d33036ccfce5c37072bd67f6b217868b8ddd2b6022590d43589bc5ca590f21e2.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":117,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,741]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":649,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n chainId: 8453, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const capabilities: any\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"any\",\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account: string\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":117,\"length\":7,\"target\":\"chainId\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d34685a034aa28add185e95d4436f1c9803b4e6961968bcf0db1ee64f7f14ec4.json b/site/.cache/twoslash.d34685a034aa28add185e95d4436f1c9803b4e6961968bcf0db1ee64f7f14ec4.json index 942f0d9c89..438359ca8b 100644 --- a/site/.cache/twoslash.d34685a034aa28add185e95d4436f1c9803b4e6961968bcf0db1ee64f7f14ec4.json +++ b/site/.cache/twoslash.d34685a034aa28add185e95d4436f1c9803b4e6961968bcf0db1ee64f7f14ec4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData, parseAbi } from 'viem'\\nimport { owner, publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Address of the contract deployer (e.g. Smart Account Factory).\\n factory: '0xE8Df82fA4E10e6A12a9Dab552bceA2acd26De9bb',\\n\\n // Function to execute on the factory to deploy the contract.\\n factoryData: encodeFunctionData({\\n abi: parseAbi(['function createAccount(address owner, uint256 salt)']),\\n functionName: 'createAccount',\\n args: [owner, 0n],\\n }),\\n\\n // Function to call on the contract (e.g. Smart Account contract).\\n data: encodeFunctionData({\\n abi: parseAbi(['function entryPoint() view returns (address)']),\\n functionName: 'entryPoint'\\n }),\\n\\n // Address of the contract.\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":61,\"length\":5,\"target\":\"owner\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":106,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":119,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":132,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":209,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":331,\"length\":11,\"target\":\"factoryData\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":344,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n readonly name: \\\"salt\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":369,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function createAccount(address owner, uint256 salt)\\\"]>(signatures: [\\\"function createAccount(address owner, uint256 salt)\\\"]): readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":374,\"length\":8,\"target\":\"parseAbi\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"createAccount\\\" | undefined\",\"start\":445,\"length\":12,\"target\":\"functionName\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":480,\"length\":4,\"target\":\"args\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":487,\"length\":5,\"target\":\"owner\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":577,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":583,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":608,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":613,\"length\":8,\"target\":\"parseAbi\",\"line\":16,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"entryPoint\\\" | undefined\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":743,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseAbi } from 'viem'\\nimport { owner, publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Address of the contract deployer (e.g. Smart Account Factory).\\n factory: '0xE8Df82fA4E10e6A12a9Dab552bceA2acd26De9bb',\\n\\n // Function to execute on the factory to deploy the contract.\\n factoryData: encodeFunctionData({\\n abi: parseAbi(['function createAccount(address owner, uint256 salt)']),\\n functionName: 'createAccount',\\n args: [owner, 0n],\\n }),\\n\\n // Function to call on the contract (e.g. Smart Account contract).\\n data: encodeFunctionData({\\n abi: parseAbi(['function entryPoint() view returns (address)']),\\n functionName: 'entryPoint'\\n }),\\n\\n // Address of the contract.\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":61,\"length\":5,\"target\":\"owner\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":106,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":119,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":132,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":209,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":331,\"length\":11,\"target\":\"factoryData\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":344,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n readonly name: \\\"salt\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":369,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function createAccount(address owner, uint256 salt)\\\"]>(signatures: [\\\"function createAccount(address owner, uint256 salt)\\\"]): readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":374,\"length\":8,\"target\":\"parseAbi\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"createAccount\\\" | undefined\",\"start\":445,\"length\":12,\"target\":\"functionName\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":480,\"length\":4,\"target\":\"args\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":487,\"length\":5,\"target\":\"owner\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":577,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":583,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":608,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":613,\"length\":8,\"target\":\"parseAbi\",\"line\":16,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"entryPoint\\\" | undefined\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":743,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { encodeFunctionData, parseAbi } from 'viem'\\nimport { owner, publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Address of the contract deployer (e.g. Smart Account Factory).\\n factory: '0xE8Df82fA4E10e6A12a9Dab552bceA2acd26De9bb',\\n\\n // Function to execute on the factory to deploy the contract.\\n factoryData: encodeFunctionData({\\n abi: parseAbi(['function createAccount(address owner, uint256 salt)']),\\n functionName: 'createAccount',\\n args: [owner, 0n],\\n }),\\n\\n // Function to call on the contract (e.g. Smart Account contract).\\n data: encodeFunctionData({\\n abi: parseAbi(['function entryPoint() view returns (address)']),\\n functionName: 'entryPoint'\\n }),\\n\\n // Address of the contract.\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":61,\"length\":5,\"target\":\"owner\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":106,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":119,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":132,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":209,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":331,\"length\":11,\"target\":\"factoryData\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":344,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n readonly name: \\\"salt\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":369,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function createAccount(address owner, uint256 salt)\\\"]>(signatures: [\\\"function createAccount(address owner, uint256 salt)\\\"]): readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":374,\"length\":8,\"target\":\"parseAbi\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"createAccount\\\" | undefined\",\"start\":445,\"length\":12,\"target\":\"functionName\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":480,\"length\":4,\"target\":\"args\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":487,\"length\":5,\"target\":\"owner\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":577,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":583,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":608,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":613,\"length\":8,\"target\":\"parseAbi\",\"line\":16,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"entryPoint\\\" | undefined\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":743,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,936]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":632,\"end\":660},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":729,\"end\":754}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const owner = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":268,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":469,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":897,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseAbi } from 'viem'\\nimport { owner, publicClient } from './config'\\n\\nconst data = await publicClient.call({\\n // Address of the contract deployer (e.g. Smart Account Factory).\\n factory: '0xE8Df82fA4E10e6A12a9Dab552bceA2acd26De9bb',\\n\\n // Function to execute on the factory to deploy the contract.\\n factoryData: encodeFunctionData({\\n abi: parseAbi(['function createAccount(address owner, uint256 salt)']),\\n functionName: 'createAccount',\\n args: [owner, 0n],\\n }),\\n\\n // Function to call on the contract (e.g. Smart Account contract).\\n data: encodeFunctionData({\\n abi: parseAbi(['function entryPoint() view returns (address)']),\\n functionName: 'entryPoint'\\n }),\\n\\n // Address of the contract.\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":29,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":61,\"length\":5,\"target\":\"owner\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":68,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":16},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":106,\"length\":4,\"target\":\"data\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":119,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":132,\"length\":4,\"target\":\"call\",\"line\":3,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) factory?: `0x${string}` | undefined\",\"docs\":\"Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc).\",\"start\":209,\"length\":7,\"target\":\"factory\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData?: `0x${string}` | undefined\",\"docs\":\"Calldata to execute on the factory to deploy the contract.\",\"start\":331,\"length\":11,\"target\":\"factoryData\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":344,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n }, {\\n readonly type: \\\"uint256\\\";\\n readonly name: \\\"salt\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":369,\"length\":3,\"target\":\"abi\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function createAccount(address owner, uint256 salt)\\\"]>(signatures: [\\\"function createAccount(address owner, uint256 salt)\\\"]): readonly [{\\n readonly name: \\\"createAccount\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":374,\"length\":8,\"target\":\"parseAbi\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"createAccount\\\" | undefined\",\"start\":445,\"length\":12,\"target\":\"functionName\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: readonly [`0x${string}`, bigint]\",\"start\":480,\"length\":4,\"target\":\"args\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"import owner\",\"start\":487,\"length\":5,\"target\":\"owner\",\"line\":11,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":577,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: EncodeFunctionDataParameters<...>): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":583,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [{\\n readonly type: \\\"address\\\";\\n }];\\n}]\",\"start\":608,\"length\":3,\"target\":\"abi\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function entryPoint() view returns (address)\\\"]>(signatures: [\\\"function entryPoint() view returns (address)\\\"]): readonly [{\\n readonly name: \\\"entryPoint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"view\\\";\\n readonly inputs: readonly [];\\n readonly outputs: readonly [...];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":613,\"length\":8,\"target\":\"parseAbi\",\"line\":16,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) functionName?: `0x${string}` | \\\"entryPoint\\\" | undefined\",\"start\":677,\"length\":12,\"target\":\"functionName\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":743,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d3b6b833e79878ae2b62f25f6aa509840ad8da61fbb0c3053b1e23ca08958f1c.json b/site/.cache/twoslash.d3b6b833e79878ae2b62f25f6aa509840ad8da61fbb0c3053b1e23ca08958f1c.json index 74676dc5c8..510b982735 100644 --- a/site/.cache/twoslash.d3b6b833e79878ae2b62f25f6aa509840ad8da61fbb0c3053b1e23ca08958f1c.json +++ b/site/.cache/twoslash.d3b6b833e79878ae2b62f25f6aa509840ad8da61fbb0c3053b1e23ca08958f1c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchPendingTransactions( // [!code focus:99]\\n { onTransactions: hashes => console.log(hashes) }\\n)\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":70,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":120,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":136,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":146,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":154,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":158,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42},{\"type\":\"tag\",\"name\":\"log\",\"start\":170,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...']\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> ['0x...', '0x...']\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...', ...]\",\"line\":8,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[481,525],[450,480],[410,449],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...', '0x...']\",\"start\":410,\"end\":449},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...']\",\"start\":450,\"end\":480},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...', '0x...', ...]\",\"start\":481,\"end\":525}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchPendingTransactions( // [!code focus:99]\\n { onTransactions: hashes => console.log(hashes) }\\n)\\n// @log: > ['0x...', '0x...', '0x...']\\n\\n// @log: > ['0x...', '0x...']\\n\\n// @log: > ['0x...', '0x...', '0x...', ...]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":70,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":120,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":136,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":146,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":154,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":158,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":170,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...']\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> ['0x...', '0x...']\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...', ...]\",\"line\":8,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchPendingTransactions( // [!code focus:99]\\n { onTransactions: hashes => console.log(hashes) }\\n)\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":70,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":120,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":136,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":146,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":154,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":158,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42},{\"type\":\"tag\",\"name\":\"log\",\"start\":170,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...']\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> ['0x...', '0x...']\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...', ...]\",\"line\":8,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[481,525],[450,480],[410,449],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...', '0x...']\",\"start\":410,\"end\":449},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...']\",\"start\":450,\"end\":480},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> ['0x...', '0x...', '0x...', ...]\",\"start\":481,\"end\":525}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchPendingTransactions( // [!code focus:99]\\n { onTransactions: hashes => console.log(hashes) }\\n)\\n// @log: > ['0x...', '0x...', '0x...']\\n\\n// @log: > ['0x...', '0x...']\\n\\n// @log: > ['0x...', '0x...', '0x...', ...]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchPendingTransactionsReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchPendingTransactions: (args: WatchPendingTransactionsParameters>) => WatchPendingTransactionsReturnType\",\"docs\":\"Watches and returns pending transaction hashes.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\\n- JSON-RPC Methods:\\n - When `poll: true`\\n - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\\n - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newPendingTransactions\\\"` event.\",\"tags\":[[\"remarks\",\"This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\"],[\"param\",\"args - {@link WatchPendingTransactionsParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchPendingTransactions({\\n onTransactions: (hashes) => console.log(hashes),\\n})\"]],\"start\":70,\"length\":24,\"target\":\"watchPendingTransactions\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onTransactions: OnTransactionsFn\",\"docs\":\"The callback to call when new transactions are received.\",\"start\":120,\"length\":14,\"target\":\"onTransactions\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":136,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":146,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":154,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":38},{\"type\":\"hover\",\"text\":\"(parameter) hashes: OnTransactionsParameter\",\"start\":158,\"length\":6,\"target\":\"hashes\",\"line\":3,\"character\":42}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":170,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...']\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> ['0x...', '0x...']\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> ['0x...', '0x...', '0x...', ...]\",\"line\":8,\"character\":0}]}}" diff --git a/site/.cache/twoslash.d427263a6d792f8cb1df4fa2e5a9e53a2c4a998f5a99a8c3d340ab08b566cafd.json b/site/.cache/twoslash.d427263a6d792f8cb1df4fa2e5a9e53a2c4a998f5a99a8c3d340ab08b566cafd.json index 4664467509..611bec0c9b 100644 --- a/site/.cache/twoslash.d427263a6d792f8cb1df4fa2e5a9e53a2c4a998f5a99a8c3d340ab08b566cafd.json +++ b/site/.cache/twoslash.d427263a6d792f8cb1df4fa2e5a9e53a2c4a998f5a99a8c3d340ab08b566cafd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n pollingInterval: 12_000, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":56,\"length\":13,\"target\":\"onBlockNumber\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":71,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":86,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":94,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":98,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"start\":116,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n pollingInterval: 12_000, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":56,\"length\":13,\"target\":\"onBlockNumber\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":71,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":86,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":94,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":98,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"start\":116,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n pollingInterval: 12_000, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":56,\"length\":13,\"target\":\"onBlockNumber\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":71,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":86,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":94,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":98,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"start\":116,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n pollingInterval: 12_000, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":29,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":56,\"length\":13,\"target\":\"onBlockNumber\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":71,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":86,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":94,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":98,\"length\":11,\"target\":\"blockNumber\",\"line\":2,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"start\":116,\"length\":15,\"target\":\"pollingInterval\",\"line\":3,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d42924c40c1f184ef7927b4c03015975f2a274b726a32f23d79c9b6ac26cfc22.json b/site/.cache/twoslash.d42924c40c1f184ef7927b4c03015975f2a274b726a32f23d79c9b6ac26cfc22.json index 6c89bcac89..00aceb4383 100644 --- a/site/.cache/twoslash.d42924c40c1f184ef7927b4c03015975f2a274b726a32f23d79c9b6ac26cfc22.json +++ b/site/.cache/twoslash.d42924c40c1f184ef7927b4c03015975f2a274b726a32f23d79c9b6ac26cfc22.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseGwei, stringToHex, toBlobs } from 'viem'\\nimport { account, client } from './client'\\nimport { kzg } from './kzg'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n\\nconst hash = await client.sendTransaction({\\n blobs,\\n kzg,\\n maxFeePerBlobGas: parseGwei('30'),\\n to: '0x0000000000000000000000000000000000000000',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":20,\"length\":11,\"target\":\"stringToHex\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(alias) function toBlobs(parameters: ToBlobsParameters): ToBlobsReturnType\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":33,\"length\":7,\"target\":\"toBlobs\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":73,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const kzg: Kzg\\nimport kzg\",\"start\":107,\"length\":3,\"target\":\"kzg\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const blobs: readonly `0x${string}`[]\",\"start\":133,\"length\":5,\"target\":\"blobs\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toBlobs<`0x${string}`, \\\"hex\\\">(parameters: ToBlobsParameters<`0x${string}`, \\\"hex\\\">): readonly `0x${string}`[]\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":141,\"length\":7,\"target\":\"toBlobs\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}` | ByteArray\",\"docs\":\"Data to transform to a blob.\",\"start\":151,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(alias) stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":157,\"length\":11,\"target\":\"stringToHex\",\"line\":4,\"character\":30},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":194,\"length\":4,\"target\":\"hash\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":207,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":214,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blobs: readonly `0x${string}`[]\",\"start\":234,\"length\":5,\"target\":\"blobs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) kzg: Kzg\",\"docs\":\"KZG implementation\",\"start\":243,\"length\":3,\"target\":\"kzg\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerBlobGas: bigint\",\"start\":250,\"length\":16,\"target\":\"maxFeePerBlobGas\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":268,\"length\":9,\"target\":\"parseGwei\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x0000000000000000000000000000000000000000\\\"\",\"start\":287,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,559]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":22,\"end\":35}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"kzg.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/kzg.ts\",\"content\":\"// @filename: kzg.ts\\n\\n// @noErrors\\nimport * as cKzg from 'c-kzg'\\nimport { setupKzg } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nexport const kzg = setupKzg(cKzg, mainnetTrustedSetupPath)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":209,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseGwei, stringToHex, toBlobs } from 'viem'\\nimport { account, client } from './client'\\nimport { kzg } from './kzg'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n\\nconst hash = await client.sendTransaction({\\n blobs,\\n kzg,\\n maxFeePerBlobGas: parseGwei('30'),\\n to: '0x0000000000000000000000000000000000000000',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":20,\"length\":11,\"target\":\"stringToHex\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(alias) function toBlobs(parameters: ToBlobsParameters): ToBlobsReturnType\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":33,\"length\":7,\"target\":\"toBlobs\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":73,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const kzg: Kzg\\nimport kzg\",\"start\":107,\"length\":3,\"target\":\"kzg\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const blobs: readonly `0x${string}`[]\",\"start\":133,\"length\":5,\"target\":\"blobs\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toBlobs<`0x${string}`, \\\"hex\\\">(parameters: ToBlobsParameters<`0x${string}`, \\\"hex\\\">): readonly `0x${string}`[]\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":141,\"length\":7,\"target\":\"toBlobs\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}` | ByteArray\",\"docs\":\"Data to transform to a blob.\",\"start\":151,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(alias) stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":157,\"length\":11,\"target\":\"stringToHex\",\"line\":4,\"character\":30},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":194,\"length\":4,\"target\":\"hash\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 27 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":207,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":214,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blobs: readonly `0x${string}`[]\",\"start\":234,\"length\":5,\"target\":\"blobs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) kzg: Kzg\",\"docs\":\"KZG implementation\",\"start\":243,\"length\":3,\"target\":\"kzg\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerBlobGas: bigint\",\"start\":250,\"length\":16,\"target\":\"maxFeePerBlobGas\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":268,\"length\":9,\"target\":\"parseGwei\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x0000000000000000000000000000000000000000\\\"\",\"start\":287,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseGwei, stringToHex, toBlobs } from 'viem'\\nimport { account, client } from './client'\\nimport { kzg } from './kzg'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n\\nconst hash = await client.sendTransaction({\\n blobs,\\n kzg,\\n maxFeePerBlobGas: parseGwei('30'),\\n to: '0x0000000000000000000000000000000000000000',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":20,\"length\":11,\"target\":\"stringToHex\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(alias) function toBlobs(parameters: ToBlobsParameters): ToBlobsReturnType\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":33,\"length\":7,\"target\":\"toBlobs\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":73,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const kzg: Kzg\\nimport kzg\",\"start\":107,\"length\":3,\"target\":\"kzg\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const blobs: readonly `0x${string}`[]\",\"start\":133,\"length\":5,\"target\":\"blobs\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toBlobs<`0x${string}`, \\\"hex\\\">(parameters: ToBlobsParameters<`0x${string}`, \\\"hex\\\">): readonly `0x${string}`[]\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":141,\"length\":7,\"target\":\"toBlobs\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}` | ByteArray\",\"docs\":\"Data to transform to a blob.\",\"start\":151,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(alias) stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":157,\"length\":11,\"target\":\"stringToHex\",\"line\":4,\"character\":30},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":194,\"length\":4,\"target\":\"hash\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":207,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":214,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blobs: readonly `0x${string}`[]\",\"start\":234,\"length\":5,\"target\":\"blobs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) kzg: Kzg\",\"docs\":\"KZG implementation\",\"start\":243,\"length\":3,\"target\":\"kzg\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerBlobGas: bigint\",\"start\":250,\"length\":16,\"target\":\"maxFeePerBlobGas\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":268,\"length\":9,\"target\":\"parseGwei\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x0000000000000000000000000000000000000000\\\"\",\"start\":287,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,559]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":22,\"end\":35}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"kzg.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/kzg.ts\",\"content\":\"// @filename: kzg.ts\\n\\n// @noErrors\\nimport * as cKzg from 'c-kzg'\\nimport { setupKzg } from 'viem'\\nimport { mainnetTrustedSetupPath } from 'viem/node'\\n\\nexport const kzg = setupKzg(cKzg, mainnetTrustedSetupPath)\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":209,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":520,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseGwei, stringToHex, toBlobs } from 'viem'\\nimport { account, client } from './client'\\nimport { kzg } from './kzg'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n\\nconst hash = await client.sendTransaction({\\n blobs,\\n kzg,\\n maxFeePerBlobGas: parseGwei('30'),\\n to: '0x0000000000000000000000000000000000000000',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":20,\"length\":11,\"target\":\"stringToHex\",\"line\":0,\"character\":20},{\"type\":\"hover\",\"text\":\"(alias) function toBlobs(parameters: ToBlobsParameters): ToBlobsReturnType\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":33,\"length\":7,\"target\":\"toBlobs\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":73,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"(alias) const kzg: Kzg\\nimport kzg\",\"start\":107,\"length\":3,\"target\":\"kzg\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const blobs: readonly `0x${string}`[]\",\"start\":133,\"length\":5,\"target\":\"blobs\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toBlobs<`0x${string}`, \\\"hex\\\">(parameters: ToBlobsParameters<`0x${string}`, \\\"hex\\\">): readonly `0x${string}`[]\\nimport toBlobs\",\"docs\":\"Transforms arbitrary data to blobs.\",\"tags\":[[\"example\",\"```ts\\nimport { toBlobs, stringToHex } from 'viem'\\n\\nconst blobs = toBlobs({ data: stringToHex('hello world') })\\n```\"]],\"start\":141,\"length\":7,\"target\":\"toBlobs\",\"line\":4,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}` | ByteArray\",\"docs\":\"Data to transform to a blob.\",\"start\":151,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":24},{\"type\":\"hover\",\"text\":\"(alias) stringToHex(value_: string, opts?: StringToHexOpts): Hex\\nimport stringToHex\",\"docs\":\"Encodes a UTF-8 string into a hex string\\n\\n- Docs: https://viem.sh/docs/utilities/toHex#stringtohex\",\"tags\":[[\"param\",\"value Value to encode.\"],[\"param\",\"opts Options.\"],[\"returns\",\"Hex value.\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!')\\n// '0x48656c6c6f20576f726c6421'\"],[\"example\",\"import { stringToHex } from 'viem'\\nconst data = stringToHex('Hello World!', { size: 32 })\\n// '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\"]],\"start\":157,\"length\":11,\"target\":\"stringToHex\",\"line\":4,\"character\":30},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":194,\"length\":4,\"target\":\"hash\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport client\",\"start\":207,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly blobs: readonly `0x${string}`[];\\n readonly kzg: Kzg;\\n readonly maxFeePerBlobGas: bigint;\\n readonly to: \\\"0x0000000000000000000000000000000000000000\\\";\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":214,\"length\":15,\"target\":\"sendTransaction\",\"line\":6,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blobs: readonly `0x${string}`[]\",\"start\":234,\"length\":5,\"target\":\"blobs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) kzg: Kzg\",\"docs\":\"KZG implementation\",\"start\":243,\"length\":3,\"target\":\"kzg\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerBlobGas: bigint\",\"start\":250,\"length\":16,\"target\":\"maxFeePerBlobGas\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":268,\"length\":9,\"target\":\"parseGwei\",\"line\":9,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x0000000000000000000000000000000000000000\\\"\",\"start\":287,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d42eadaaaec4f9288efb5afc02cb75f96285ab2522ac32cd93742a57ddb80054.json b/site/.cache/twoslash.d42eadaaaec4f9288efb5afc02cb75f96285ab2522ac32cd93742a57ddb80054.json index 6d34704ce6..f3ccde35bf 100644 --- a/site/.cache/twoslash.d42eadaaaec4f9288efb5afc02cb75f96285ab2522ac32cd93742a57ddb80054.json +++ b/site/.cache/twoslash.d42eadaaaec4f9288efb5afc02cb75f96285ab2522ac32cd93742a57ddb80054.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":187,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":196,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":219,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":226,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":237,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":248,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":266,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":282,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":337,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":378,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":389,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":187,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":196,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":219,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":226,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":237,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":248,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":266,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":282,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":337,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":378,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":389,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":187,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":196,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":219,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":226,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":237,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":248,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":266,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":282,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":337,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":378,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":389,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":151,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":187,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":196,\"length\":18,\"target\":\"createPublicClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":219,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":226,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":237,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":248,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":266,\"length\":13,\"target\":\"bundlerClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":282,\"length\":19,\"target\":\"createBundlerClient\",\"line\":9,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":337,\"length\":6,\"target\":\"client\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":378,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":389,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d44ba623b904f813c529059e96bb87e2ff44115710e9a8267fd5d37a4cf84927.json b/site/.cache/twoslash.d44ba623b904f813c529059e96bb87e2ff44115710e9a8267fd5d37a4cf84927.json index a8be188ccb..bb2a275202 100644 --- a/site/.cache/twoslash.d44ba623b904f813c529059e96bb87e2ff44115710e9a8267fd5d37a4cf84927.json +++ b/site/.cache/twoslash.d44ba623b904f813c529059e96bb87e2ff44115710e9a8267fd5d37a4cf84927.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":258,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":265,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":370,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":480,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":258,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":265,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":370,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":480,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":258,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":265,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":370,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":480,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') // [!code focus]\\n }, // [!code focus]\\n ] // [!code focus]\\n },\\n {\\n calls: [ // [!code focus]\\n { // [!code focus]\\n data: '0xdeadbeef', // [!code focus]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n }, // [!code focus] \\n ], // [!code focus]\\n },\\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: any;\\n }[];\\n} | {\\n calls: {\\n data: string;\\n to: string;\\n }[];\\n})[]\",\"start\":95,\"length\":7,\"target\":\"batches\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: any;\\n}[]\",\"start\":118,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":258,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"any\",\"start\":265,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n data: string;\\n to: string;\\n}[]\",\"start\":370,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":480,\"length\":2,\"target\":\"to\",\"line\":15,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d4b119547b7933be0d37f6b6c772c0ff2a161219f3cb8fc56053c67a36cda988.json b/site/.cache/twoslash.d4b119547b7933be0d37f6b6c772c0ff2a161219f3cb8fc56053c67a36cda988.json index 73f3f29d85..caeda21d1b 100644 --- a/site/.cache/twoslash.d4b119547b7933be0d37f6b6c772c0ff2a161219f3cb8fc56053c67a36cda988.json +++ b/site/.cache/twoslash.d4b119547b7933be0d37f6b6c772c0ff2a161219f3cb8fc56053c67a36cda988.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":314,\"length\":8,\"target\":\"gasPrice\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":324,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":12}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":314,\"length\":8,\"target\":\"gasPrice\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":324,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":12}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":314,\"length\":8,\"target\":\"gasPrice\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":324,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":12}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n gasPrice: parseGwei('20'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":220,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":247,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":314,\"length\":8,\"target\":\"gasPrice\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":324,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":12}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d4d1f31d7fe2aeea4598736516801f564604bf0f7f8ebc9bbdc5ac82b76d4068.json b/site/.cache/twoslash.d4d1f31d7fe2aeea4598736516801f564604bf0f7f8ebc9bbdc5ac82b76d4068.json index 838edb6316..2182d309e8 100644 --- a/site/.cache/twoslash.d4d1f31d7fe2aeea4598736516801f564604bf0f7f8ebc9bbdc5ac82b76d4068.json +++ b/site/.cache/twoslash.d4d1f31d7fe2aeea4598736516801f564604bf0f7f8ebc9bbdc5ac82b76d4068.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":63,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":73,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":168,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":63,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":73,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":168,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":63,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":73,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":168,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":63,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":73,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":109,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":161,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":168,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d5233690b1ab90f7c805c4ff115e7ce81c1108471b4cf62e0cee5f4b7e896e6d.json b/site/.cache/twoslash.d5233690b1ab90f7c805c4ff115e7ce81c1108471b4cf62e0cee5f4b7e896e6d.json deleted file mode 100644 index 68a84bdc21..0000000000 --- a/site/.cache/twoslash.d5233690b1ab90f7c805c4ff115e7ce81c1108471b4cf62e0cee5f4b7e896e6d.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, // [!code ++]\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":29,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":103,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":146,\"length\":7,\"target\":\"sponsor\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":156,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":228,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":241,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":263,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":282,\"length\":7,\"target\":\"sponsor\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":341,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":361,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":370,\"length\":7,\"target\":\"sponsor\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":395,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":415,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":439,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":464,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":473,\"length\":12,\"target\":\"functionName\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":502,\"length\":4,\"target\":\"args\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":538,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":560,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":620,\"length\":5,\"target\":\"value\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":627,\"length\":10,\"target\":\"parseEther\",\"line\":22,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":678,\"length\":4,\"target\":\"data\",\"line\":25,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":700,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":760,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":767,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":822,\"length\":2,\"target\":\"to\",\"line\":32,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":826,\"length\":12,\"target\":\"walletClient\",\"line\":32,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":839,\"length\":7,\"target\":\"account\",\"line\":32,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":847,\"length\":7,\"target\":\"address\",\"line\":32,\"character\":27}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,2747]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":579,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1158,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1737,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts' \\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const walletClient = createWalletClient({\\n account,\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2129,\"filename\":\"contract.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/contract.ts\",\"content\":\"// @filename: contract.ts\\nexport const abi = [\\n {\\n \\\"type\\\": \\\"function\\\",\\n \\\"name\\\": \\\"execute\\\",\\n \\\"inputs\\\": [\\n {\\n \\\"name\\\": \\\"calls\\\",\\n \\\"type\\\": \\\"tuple[]\\\",\\n \\\"components\\\": [\\n {\\n \\\"name\\\": \\\"data\\\",\\n \\\"type\\\": \\\"bytes\\\",\\n },\\n {\\n \\\"name\\\": \\\"to\\\",\\n \\\"type\\\": \\\"address\\\",\\n },\\n {\\n \\\"name\\\": \\\"value\\\",\\n \\\"type\\\": \\\"uint256\\\",\\n }\\n ]\\n }\\n ],\\n \\\"outputs\\\": [],\\n \\\"stateMutability\\\": \\\"payable\\\"\\n },\\n] as const\\n\\nexport const contractAddress = '0x...'\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":2708,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { encodeFunctionData, parseEther } from 'viem'\\nimport { walletClient } from './config'\\nimport { contractAddress } from './contract'\\n\\nconst sponsor = privateKeyToAccount('0x...') // [!code ++]\\n\\nconst authorization = await walletClient.signAuthorization({\\n contractAddress,\\n sponsor, // [!code ++]\\n})\\n\\nconst hash = await walletClient.sendTransaction({\\n account: sponsor, // [!code ++]\\n authorizationList: [authorization],\\n data: encodeFunctionData({\\n abi,\\n functionName: 'execute',\\n args: [\\n [\\n {\\n data: '0x',\\n to: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n value: parseEther('0.001'),\\n },\\n {\\n data: '0x',\\n to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\\n value: parseEther('0.002'),\\n },\\n ],\\n ]\\n }),\\n to: walletClient.account.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function encodeFunctionData | undefined = undefined>(parameters: EncodeFunctionDataParameters): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":9,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":29,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const contractAddress: \\\"0x...\\\"\\nimport contractAddress\",\"start\":103,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":146,\"length\":7,\"target\":\"sponsor\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":156,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":206,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":228,\"length\":12,\"target\":\"walletClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":241,\"length\":17,\"target\":\"signAuthorization\",\"line\":6,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":263,\"length\":15,\"target\":\"contractAddress\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) sponsor?: true | `0x${string}` | Account | undefined\",\"docs\":\"Whether the EIP-7702 Transaction will be executed by another Account.\\n\\nIf not specified, it will be assumed that the EIP-7702 Transaction will\\nbe executed by the Account that signed the Authorization.\",\"start\":282,\"length\":7,\"target\":\"sponsor\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":315,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":328,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: any;\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: `0x${string}`;\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":341,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":361,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"const sponsor: any\",\"start\":370,\"length\":7,\"target\":\"sponsor\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":395,\"length\":17,\"target\":\"authorizationList\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":415,\"length\":13,\"target\":\"authorization\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: `0x${string}`\",\"start\":433,\"length\":4,\"target\":\"data\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) encodeFunctionData(parameters: any): EncodeFunctionDataReturnType\\nimport encodeFunctionData\",\"start\":439,\"length\":18,\"target\":\"encodeFunctionData\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":464,\"length\":3,\"target\":\"abi\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":473,\"length\":12,\"target\":\"functionName\",\"line\":16,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) args: {\\n data: string;\\n to: string;\\n value: bigint;\\n}[][]\",\"start\":502,\"length\":4,\"target\":\"args\",\"line\":17,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":538,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":560,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":620,\"length\":5,\"target\":\"value\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":627,\"length\":10,\"target\":\"parseEther\",\"line\":22,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":678,\"length\":4,\"target\":\"data\",\"line\":25,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":700,\"length\":2,\"target\":\"to\",\"line\":26,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":760,\"length\":5,\"target\":\"value\",\"line\":27,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":767,\"length\":10,\"target\":\"parseEther\",\"line\":27,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":822,\"length\":2,\"target\":\"to\",\"line\":32,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":826,\"length\":12,\"target\":\"walletClient\",\"line\":32,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) account: {\\n ...;\\n}\",\"docs\":\"The Account of the Client.\",\"start\":839,\"length\":7,\"target\":\"account\",\"line\":32,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":847,\"length\":7,\"target\":\"address\",\"line\":32,\"character\":27}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d5710afa6df13923bc4ccf13ad6e79c4cc2b95cacd99eccd327e1bbd0f966c3a.json b/site/.cache/twoslash.d5710afa6df13923bc4ccf13ad6e79c4cc2b95cacd99eccd327e1bbd0f966c3a.json index 7dde0cc8e7..522cb4829f 100644 --- a/site/.cache/twoslash.d5710afa6df13923bc4ccf13ad6e79c4cc2b95cacd99eccd327e1bbd0f966c3a.json +++ b/site/.cache/twoslash.d5710afa6df13923bc4ccf13ad6e79c4cc2b95cacd99eccd327e1bbd0f966c3a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":61,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":61,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":61,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":61,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d57921266ffc0238cd92b810c978f240341ee9fa26b85d1fb95d2080c217ec31.json b/site/.cache/twoslash.d57921266ffc0238cd92b810c978f240341ee9fa26b85d1fb95d2080c217ec31.json new file mode 100644 index 0000000000..7351236a3e --- /dev/null +++ b/site/.cache/twoslash.d57921266ffc0238cd92b810c978f240341ee9fa26b85d1fb95d2080c217ec31.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":112,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":168,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":193,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n key: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) key: `0x${string}`\",\"start\":112,\"length\":3,\"target\":\"key\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":168,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":193,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d5ea2fc420e2ea1a36dea1d0fe8fcd5a213d6b4b83156baad36ab58e63556917.json b/site/.cache/twoslash.d5ea2fc420e2ea1a36dea1d0fe8fcd5a213d6b4b83156baad36ab58e63556917.json index 035a455170..88f059fb4a 100644 --- a/site/.cache/twoslash.d5ea2fc420e2ea1a36dea1d0fe8fcd5a213d6b4b83156baad36ab58e63556917.json +++ b/site/.cache/twoslash.d5ea2fc420e2ea1a36dea1d0fe8fcd5a213d6b4b83156baad36ab58e63556917.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":214,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d60c2e9c662e63d36dcc295983c084fc6b29c194c42ce32fbf157ce6ea9b3160.json b/site/.cache/twoslash.d60c2e9c662e63d36dcc295983c084fc6b29c194c42ce32fbf157ce6ea9b3160.json index 82dceb4047..359e241796 100644 --- a/site/.cache/twoslash.d60c2e9c662e63d36dcc295983c084fc6b29c194c42ce32fbf157ce6ea9b3160.json +++ b/site/.cache/twoslash.d60c2e9c662e63d36dcc295983c084fc6b29c194c42ce32fbf157ce6ea9b3160.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":824,\"length\":14,\"target\":\"verifierDomain\",\"line\":33,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":863,\"length\":4,\"target\":\"name\",\"line\":34,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":907,\"length\":7,\"target\":\"version\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":942,\"length\":7,\"target\":\"chainId\",\"line\":36,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":975,\"length\":17,\"target\":\"verifyingContract\",\"line\":37,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":824,\"length\":14,\"target\":\"verifierDomain\",\"line\":33,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":863,\"length\":4,\"target\":\"name\",\"line\":34,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":907,\"length\":7,\"target\":\"version\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":942,\"length\":7,\"target\":\"chainId\",\"line\":36,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":975,\"length\":17,\"target\":\"verifyingContract\",\"line\":37,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":824,\"length\":14,\"target\":\"verifierDomain\",\"line\":33,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":863,\"length\":4,\"target\":\"name\",\"line\":34,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":907,\"length\":7,\"target\":\"version\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":942,\"length\":7,\"target\":\"chainId\",\"line\":36,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":975,\"length\":17,\"target\":\"verifyingContract\",\"line\":37,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":824,\"length\":14,\"target\":\"verifierDomain\",\"line\":33,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":863,\"length\":4,\"target\":\"name\",\"line\":34,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":907,\"length\":7,\"target\":\"version\",\"line\":35,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":942,\"length\":7,\"target\":\"chainId\",\"line\":36,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":975,\"length\":17,\"target\":\"verifyingContract\",\"line\":37,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d60cd3635c6d72ba4d4238803171bfc00b61c20fc51899dfe8531a836bbc1201.json b/site/.cache/twoslash.d60cd3635c6d72ba4d4238803171bfc00b61c20fc51899dfe8531a836bbc1201.json new file mode 100644 index 0000000000..5f6c51c670 --- /dev/null +++ b/site/.cache/twoslash.d60cd3635c6d72ba4d4238803171bfc00b61c20fc51899dfe8531a836bbc1201.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":112,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":174,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":199,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ \\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', \\n type: 'address' \\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":112,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":174,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":199,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d667a66f39a1aeec53513d8482d16aabafc4f779f1f573aa2ae6d5a6dfb1294a.json b/site/.cache/twoslash.d667a66f39a1aeec53513d8482d16aabafc4f779f1f573aa2ae6d5a6dfb1294a.json deleted file mode 100644 index 5654d2617e..0000000000 --- a/site/.cache/twoslash.d667a66f39a1aeec53513d8482d16aabafc4f779f1f573aa2ae6d5a6dfb1294a.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d6f6facb45918e790bd30f3c743624c6e433c5bbbc7233301cf2ee480946d28c.json b/site/.cache/twoslash.d6f6facb45918e790bd30f3c743624c6e433c5bbbc7233301cf2ee480946d28c.json index 00fc4e3dc4..02a66e1558 100644 --- a/site/.cache/twoslash.d6f6facb45918e790bd30f3c743624c6e433c5bbbc7233301cf2ee480946d28c.json +++ b/site/.cache/twoslash.d6f6facb45918e790bd30f3c743624c6e433c5bbbc7233301cf2ee480946d28c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: {\\n calls: ({\\n to: string;\\n value: bigint;\\n } | {\\n data: string;\\n to: string;\\n })[];\\n}[]\",\"start\":194,\"length\":7,\"target\":\"batches\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":217,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":306,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":313,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":367,\"length\":5,\"target\":\"calls\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":396,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":456,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":463,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":510,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":540,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: {\\n calls: ({\\n to: string;\\n value: bigint;\\n } | {\\n data: string;\\n to: string;\\n })[];\\n}[]\",\"start\":194,\"length\":7,\"target\":\"batches\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":217,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":306,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":313,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":367,\"length\":5,\"target\":\"calls\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":396,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":456,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":463,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":510,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":540,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: {\\n calls: ({\\n to: string;\\n value: bigint;\\n } | {\\n data: string;\\n to: string;\\n })[];\\n}[]\",\"start\":194,\"length\":7,\"target\":\"batches\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":217,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":306,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":313,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":367,\"length\":5,\"target\":\"calls\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":396,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":456,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":463,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":510,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":540,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('2')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: {\\n calls: ({\\n to: string;\\n value: bigint;\\n } | {\\n data: string;\\n to: string;\\n })[];\\n}[]\",\"start\":194,\"length\":7,\"target\":\"batches\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":217,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":306,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":313,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: ({\\n to: string;\\n value: bigint;\\n} | {\\n data: string;\\n to: string;\\n})[]\",\"start\":367,\"length\":5,\"target\":\"calls\",\"line\":15,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":396,\"length\":2,\"target\":\"to\",\"line\":17,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":456,\"length\":5,\"target\":\"value\",\"line\":18,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":463,\"length\":10,\"target\":\"parseEther\",\"line\":18,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":510,\"length\":4,\"target\":\"data\",\"line\":21,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":540,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d7222f98b670b6d9e07b86ecf3e22c80e57088ada64ab16465f4a54b0b929099.json b/site/.cache/twoslash.d7222f98b670b6d9e07b86ecf3e22c80e57088ada64ab16465f4a54b0b929099.json index 944e674f90..8c14c9f641 100644 --- a/site/.cache/twoslash.d7222f98b670b6d9e07b86ecf3e22c80e57088ada64ab16465f4a54b0b929099.json +++ b/site/.cache/twoslash.d7222f98b670b6d9e07b86ecf3e22c80e57088ada64ab16465f4a54b0b929099.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":390,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":404,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":430,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":442,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":468,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":486,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":518,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":542,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":577,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":591,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":610,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":675,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":687,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":706,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":771,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":390,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":404,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":430,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":442,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":468,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":486,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":518,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":542,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":577,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":591,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":610,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":675,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":687,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":706,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":771,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":390,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":404,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":430,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":442,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":468,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":486,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":518,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":542,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":577,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":591,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":610,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":675,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":687,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":706,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":771,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: { // [!code focus:11]\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":127,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":151,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":169,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":185,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":257,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":270,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":288,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":302,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":328,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":344,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":374,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":390,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":404,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":430,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":442,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":468,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":486,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":518,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":542,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":577,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":591,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":610,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":675,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":687,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":706,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":771,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d7517ac51e9c735dbc6dafa789943ef65c9a73f216dd0b1d453d32c7e07a00a4.json b/site/.cache/twoslash.d7517ac51e9c735dbc6dafa789943ef65c9a73f216dd0b1d453d32c7e07a00a4.json index bc4472cd09..ec3723a18b 100644 --- a/site/.cache/twoslash.d7517ac51e9c735dbc6dafa789943ef65c9a73f216dd0b1d453d32c7e07a00a4.json +++ b/site/.cache/twoslash.d7517ac51e9c735dbc6dafa789943ef65c9a73f216dd0b1d453d32c7e07a00a4.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":47,\"length\":3,\"target\":\"eoa\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":53,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":90,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":125,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":147,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":156,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":163,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":292,\"length\":0,\"text\":\"{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":293,\"length\":0,\"text\":\" chainId: 10,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":295,\"length\":0,\"text\":\" nonce: 420,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":296,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":298,\"length\":0,\"text\":\" yParity: 0,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":299,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":306,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":319,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":332,\"length\":15,\"target\":\"sendTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":352,\"length\":17,\"target\":\"authorizationList\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":372,\"length\":13,\"target\":\"authorization\",\"line\":19,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":390,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":416,\"length\":3,\"target\":\"eoa\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":420,\"length\":7,\"target\":\"address\",\"line\":21,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1293,1304],[1269,1292],[1184,1268],[1099,1183],[1075,1098],[1000,1074],[975,999],[963,974],[0,671]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":963,\"end\":974},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":975,\"end\":999},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1000,\"end\":1074},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":1075,\"end\":1098},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1099,\"end\":1183},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1184,\"end\":1268},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1269,\"end\":1292},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1293,\"end\":1304}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":47,\"length\":3,\"target\":\"eoa\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":53,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":90,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":125,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":147,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":156,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":163,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":306,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":319,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n ...;\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":332,\"length\":15,\"target\":\"sendTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":352,\"length\":17,\"target\":\"authorizationList\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":372,\"length\":13,\"target\":\"authorization\",\"line\":19,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":390,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":416,\"length\":3,\"target\":\"eoa\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":420,\"length\":7,\"target\":\"address\",\"line\":21,\"character\":10}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":292,\"length\":0,\"text\":\"{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":293,\"length\":0,\"text\":\" chainId: 10,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":295,\"length\":0,\"text\":\" nonce: 420,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":296,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":298,\"length\":0,\"text\":\" yParity: 0,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":299,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":47,\"length\":3,\"target\":\"eoa\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":53,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":90,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":125,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":147,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":156,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":163,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":292,\"length\":0,\"text\":\"{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":293,\"length\":0,\"text\":\" chainId: 10,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":295,\"length\":0,\"text\":\" nonce: 420,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":296,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":298,\"length\":0,\"text\":\" yParity: 0,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":299,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":306,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":319,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":332,\"length\":15,\"target\":\"sendTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":352,\"length\":17,\"target\":\"authorizationList\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":372,\"length\":13,\"target\":\"authorization\",\"line\":19,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":390,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":416,\"length\":3,\"target\":\"eoa\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":420,\"length\":7,\"target\":\"address\",\"line\":21,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1293,1304],[1269,1292],[1184,1268],[1099,1183],[1075,1098],[1000,1074],[975,999],[963,974],[0,671]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":963,\"end\":974},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 10,\",\"start\":975,\"end\":999},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"start\":1000,\"end\":1074},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" nonce: 420,\",\"start\":1075,\"end\":1098},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"start\":1099,\"end\":1183},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"start\":1184,\"end\":1268},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" yParity: 0,\",\"start\":1269,\"end\":1292},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1293,\"end\":1304}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n\\nconst eoa = privateKeyToAccount('0x...')\\n \\nconst authorization = await walletClient.signAuthorization({\\n account: eoa,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n chainId: 10, // [!code focus]\\n nonce: 420, // [!code focus]\\n})\\n// @log: {\\n\\n// @log: chainId: 10,\\n\\n// @log: contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\\n\\n// @log: nonce: 420,\\n\\n// @log: r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\\n\\n// @log: s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\\n\\n// @log: yParity: 0,\\n\\n// @log: }\\n\\nconst hash = await walletClient.sendTransaction({\\n authorizationList: [authorization],\\n data: '0xdeadbeef',\\n to: eoa.address,\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":47,\"length\":3,\"target\":\"eoa\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":53,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":90,\"length\":13,\"target\":\"authorization\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":112,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":125,\"length\":17,\"target\":\"signAuthorization\",\"line\":4,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":147,\"length\":7,\"target\":\"account\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":156,\"length\":3,\"target\":\"eoa\",\"line\":5,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":163,\"length\":15,\"target\":\"contractAddress\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | undefined\",\"docs\":\"Chain ID.\",\"start\":228,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":260,\"length\":5,\"target\":\"nonce\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":306,\"length\":4,\"target\":\"hash\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":319,\"length\":12,\"target\":\"walletClient\",\"line\":18,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly authorizationList: readonly [SignAuthorizationReturnType];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: any;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":332,\"length\":15,\"target\":\"sendTransaction\",\"line\":18,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":352,\"length\":17,\"target\":\"authorizationList\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":372,\"length\":13,\"target\":\"authorization\",\"line\":19,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":390,\"length\":4,\"target\":\"data\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: any\",\"start\":412,\"length\":2,\"target\":\"to\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"const eoa: any\",\"start\":416,\"length\":3,\"target\":\"eoa\",\"line\":21,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":420,\"length\":7,\"target\":\"address\",\"line\":21,\"character\":10}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":292,\"length\":0,\"text\":\"{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":293,\"length\":0,\"text\":\" chainId: 10,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":294,\"length\":0,\"text\":\" contractAddress: \\\"0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2\\\",\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":295,\"length\":0,\"text\":\" nonce: 420,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":296,\"length\":0,\"text\":\" r: \\\"0xf507fb8fa33ffd05a7f26c980bbb8271aa113affc8f192feba87abe26549bda1\\\",\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":297,\"length\":0,\"text\":\" s: \\\"0x1b2687608968ecb67230bbf7944199560fa2b3cffe9cc2b1c024e1c8f86a9e08\\\",\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":298,\"length\":0,\"text\":\" yParity: 0,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":299,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}]}}" diff --git a/site/.cache/twoslash.d78028b4a0703cd2e17b0aa8cb2f51d9e4968539a7a5a42f171791a2823c0555.json b/site/.cache/twoslash.d78028b4a0703cd2e17b0aa8cb2f51d9e4968539a7a5a42f171791a2823c0555.json index 9e8f2b56d4..9b503d596b 100644 --- a/site/.cache/twoslash.d78028b4a0703cd2e17b0aa8cb2f51d9e4968539a7a5a42f171791a2823c0555.json +++ b/site/.cache/twoslash.d78028b4a0703cd2e17b0aa8cb2f51d9e4968539a7a5a42f171791a2823c0555.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":150,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":160,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":248,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":255,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":150,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":160,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":248,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":255,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":150,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":160,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":248,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":255,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: bigint\",\"start\":150,\"length\":8,\"target\":\"gasPrice\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":160,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":196,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":248,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":255,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d7e23d505cf8667f59674f6dfbc9fb5962b496fb328599e6c366a4f42905d2be.json b/site/.cache/twoslash.d7e23d505cf8667f59674f6dfbc9fb5962b496fb328599e6c366a4f42905d2be.json index 97ec753f11..c8707c4a0c 100644 --- a/site/.cache/twoslash.d7e23d505cf8667f59674f6dfbc9fb5962b496fb328599e6c366a4f42905d2be.json +++ b/site/.cache/twoslash.d7e23d505cf8667f59674f6dfbc9fb5962b496fb328599e6c366a4f42905d2be.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":37,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":65,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":117,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":214,\"length\":12,\"target\":\"publicClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":229,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":37,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":65,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":117,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":214,\"length\":12,\"target\":\"publicClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":229,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":37,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":65,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":117,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":214,\"length\":12,\"target\":\"publicClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":229,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, custom, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const account = privateKeyToAccount('0x...')\\n \\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":29,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":37,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":65,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":117,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":23},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":214,\"length\":12,\"target\":\"publicClient\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":229,\"length\":18,\"target\":\"createPublicClient\",\"line\":6,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":252,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":259,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":270,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":281,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d80be1cd50219c609727c70f2b3676b6a9ce9c80ff87c89a74061f60d8c3e4bd.json b/site/.cache/twoslash.d80be1cd50219c609727c70f2b3676b6a9ce9c80ff87c89a74061f60d8c3e4bd.json index d941bc1b43..66b60c3e5c 100644 --- a/site/.cache/twoslash.d80be1cd50219c609727c70f2b3676b6a9ce9c80ff87c89a74061f60d8c3e4bd.json +++ b/site/.cache/twoslash.d80be1cd50219c609727c70f2b3676b6a9ce9c80ff87c89a74061f60d8c3e4bd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n name: 'Anvil Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":72,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":114,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":125,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n name: 'Anvil Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":72,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":114,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":125,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n name: 'Anvil Client', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":72,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":114,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":125,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,97]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n// ---cut---\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil', \\n name: 'Anvil Client', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n mode: \\\"anvil\\\";\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 40 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":36,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":43,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":54,\"length\":4,\"target\":\"mode\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"A name for the client.\",\"start\":72,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":114,\"length\":9,\"target\":\"transport\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":125,\"length\":4,\"target\":\"http\",\"line\":4,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d84e353febcac64c0e1b2c7a7d8b73628bfb018594add980a08fb49c6e53a9d8.json b/site/.cache/twoslash.d84e353febcac64c0e1b2c7a7d8b73628bfb018594add980a08fb49c6e53a9d8.json index e65272aa6f..d7d1ce90ee 100644 --- a/site/.cache/twoslash.d84e353febcac64c0e1b2c7a7d8b73628bfb018594add980a08fb49c6e53a9d8.json +++ b/site/.cache/twoslash.d84e353febcac64c0e1b2c7a7d8b73628bfb018594add980a08fb49c6e53a9d8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n \\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions()) // [!code hl]\\n\\nconst publicClient = createPublicClient({\\n chain: zksync,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":85,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":122,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":171,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":186,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":209,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":216,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":226,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":237,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":244,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":251,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":266,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":273,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":317,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":332,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":355,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":362,\"length\":6,\"target\":\"zksync\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":372,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":383,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n \\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions()) // [!code hl]\\n\\nconst publicClient = createPublicClient({\\n chain: zksync,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":85,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":122,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":171,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":186,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":209,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":216,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":226,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":237,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":244,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":251,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":266,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":273,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":317,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":332,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":355,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":362,\"length\":6,\"target\":\"zksync\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":372,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":383,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n \\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions()) // [!code hl]\\n\\nconst publicClient = createPublicClient({\\n chain: zksync,\\n transport: http()\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":85,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":122,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":171,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":186,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":209,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":216,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":226,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":237,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":244,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":251,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":266,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":273,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":317,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":332,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":355,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":362,\"length\":6,\"target\":\"zksync\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":372,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":383,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createPublicClient, createWalletClient, custom, http } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n \\nconst walletClient = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions()) // [!code hl]\\n\\nconst publicClient = createPublicClient({\\n chain: zksync,\\n transport: http()\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":29,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function custom(provider: provider, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":49,\"length\":6,\"target\":\"custom\",\"line\":0,\"character\":49},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":57,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":57},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":85,\"length\":6,\"target\":\"zksync\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":122,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":171,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":186,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":209,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":216,\"length\":6,\"target\":\"zksync\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: CustomTransport\",\"docs\":\"The RPC transport\",\"start\":226,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) custom<{\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}>(provider: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n}, config?: CustomTransportConfig): CustomTransport\\nimport custom\",\"tags\":[[\"description\",\"Creates a custom transport given an EIP-1193 compliant `request` attribute.\"]],\"start\":237,\"length\":6,\"target\":\"custom\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":244,\"length\":6,\"target\":\"window\",\"line\":6,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":251,\"length\":8,\"target\":\"ethereum\",\"line\":6,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client<...>) => Eip712WalletActions<...>) => Client<...>\",\"start\":266,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip712WalletActions(): (client: Client) => Eip712WalletActions\\nimport eip712WalletActions\",\"start\":273,\"length\":19,\"target\":\"eip712WalletActions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":317,\"length\":12,\"target\":\"publicClient\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":332,\"length\":18,\"target\":\"createPublicClient\",\"line\":9,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":355,\"length\":5,\"target\":\"chain\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const zksync: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://era.zksync.network/\\\";\\n readonly apiUrl: \\\"https://api-era.zksync.network/api\\\";\\n };\\n readonly native: {\\n readonly name: \\\"ZKsync Explorer\\\";\\n readonly url: \\\"https://explorer.zksync.io/\\\";\\n readonly apiUrl: \\\"https://block-explorer-api.mainnet.zksync.io/api\\\";\\n };\\n };\\n ... 12 more ...;\\n readonly network: \\\"zksync-era\\\";\\n}\\nimport zksync\",\"start\":362,\"length\":6,\"target\":\"zksync\",\"line\":10,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":372,\"length\":9,\"target\":\"transport\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":383,\"length\":4,\"target\":\"http\",\"line\":11,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d85ae0fc13c645aee6c43623fc0f5c192c49b8a142aefba085d3179a7fe4f416.json b/site/.cache/twoslash.d85ae0fc13c645aee6c43623fc0f5c192c49b8a142aefba085d3179a7fe4f416.json index 5c56307b5e..7a2fd8d1ea 100644 --- a/site/.cache/twoslash.d85ae0fc13c645aee6c43623fc0f5c192c49b8a142aefba085d3179a7fe4f416.json +++ b/site/.cache/twoslash.d85ae0fc13c645aee6c43623fc0f5c192c49b8a142aefba085d3179a7fe4f416.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,629]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":295,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":590,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n nonce: 69, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":200,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce?: number | undefined\",\"docs\":\"Nonce of the EOA to delegate to.\",\"start\":265,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d8f358804d128832f62bb13a8c3dbda12381b82c9deb81a69951d3792fa8a7b7.json b/site/.cache/twoslash.d8f358804d128832f62bb13a8c3dbda12381b82c9deb81a69951d3792fa8a7b7.json new file mode 100644 index 0000000000..e6883824ca --- /dev/null +++ b/site/.cache/twoslash.d8f358804d128832f62bb13a8c3dbda12381b82c9deb81a69951d3792fa8a7b7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,398]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n})\\n .extend(erc7821Actions())\\n// ---cut---\\nconst authorization = await client.signAuthorization({ \\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n authorizationList: [authorization], // [!code focus]\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":35,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":58,\"length\":15,\"target\":\"contractAddress\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":133,\"length\":4,\"target\":\"hash\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":146,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":153,\"length\":7,\"target\":\"execute\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":165,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList?: AuthorizationList | undefined\",\"start\":222,\"length\":17,\"target\":\"authorizationList\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":242,\"length\":13,\"target\":\"authorization\",\"line\":6,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":277,\"length\":5,\"target\":\"calls\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":300,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":357,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":364,\"length\":10,\"target\":\"parseEther\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":401,\"length\":4,\"target\":\"data\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":428,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.d96be33f4a6b477a01c61eb031707f08d042dbc68731188c13f183a263406f1a.json b/site/.cache/twoslash.d96be33f4a6b477a01c61eb031707f08d042dbc68731188c13f183a263406f1a.json index 7031a01eee..be6baa7574 100644 --- a/site/.cache/twoslash.d96be33f4a6b477a01c61eb031707f08d042dbc68731188c13f183a263406f1a.json +++ b/site/.cache/twoslash.d96be33f4a6b477a01c61eb031707f08d042dbc68731188c13f183a263406f1a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":210,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":237,\"length\":13,\"target\":\"onBlockNumber\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":252,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":267,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":275,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":279,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":297,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":210,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":237,\"length\":13,\"target\":\"onBlockNumber\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":252,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":267,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":275,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":279,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":297,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":210,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":237,\"length\":13,\"target\":\"onBlockNumber\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":252,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":267,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":275,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":279,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":297,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlockNumber(\\n { \\n onBlockNumber: blockNumber => console.log(blockNumber),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":210,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":237,\"length\":13,\"target\":\"onBlockNumber\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":252,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":267,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":275,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":279,\"length\":11,\"target\":\"blockNumber\",\"line\":10,\"character\":46},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":297,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.da2957b87e0d6ea79094efafe25e6d755690f47bceaff83ed5494559caa0f210.json b/site/.cache/twoslash.da2957b87e0d6ea79094efafe25e6d755690f47bceaff83ed5494559caa0f210.json deleted file mode 100644 index aee4a9153a..0000000000 --- a/site/.cache/twoslash.da2957b87e0d6ea79094efafe25e6d755690f47bceaff83ed5494559caa0f210.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":71,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":86,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":113,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n onFetchRequest(request) {\\n console.log(request) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchRequest?: ((request: Request, init: RequestInit) => MaybePromise) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":71,\"length\":14,\"target\":\"onFetchRequest\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":86,\"length\":7,\"target\":\"request\",\"line\":1,\"character\":17},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":101,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":109,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) request: Request\",\"start\":113,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.da5f937a98e0f5838fc7d43d1d6aaa9da6f25be0d95274ed5986e06549b37480.json b/site/.cache/twoslash.da5f937a98e0f5838fc7d43d1d6aaa9da6f25be0d95274ed5986e06549b37480.json index ebc3e64bd9..93be7552d7 100644 --- a/site/.cache/twoslash.da5f937a98e0f5838fc7d43d1d6aaa9da6f25be0d95274ed5986e06549b37480.json +++ b/site/.cache/twoslash.da5f937a98e0f5838fc7d43d1d6aaa9da6f25be0d95274ed5986e06549b37480.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { // [!code ++] // [!code focus]\\n createBundlerClient, // [!code ++] // [!code focus]\\n toCoinbaseSmartAccount // [!code ++] // [!code focus]\\n} from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n owners: [owner] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":90,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":144,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":272,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":310,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":369,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":439,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":455,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":479,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":489,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":500,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":562,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":598,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":614,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":672,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":713,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":722,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { // [!code ++] // [!code focus]\\n createBundlerClient, // [!code ++] // [!code focus]\\n toCoinbaseSmartAccount // [!code ++] // [!code focus]\\n} from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n owners: [owner] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":90,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":144,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":272,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":310,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":369,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":439,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":455,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":479,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":489,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":500,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":562,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":598,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":614,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":672,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":713,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":722,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { // [!code ++] // [!code focus]\\n createBundlerClient, // [!code ++] // [!code focus]\\n toCoinbaseSmartAccount // [!code ++] // [!code focus]\\n} from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n owners: [owner] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":90,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":144,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":272,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":310,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":369,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":439,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":455,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":479,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":489,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":500,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":562,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":598,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":614,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":672,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":713,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":722,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, http } from 'viem'\\nimport { // [!code ++] // [!code focus]\\n createBundlerClient, // [!code ++] // [!code focus]\\n toCoinbaseSmartAccount // [!code ++] // [!code focus]\\n} from 'viem/account-abstraction' // [!code ++] // [!code focus]\\nimport { mainnet } from 'viem/chains'\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\\n\\nconst owner = privateKeyToAccount('0x...')\\n\\nconst account = await toCoinbaseSmartAccount({ // [!code ++] // [!code focus]\\n client, // [!code ++] // [!code focus]\\n owners: [owner] // [!code ++] // [!code focus]\\n}) // [!code ++] // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":90,\"length\":19,\"target\":\"createBundlerClient\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":144,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":272,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":310,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":369,\"length\":18,\"target\":\"createPublicClient\",\"line\":8,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":392,\"length\":5,\"target\":\"chain\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":399,\"length\":7,\"target\":\"mainnet\",\"line\":9,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":410,\"length\":9,\"target\":\"transport\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":421,\"length\":4,\"target\":\"http\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":439,\"length\":13,\"target\":\"bundlerClient\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, undefined, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: (fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":455,\"length\":19,\"target\":\"createBundlerClient\",\"line\":13,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":479,\"length\":6,\"target\":\"client\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":489,\"length\":9,\"target\":\"transport\",\"line\":15,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":500,\"length\":4,\"target\":\"http\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":554,\"length\":5,\"target\":\"owner\",\"line\":18,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":562,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":18,\"character\":14},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":598,\"length\":7,\"target\":\"account\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":614,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":20,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":672,\"length\":6,\"target\":\"client\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":713,\"length\":6,\"target\":\"owners\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"const owner: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":722,\"length\":5,\"target\":\"owner\",\"line\":22,\"character\":11}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.db8ee78ee2aa34a1c4a2165096d670f9f802e6c426be675db135816ba3d9f07e.json b/site/.cache/twoslash.db8ee78ee2aa34a1c4a2165096d670f9f802e6c426be675db135816ba3d9f07e.json index 59fed1f9e5..39876559bb 100644 --- a/site/.cache/twoslash.db8ee78ee2aa34a1c4a2165096d670f9f802e6c426be675db135816ba3d9f07e.json +++ b/site/.cache/twoslash.db8ee78ee2aa34a1c4a2165096d670f9f802e6c426be675db135816ba3d9f07e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":210,\"length\":11,\"target\":\"watchBlocks\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":232,\"length\":7,\"target\":\"onBlock\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":241,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":250,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":258,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":262,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":274,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":210,\"length\":11,\"target\":\"watchBlocks\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":232,\"length\":7,\"target\":\"onBlock\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":241,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":250,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":258,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":262,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":274,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n poll: true, // [!code focus]\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":210,\"length\":11,\"target\":\"watchBlocks\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":232,\"length\":7,\"target\":\"onBlock\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":241,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":250,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":258,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":262,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":274,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, webSocket } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n transport: webSocket()\\n})\\n\\nconst unwatch = publicClient.watchBlocks(\\n { \\n onBlock: block => console.log(block),\\n poll: true, // [!code focus]\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":62,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":98,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":113,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":136,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":143,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: WebSocketTransport\",\"docs\":\"The RPC transport\",\"start\":154,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":165,\"length\":9,\"target\":\"webSocket\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":187,\"length\":7,\"target\":\"unwatch\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":197,\"length\":12,\"target\":\"publicClient\",\"line\":8,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":210,\"length\":11,\"target\":\"watchBlocks\",\"line\":8,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":232,\"length\":7,\"target\":\"onBlock\",\"line\":10,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":241,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":250,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":258,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n nonce: `0x${string}`;\\n hash: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":262,\"length\":5,\"target\":\"block\",\"line\":10,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) poll?: true | undefined\",\"start\":274,\"length\":4,\"target\":\"poll\",\"line\":11,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.dc027ad25a7b4af2e2995be75e9b531effa3aad47899b4b47ead26177006b644.json b/site/.cache/twoslash.dc027ad25a7b4af2e2995be75e9b531effa3aad47899b4b47ead26177006b644.json index beeeb540e0..cd7ed88649 100644 --- a/site/.cache/twoslash.dc027ad25a7b4af2e2995be75e9b531effa3aad47899b4b47ead26177006b644.json +++ b/site/.cache/twoslash.dc027ad25a7b4af2e2995be75e9b531effa3aad47899b4b47ead26177006b644.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":100,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":115,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":138,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":145,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":156,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":167,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.dc9800c50fab198f27520c8c15831fc5d386434d5f501578be503a2cc6988855.json b/site/.cache/twoslash.dc9800c50fab198f27520c8c15831fc5d386434d5f501578be503a2cc6988855.json index c525c1ba27..ffc8c0533b 100644 --- a/site/.cache/twoslash.dc9800c50fab198f27520c8c15831fc5d386434d5f501578be503a2cc6988855.json +++ b/site/.cache/twoslash.dc9800c50fab198f27520c8c15831fc5d386434d5f501578be503a2cc6988855.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":64,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":105,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":112,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":123,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":134,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":64,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":105,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":112,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":123,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":134,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const client = createClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":64,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":105,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":112,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":123,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":134,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst client = createClient({\\n batch: {\\n multicall: {\\n wait: 16, // [!code focus]\\n },\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 10 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":15,\"length\":12,\"target\":\"createClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":32,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":45,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) wait?: number | undefined\",\"docs\":\"The maximum number of milliseconds to wait before sending a batch.\",\"tags\":[[\"default\",\"0\"]],\"start\":64,\"length\":4,\"target\":\"wait\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":105,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":112,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":123,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":134,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.dd853d6e59907cf1342f771ac4c9060ffca0e29c6d1458e69d41f9a0225762b6.json b/site/.cache/twoslash.dd853d6e59907cf1342f771ac4c9060ffca0e29c6d1458e69d41f9a0225762b6.json new file mode 100644 index 0000000000..a4f593a12d --- /dev/null +++ b/site/.cache/twoslash.dd853d6e59907cf1342f771ac4c9060ffca0e29c6d1458e69d41f9a0225762b6.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":204,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) custom: string\",\"start\":212,\"length\":6,\"target\":\"custom\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":256,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: string\",\"start\":272,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":8}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,444]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":431,\"end\":444}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7715Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [\\n { \\n type: { custom: 'example' }, // [!code focus]\\n data: {\\n value: '0xdeadbeef',\\n }\\n } \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":204,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) custom: string\",\"start\":212,\"length\":6,\"target\":\"custom\",\"line\":8,\"character\":14},{\"type\":\"hover\",\"text\":\"(property) data: unknown\",\"start\":256,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: string\",\"start\":272,\"length\":5,\"target\":\"value\",\"line\":10,\"character\":8}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.de4f1b8994c32cbb2b54c6ea02f1f216ad489c9498f9dcb4391b4136b9c1d012.json b/site/.cache/twoslash.de4f1b8994c32cbb2b54c6ea02f1f216ad489c9498f9dcb4391b4136b9c1d012.json index 05dfbab1cf..6ebaec9d0b 100644 --- a/site/.cache/twoslash.de4f1b8994c32cbb2b54c6ea02f1f216ad489c9498f9dcb4391b4136b9c1d012.json +++ b/site/.cache/twoslash.de4f1b8994c32cbb2b54c6ea02f1f216ad489c9498f9dcb4391b4136b9c1d012.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...') // [!code focus:1]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":126,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":162,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":171,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":194,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":201,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":212,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":223,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":240,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...') // [!code focus:1]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":126,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":162,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":171,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":194,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":201,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":212,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":223,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":240,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...') // [!code focus:1]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":126,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":162,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":171,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":194,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":201,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":212,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":223,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":240,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts' // [!code focus]\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst account = privateKeyToAccount('0x...') // [!code focus:1]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":57,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":126,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":162,\"length\":6,\"target\":\"client\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":171,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":194,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":201,\"length\":7,\"target\":\"mainnet\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":212,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":223,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":240,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":250,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":9,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.df44fa9253049d5650ccc5a694df1240c0f064d6c14b0417b5afef612866a5a5.json b/site/.cache/twoslash.df44fa9253049d5650ccc5a694df1240c0f064d6c14b0417b5afef612866a5a5.json index 37da3ec68e..16773b17a8 100644 --- a/site/.cache/twoslash.df44fa9253049d5650ccc5a694df1240c0f064d6c14b0417b5afef612866a5a5.json +++ b/site/.cache/twoslash.df44fa9253049d5650ccc5a694df1240c0f064d6c14b0417b5afef612866a5a5.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":478,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":488,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":499,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":478,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":488,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":499,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":478,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":488,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":499,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient, toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\\nexport const account = await toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\\n\\nexport const bundlerClient = createBundlerClient({\\n account,\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function createBundlerClient(parameters: BundlerClientConfig): BundlerClient\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":57,\"length\":19,\"target\":\"createBundlerClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":78,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":1,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":144,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":196,\"length\":7,\"target\":\"mainnet\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":232,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":241,\"length\":18,\"target\":\"createPublicClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":264,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":271,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":282,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":293,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"const account: {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n readonly inputs: readonly [{\\n readonly name: \\\"owner\\\";\\n readonly type: \\\"bytes\\\";\\n }];\\n readonly name: \\\"AlreadyOwner\\\";\\n readonly type: \\\"error\\\";\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}\",\"start\":317,\"length\":7,\"target\":\"account\",\"line\":10,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) toCoinbaseSmartAccount(parameters: ToCoinbaseSmartAccountParameters): Promise\\nimport toCoinbaseSmartAccount\",\"tags\":[[\"description\",\"Create a Coinbase Smart Account.\"],[\"param\",\"parameters - {@link ToCoinbaseSmartAccountParameters}\"],[\"returns\",\"Coinbase Smart Account. {@link ToCoinbaseSmartAccountReturnType}\"],[\"example\",\"import { toCoinbaseSmartAccount } from 'viem/account-abstraction'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { client } from './client.js'\\n\\nconst account = toCoinbaseSmartAccount({\\n client,\\n owners: [privateKeyToAccount('0x...')],\\n})\"]],\"start\":333,\"length\":22,\"target\":\"toCoinbaseSmartAccount\",\"line\":10,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) client: Client\",\"start\":360,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) owners: readonly (`0x${string}` | OneOf<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign?: ((parameters: {\\n hash: Hash;\\n }) => Promise) | undefined | undefined;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | WebAuthnAccount>)[]\",\"start\":370,\"length\":6,\"target\":\"owners\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":379,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":12,\"character\":11},{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}, undefined>\",\"start\":427,\"length\":13,\"target\":\"bundlerClient\",\"line\":15,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, undefined, {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, {\\n ...;\\n }, ... 43 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n}, {\\n ...;\\n}, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":443,\"length\":19,\"target\":\"createBundlerClient\",\"line\":15,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n abi: readonly [{\\n readonly inputs: readonly [];\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly type: \\\"constructor\\\";\\n }, ... 44 more ..., {\\n ...;\\n }];\\n ... 18 more ...;\\n type: \\\"smart\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":467,\"length\":7,\"target\":\"account\",\"line\":16,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) client?: Client | {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n} | undefined\",\"docs\":\"Client that points to an Execution RPC URL.\",\"start\":478,\"length\":6,\"target\":\"client\",\"line\":17,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":488,\"length\":9,\"target\":\"transport\",\"line\":18,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":499,\"length\":4,\"target\":\"http\",\"line\":18,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.df9c47999ddb6a0c0036b5438a8db82ebdc32d381e8084d85460c00932ceb0bd.json b/site/.cache/twoslash.df9c47999ddb6a0c0036b5438a8db82ebdc32d381e8084d85460c00932ceb0bd.json index 9f4033495f..2f53dc2f47 100644 --- a/site/.cache/twoslash.df9c47999ddb6a0c0036b5438a8db82ebdc32d381e8084d85460c00932ceb0bd.json +++ b/site/.cache/twoslash.df9c47999ddb6a0c0036b5438a8db82ebdc32d381e8084d85460c00932ceb0bd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n ccipRead: false, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":80,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":87,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":98,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":109,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n ccipRead: false, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":80,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":87,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":98,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":109,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n ccipRead: false, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":80,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":87,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":98,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":109,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n ccipRead: false, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":80,\"length\":5,\"target\":\"chain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":87,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":98,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":109,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.dff7998b02dbe07f61ab311b68f1582b1df0af703d4dda2c45b70e8858d3d872.json b/site/.cache/twoslash.dff7998b02dbe07f61ab311b68f1582b1df0af703d4dda2c45b70e8858d3d872.json new file mode 100644 index 0000000000..c7349dc1b8 --- /dev/null +++ b/site/.cache/twoslash.dff7998b02dbe07f61ab311b68f1582b1df0af703d4dda2c45b70e8858d3d872.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', // [!code focus]\\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":155,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":229,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":258,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n address: '0x0000000000000000000000000000000000000000',\\n factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', // [!code focus]\\n factoryData: '0xdeadbeef',\\n type: 'undeployed',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":98,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factory: `0x${string}`\",\"start\":155,\"length\":7,\"target\":\"factory\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) factoryData: `0x${string}`\",\"start\":229,\"length\":11,\"target\":\"factoryData\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"undeployed\\\"\",\"start\":258,\"length\":4,\"target\":\"type\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e01c4d55b1012b89909681ff0abcfc2c9feeb79e682182971519a28740e351b7.json b/site/.cache/twoslash.e01c4d55b1012b89909681ff0abcfc2c9feeb79e682182971519a28740e351b7.json deleted file mode 100644 index 790f33ded6..0000000000 --- a/site/.cache/twoslash.e01c4d55b1012b89909681ff0abcfc2c9feeb79e682182971519a28740e351b7.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":71,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":87,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":103,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":111,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":115,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n onFetchResponse(response) {\\n console.log(response) // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) onFetchResponse?: ((response: Response) => Promise | void) | undefined\",\"docs\":\"A callback to handle the response from `fetch`.\",\"start\":71,\"length\":15,\"target\":\"onFetchResponse\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":87,\"length\":8,\"target\":\"response\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":103,\"length\":7,\"target\":\"console\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":111,\"length\":3,\"target\":\"log\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(parameter) response: Response\",\"start\":115,\"length\":8,\"target\":\"response\",\"line\":2,\"character\":16}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e05e08398d5a392ed3b16a95c14747acb68f6ae850ef41ff7cc8a99aa8b8ca41.json b/site/.cache/twoslash.e05e08398d5a392ed3b16a95c14747acb68f6ae850ef41ff7cc8a99aa8b8ca41.json index 833c53f3b1..7808f598ba 100644 --- a/site/.cache/twoslash.e05e08398d5a392ed3b16a95c14747acb68f6ae850ef41ff7cc8a99aa8b8ca41.json +++ b/site/.cache/twoslash.e05e08398d5a392ed3b16a95c14747acb68f6ae850ef41ff7cc8a99aa8b8ca41.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e0ba7362b5dc99edc6a6ed79d6f9d4dcc43f787e983533bd5d773954fde9eaaa.json b/site/.cache/twoslash.e0ba7362b5dc99edc6a6ed79d6f9d4dcc43f787e983533bd5d773954fde9eaaa.json index 2ddc9c52ad..530a1a2cf6 100644 --- a/site/.cache/twoslash.e0ba7362b5dc99edc6a6ed79d6f9d4dcc43f787e983533bd5d773954fde9eaaa.json +++ b/site/.cache/twoslash.e0ba7362b5dc99edc6a6ed79d6f9d4dcc43f787e983533bd5d773954fde9eaaa.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":257,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n contracts: {\\n readonly ensRegistry: {\\n ...;\\n };\\n readonly ensUniversalResolver: {\\n ...;\\n };\\n readonly multicall3: {\\n ...;\\n };\\n };\\n ... 9 more ...;\\n serializers?: ChainSerializers<...> | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":257,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":257,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: fallback([ // [!code focus]\\n http('https://1.rpc.thirdweb.com/...'), // [!code focus]\\n http('https://mainnet.infura.io/v3/...') // [!code focus]\\n ]), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function fallback(transports_: transports, config?: FallbackTransportConfig): FallbackTransport\\nimport fallback\",\"start\":29,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":39,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":67,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":103,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, HttpTransport]>, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":112,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":135,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":142,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: FallbackTransport, HttpTransport]>\",\"docs\":\"The RPC transport\",\"start\":153,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":164,\"length\":8,\"target\":\"fallback\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":196,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":257,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e14c79bf787de4f9db83ac27bb47f3e26b7d50ed6e30c051cfa1e741a6b87dcd.json b/site/.cache/twoslash.e14c79bf787de4f9db83ac27bb47f3e26b7d50ed6e30c051cfa1e741a6b87dcd.json index d007704804..d00b8ac1ae 100644 --- a/site/.cache/twoslash.e14c79bf787de4f9db83ac27bb47f3e26b7d50ed6e30c051cfa1e741a6b87dcd.json +++ b/site/.cache/twoslash.e14c79bf787de4f9db83ac27bb47f3e26b7d50ed6e30c051cfa1e741a6b87dcd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createTestClient, http, publicActions, walletActions } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\\n .extend(publicActions) // [!code hl]\\n .extend(walletActions) // [!code hl]\\n\\nconst blockNumber = await client.getBlockNumber() // Public Action\\nconst hash = await client.sendTransaction({ ... }) // Wallet Action\\nconst mine = await client.mine({ blocks: 1 }) // Test Action\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":33,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":48,\"length\":13,\"target\":\"walletActions\",\"line\":0,\"character\":48},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":85,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":121,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":130,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":158,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":169,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":186,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":197,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":212,\"length\":6,\"target\":\"extend\",\"line\":8,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":219,\"length\":13,\"target\":\"publicActions\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => WalletActions<...>) => Client<...>\",\"start\":251,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":258,\"length\":13,\"target\":\"walletActions\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":294,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":314,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":321,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":361,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":374,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: (args: any) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":381,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"const mine: void\",\"start\":429,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":442,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) mine: (args: MineParameters) => Promise\",\"docs\":\"Mine a specified number of blocks.\\n\\n- Docs: https://viem.sh/docs/actions/test/mine\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args – {@link MineParameters}\"],[\"example\",\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: 'foundry',\\n transport: http(),\\n})\\nawait client.mine({ blocks: 1 })\"]],\"start\":449,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blocks: number\",\"docs\":\"Number of blocks to mine.\",\"start\":456,\"length\":6,\"target\":\"blocks\",\"line\":13,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createTestClient, http, publicActions, walletActions } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\\n .extend(publicActions) // [!code hl]\\n .extend(walletActions) // [!code hl]\\n\\nconst blockNumber = await client.getBlockNumber() // Public Action\\nconst hash = await client.sendTransaction({ ... }) // Wallet Action\\nconst mine = await client.mine({ blocks: 1 }) // Test Action\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":33,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":48,\"length\":13,\"target\":\"walletActions\",\"line\":0,\"character\":48},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":85,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":121,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":130,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":158,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":169,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":186,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":197,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":212,\"length\":6,\"target\":\"extend\",\"line\":8,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":219,\"length\":13,\"target\":\"publicActions\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => WalletActions<...>) => Client<...>\",\"start\":251,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":258,\"length\":13,\"target\":\"walletActions\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":294,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":314,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":321,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":361,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":374,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: (args: any) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":381,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"const mine: void\",\"start\":429,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":442,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) mine: (args: MineParameters) => Promise\",\"docs\":\"Mine a specified number of blocks.\\n\\n- Docs: https://viem.sh/docs/actions/test/mine\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args – {@link MineParameters}\"],[\"example\",\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: 'foundry',\\n transport: http(),\\n})\\nawait client.mine({ blocks: 1 })\"]],\"start\":449,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blocks: number\",\"docs\":\"Number of blocks to mine.\",\"start\":456,\"length\":6,\"target\":\"blocks\",\"line\":13,\"character\":33}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createTestClient, http, publicActions, walletActions } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\\n .extend(publicActions) // [!code hl]\\n .extend(walletActions) // [!code hl]\\n\\nconst blockNumber = await client.getBlockNumber() // Public Action\\nconst hash = await client.sendTransaction({ ... }) // Wallet Action\\nconst mine = await client.mine({ blocks: 1 }) // Test Action\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":33,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":48,\"length\":13,\"target\":\"walletActions\",\"line\":0,\"character\":48},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":85,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":121,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":130,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":158,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":169,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":186,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":197,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":212,\"length\":6,\"target\":\"extend\",\"line\":8,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":219,\"length\":13,\"target\":\"publicActions\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => WalletActions<...>) => Client<...>\",\"start\":251,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":258,\"length\":13,\"target\":\"walletActions\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":294,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":314,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":321,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":361,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":374,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: (args: any) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":381,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"const mine: void\",\"start\":429,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":442,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) mine: (args: MineParameters) => Promise\",\"docs\":\"Mine a specified number of blocks.\\n\\n- Docs: https://viem.sh/docs/actions/test/mine\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args – {@link MineParameters}\"],[\"example\",\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: 'foundry',\\n transport: http(),\\n})\\nawait client.mine({ blocks: 1 })\"]],\"start\":449,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blocks: number\",\"docs\":\"Number of blocks to mine.\",\"start\":456,\"length\":6,\"target\":\"blocks\",\"line\":13,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createTestClient, http, publicActions, walletActions } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n chain: foundry,\\n mode: 'anvil',\\n transport: http(), \\n})\\n .extend(publicActions) // [!code hl]\\n .extend(walletActions) // [!code hl]\\n\\nconst blockNumber = await client.getBlockNumber() // Public Action\\nconst hash = await client.sendTransaction({ ... }) // Wallet Action\\nconst mine = await client.mine({ blocks: 1 }) // Test Action\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createTestClient(parameters: TestClientConfig): TestClient, true, rpcSchema>\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":16,\"target\":\"createTestClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":27,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":33,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":33},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":48,\"length\":13,\"target\":\"walletActions\",\"line\":0,\"character\":48},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":85,\"length\":7,\"target\":\"foundry\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":121,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createTestClient<\\\"anvil\\\", HttpTransport, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createTestClient\",\"docs\":\"Creates a Test Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/test\\n\\nA Test Client is an interface to \\\"test\\\" JSON-RPC API methods accessible through a local Ethereum test node such as [Anvil](https://book.getfoundry.sh/anvil/) or [Hardhat](https://hardhat.org/) such as mining blocks, impersonating accounts, setting fees, etc through [Test Actions](https://viem.sh/docs/actions/test/introduction).\",\"tags\":[[\"param\",\"config - {@link TestClientConfig}\"],[\"returns\",\"A Test Client. {@link TestClient}\"],[\"example\",\"import { createTestClient, custom } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: foundry,\\n transport: http(),\\n})\"]],\"start\":130,\"length\":16,\"target\":\"createTestClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":151,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const foundry: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport foundry\",\"start\":158,\"length\":7,\"target\":\"foundry\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) mode: \\\"anvil\\\" | \\\"hardhat\\\" | \\\"ganache\\\"\",\"docs\":\"Mode of the test client.\",\"start\":169,\"length\":4,\"target\":\"mode\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":186,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":197,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":212,\"length\":6,\"target\":\"extend\",\"line\":8,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":219,\"length\":13,\"target\":\"publicActions\",\"line\":8,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) extend: | undefined;\\n}, undefined>>(fn: (client: Client<...>) => WalletActions<...>) => Client<...>\",\"start\":251,\"length\":6,\"target\":\"extend\",\"line\":9,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function walletActions(client: Client): WalletActions\\nimport walletActions\",\"start\":258,\"length\":13,\"target\":\"walletActions\",\"line\":9,\"character\":10},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":294,\"length\":11,\"target\":\"blockNumber\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":314,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":321,\"length\":14,\"target\":\"getBlockNumber\",\"line\":11,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":361,\"length\":4,\"target\":\"hash\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":374,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: (args: any) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":381,\"length\":15,\"target\":\"sendTransaction\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"const mine: void\",\"start\":429,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined | undefined;\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, TestRpcSchema<...>, {\\n ...;\\n} & ... 2 more ... & TestActions>\",\"start\":442,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) mine: (args: MineParameters) => Promise\",\"docs\":\"Mine a specified number of blocks.\\n\\n- Docs: https://viem.sh/docs/actions/test/mine\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args – {@link MineParameters}\"],[\"example\",\"import { createTestClient, http } from 'viem'\\nimport { foundry } from 'viem/chains'\\n\\nconst client = createTestClient({\\n mode: 'anvil',\\n chain: 'foundry',\\n transport: http(),\\n})\\nawait client.mine({ blocks: 1 })\"]],\"start\":449,\"length\":4,\"target\":\"mine\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) blocks: number\",\"docs\":\"Number of blocks to mine.\",\"start\":456,\"length\":6,\"target\":\"blocks\",\"line\":13,\"character\":33}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e1705b89a9342ec55219f771e13b4568bef4c731edd54822754a04d82754b6f1.json b/site/.cache/twoslash.e1705b89a9342ec55219f771e13b4568bef4c731edd54822754a04d82754b6f1.json index a44a67f510..4edb889eed 100644 --- a/site/.cache/twoslash.e1705b89a9342ec55219f771e13b4568bef4c731edd54822754a04d82754b6f1.json +++ b/site/.cache/twoslash.e1705b89a9342ec55219f771e13b4568bef4c731edd54822754a04d82754b6f1.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n code: '0x...', // [!code focus]\\n data: '0xdeadbeef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":41,\"length\":4,\"target\":\"code\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":75,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n code: '0x...', // [!code focus]\\n data: '0xdeadbeef',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":41,\"length\":4,\"target\":\"code\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":75,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n code: '0x...', // [!code focus]\\n data: '0xdeadbeef',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":41,\"length\":4,\"target\":\"code\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":75,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n code: '0x...', // [!code focus]\\n data: '0xdeadbeef',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) code?: `0x${string}` | undefined\",\"docs\":\"Bytecode to perform the call on.\",\"start\":41,\"length\":4,\"target\":\"code\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":75,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e1fbbcf3fc51cf3dd8af0f940e71ce26cb4e24af6bdef7bf48ffe42bcc54771c.json b/site/.cache/twoslash.e1fbbcf3fc51cf3dd8af0f940e71ce26cb4e24af6bdef7bf48ffe42bcc54771c.json index 3f58d86bb4..0c5160b6f9 100644 --- a/site/.cache/twoslash.e1fbbcf3fc51cf3dd8af0f940e71ce26cb4e24af6bdef7bf48ffe42bcc54771c.json +++ b/site/.cache/twoslash.e1fbbcf3fc51cf3dd8af0f940e71ce26cb4e24af6bdef7bf48ffe42bcc54771c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":118,\"length\":6,\"target\":\"onLogs\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":126,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":134,\"length\":7,\"target\":\"console\",\"line\":4,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":142,\"length\":3,\"target\":\"log\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":146,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":9,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1270,1318],[1239,1269],[1199,1238],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1199,\"end\":1238},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1239,\"end\":1269},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1270,\"end\":1318}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":118,\"length\":6,\"target\":\"onLogs\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":126,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":134,\"length\":7,\"target\":\"console\",\"line\":4,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":142,\"length\":3,\"target\":\"log\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":146,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":9,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":118,\"length\":6,\"target\":\"onLogs\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":126,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":134,\"length\":7,\"target\":\"console\",\"line\":4,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":142,\"length\":3,\"target\":\"log\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":146,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":9,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1270,1318],[1239,1269],[1199,1238],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1199,\"end\":1238},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1239,\"end\":1269},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1270,\"end\":1318}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":118,\"length\":6,\"target\":\"onLogs\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":126,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":134,\"length\":7,\"target\":\"console\",\"line\":4,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":142,\"length\":3,\"target\":\"log\",\"line\":4,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":146,\"length\":4,\"target\":\"logs\",\"line\":4,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":9,\"character\":0}]}}" diff --git a/site/.cache/twoslash.e2ca1c3603bd69177b4b7d6b650e61ab73f1cc71b3acb5bc03e558935b3b93ae.json b/site/.cache/twoslash.e2ca1c3603bd69177b4b7d6b650e61ab73f1cc71b3acb5bc03e558935b3b93ae.json index 78581883ac..51be04a803 100644 --- a/site/.cache/twoslash.e2ca1c3603bd69177b4b7d6b650e61ab73f1cc71b3acb5bc03e558935b3b93ae.json +++ b/site/.cache/twoslash.e2ca1c3603bd69177b4b7d6b650e61ab73f1cc71b3acb5bc03e558935b3b93ae.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [account] = await window.ethereum!.request({ method: 'eth_requestAccounts' })\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":69,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":106,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":123,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":130,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":140,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":150,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":51},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":267,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":274,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":285,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":296,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":313,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":326,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":333,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":353,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":378,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":430,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":437,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [account] = await window.ethereum!.request({ method: 'eth_requestAccounts' })\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":69,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":106,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":123,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":130,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":140,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":150,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":51},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":267,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":274,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":285,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":296,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":313,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":326,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":333,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":353,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":378,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":430,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":437,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [account] = await window.ethereum!.request({ method: 'eth_requestAccounts' })\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":69,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":106,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":123,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":130,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":140,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":150,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":51},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":267,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":274,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":285,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":296,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":313,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":326,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":333,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":353,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":378,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":430,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":437,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,34]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst [account] = await window.ethereum!.request({ method: 'eth_requestAccounts' })\\n\\nconst client = createWalletClient({ // [!code focus:99]\\n account, // [!code ++]\\n chain: mainnet,\\n transport: http()\\n})\\n\\nconst hash = await client.sendTransaction({\\n account, // [!code --]\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n value: parseEther('0.001')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":35,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":69,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: `0x${string}`\",\"start\":106,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":7},{\"type\":\"hover\",\"text\":\"var window: Window & typeof globalThis\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\",\"start\":123,\"length\":6,\"target\":\"window\",\"line\":3,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Window.ethereum?: {\\n on: (event: event, listener: EIP1193EventMap[event]) => void;\\n removeListener: (event: event, listener: EIP1193EventMap[event]) => void;\\n request: EIP1193RequestFn;\\n} | undefined\",\"start\":130,\"length\":8,\"target\":\"ethereum\",\"line\":3,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: \\\"eth_requestAccounts\\\";\\n}, options?: EIP1193RequestOptions | undefined) => Promise<...>\",\"start\":140,\"length\":7,\"target\":\"request\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) method: \\\"eth_requestAccounts\\\"\",\"start\":150,\"length\":6,\"target\":\"method\",\"line\":3,\"character\":51},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":190,\"length\":6,\"target\":\"client\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, `0x${string}`, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":199,\"length\":18,\"target\":\"createWalletClient\",\"line\":5,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":242,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":267,\"length\":5,\"target\":\"chain\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":274,\"length\":7,\"target\":\"mainnet\",\"line\":7,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":285,\"length\":9,\"target\":\"transport\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":296,\"length\":4,\"target\":\"http\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":313,\"length\":4,\"target\":\"hash\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: `0x${string}`;\\n type: \\\"json-rpc\\\";\\n };\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":326,\"length\":6,\"target\":\"client\",\"line\":11,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}, undefined>(args: SendTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined, {\\n readonly account: `0x${string}`;\\n readonly to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\";\\n readonly value: bigint;\\n}>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":333,\"length\":15,\"target\":\"sendTransaction\",\"line\":11,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` & (`0x${string}` | Account | null | undefined)\",\"start\":353,\"length\":7,\"target\":\"account\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC\\\"\",\"start\":378,\"length\":2,\"target\":\"to\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":430,\"length\":5,\"target\":\"value\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":437,\"length\":10,\"target\":\"parseEther\",\"line\":14,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e343e4801f5ff875bcf9b2bc0190a569b85612ec25aa887a16f365ed9909528d.json b/site/.cache/twoslash.e343e4801f5ff875bcf9b2bc0190a569b85612ec25aa887a16f365ed9909528d.json index 0d3179cd2a..c20d13dcbf 100644 --- a/site/.cache/twoslash.e343e4801f5ff875bcf9b2bc0190a569b85612ec25aa887a16f365ed9909528d.json +++ b/site/.cache/twoslash.e343e4801f5ff875bcf9b2bc0190a569b85612ec25aa887a16f365ed9909528d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gas: 1_000_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":152,\"length\":3,\"target\":\"gas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":188,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gas: 1_000_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":152,\"length\":3,\"target\":\"gas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":188,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gas: 1_000_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":152,\"length\":3,\"target\":\"gas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":188,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n gas: 1_000_000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":6,\"length\":4,\"target\":\"data\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":32,\"length\":4,\"target\":\"call\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":41,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":98,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: bigint\",\"start\":152,\"length\":3,\"target\":\"gas\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":188,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e349bd5605496ec8b758b9552097ca7cd55a8617cde17d98a8e349372341e820.json b/site/.cache/twoslash.e349bd5605496ec8b758b9552097ca7cd55a8617cde17d98a8e349372341e820.json new file mode 100644 index 0000000000..f88110cb20 --- /dev/null +++ b/site/.cache/twoslash.e349bd5605496ec8b758b9552097ca7cd55a8617cde17d98a8e349372341e820.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n id: string;\\n chainId: number;\\n atomic: boolean;\\n capabilities?: WalletCapabilities | undefined;\\n receipts?: WalletCallReceipt[] | undefined;\\n version: string;\\n statusCode: number;\\n status: \\\"pending\\\" | \\\"success\\\" | \\\"failure\\\" | undefined;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getCallsStatus: (parameters: GetCallsStatusParameters) => Promise\",\"docs\":\"Returns the status of a call batch that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Status of the calls. {@link GetCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":76,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":144,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":145,\"length\":0,\"text\":\" atomic: false,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":146,\"length\":0,\"text\":\" chainId: 1,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":147,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\"}\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[769,780],[736,768],[705,735],[676,704],[638,675],[614,637],[587,613],[575,586],[0,431]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":575,\"end\":586},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: false,\",\"start\":587,\"end\":613},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":614,\"end\":637},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" id: '0x1234567890abcdef',\",\"start\":638,\"end\":675},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" statusCode: 200,\",\"start\":676,\"end\":704},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":705,\"end\":735},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" receipts: [{ ... }],\",\"start\":736,\"end\":768},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":769,\"end\":780}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n\\n// @log: atomic: false,\\n\\n// @log: chainId: 1,\\n\\n// @log: id: '0x1234567890abcdef',\\n\\n// @log: statusCode: 200,\\n\\n// @log: status: 'success',\\n\\n// @log: receipts: [{ ... }],\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n id: string;\\n chainId: number;\\n atomic: boolean;\\n capabilities?: WalletCapabilities | undefined;\\n receipts?: WalletCallReceipt[] | undefined;\\n version: string;\\n statusCode: number;\\n status: \\\"pending\\\" | \\\"success\\\" | \\\"failure\\\" | undefined;\\n}\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) getCallsStatus: (parameters: GetCallsStatusParameters) => Promise\",\"docs\":\"Returns the status of a call batch that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Status of the calls. {@link GetCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })\"]],\"start\":76,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":144,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":145,\"length\":0,\"text\":\" atomic: false,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":146,\"length\":0,\"text\":\" chainId: 1,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":147,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\"}\",\"line\":13,\"character\":0}]}}" diff --git a/site/.cache/twoslash.e37f10cff11a2c2be88f6c6070032d645d21c137727ddd9307055107395f684d.json b/site/.cache/twoslash.e37f10cff11a2c2be88f6c6070032d645d21c137727ddd9307055107395f684d.json index 368e5a27d9..9ff0ea46a9 100644 --- a/site/.cache/twoslash.e37f10cff11a2c2be88f6c6070032d645d21c137727ddd9307055107395f684d.json +++ b/site/.cache/twoslash.e37f10cff11a2c2be88f6c6070032d645d21c137727ddd9307055107395f684d.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,142]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,142]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createBundlerClient } from 'viem/account-abstraction'\\nimport { http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst bundlerClient = createBundlerClient({\\n chain: mainnet,\\n transport: http('https://public.pimlico.io/v2/1/rpc'), // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const bundlerClient: BundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>\",\"start\":6,\"length\":13,\"target\":\"bundlerClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createBundlerClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, undefined>(parameters: BundlerClientConfig<...>): BundlerClient<...>\\nimport createBundlerClient\",\"docs\":\"Creates a Bundler Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/account-abstraction/clients/bundler\",\"tags\":[[\"param\",\"config - {@link BundlerClientConfig}\"],[\"returns\",\"A Bundler Client. {@link BundlerClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { createBundlerClient } from 'viem/account-abstraction'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst bundlerClient = createBundlerClient({\\n client,\\n transport: http('https://public.pimlico.io/v2/1/rpc'),\\n})\"]],\"start\":22,\"length\":19,\"target\":\"createBundlerClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":46,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":53,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":64,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":75,\"length\":4,\"target\":\"http\",\"line\":2,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e39d3045008c4ee2ad1fe3fcaf3dd2a04753b1051218b6767cff1061fd6f3568.json b/site/.cache/twoslash.e39d3045008c4ee2ad1fe3fcaf3dd2a04753b1051218b6767cff1061fd6f3568.json index c751255e04..ee5297d2e9 100644 --- a/site/.cache/twoslash.e39d3045008c4ee2ad1fe3fcaf3dd2a04753b1051218b6767cff1061fd6f3568.json +++ b/site/.cache/twoslash.e39d3045008c4ee2ad1fe3fcaf3dd2a04753b1051218b6767cff1061fd6f3568.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n signAuthorization: (parameters: Authorization) => Promise<...>;\\n ... 5 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,671]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst relay = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n account: relay,\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":632,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 29 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e3dc3412ed1f3e6811998209e5a66ca01200e7dadc49e35e7d9c4cbb183ac496.json b/site/.cache/twoslash.e3dc3412ed1f3e6811998209e5a66ca01200e7dadc49e35e7d9c4cbb183ac496.json index fb1e917806..1a5da55acb 100644 --- a/site/.cache/twoslash.e3dc3412ed1f3e6811998209e5a66ca01200e7dadc49e35e7d9c4cbb183ac496.json +++ b/site/.cache/twoslash.e3dc3412ed1f3e6811998209e5a66ca01200e7dadc49e35e7d9c4cbb183ac496.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":37,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":60,\"length\":21,\"target\":\"serializedTransaction\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":37,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":60,\"length\":21,\"target\":\"serializedTransaction\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":37,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":60,\"length\":21,\"target\":\"serializedTransaction\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) sendRawTransaction: (args: SendRawTransactionParameters) => Promise\",\"docs\":\"Sends a **signed** transaction to the network\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\\n- JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SendRawTransactionParameters}\"],[\"returns\",\"The transaction hash. {@link SendRawTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { sendRawTransaction } from 'viem/wallet'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst hash = await client.sendRawTransaction({\\n serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\\n})\"]],\"start\":37,\"length\":18,\"target\":\"sendRawTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) serializedTransaction: `0x${string}`\",\"docs\":\"The signed serialized transaction.\",\"start\":60,\"length\":21,\"target\":\"serializedTransaction\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e3f64dd0a5a1d5c6cf150406cfdd79a7a8e542540a0ccaedd2c95b5346bc9a69.json b/site/.cache/twoslash.e3f64dd0a5a1d5c6cf150406cfdd79a7a8e542540a0ccaedd2c95b5346bc9a69.json index 2da3fc1a78..e36cf70bf3 100644 --- a/site/.cache/twoslash.e3f64dd0a5a1d5c6cf150406cfdd79a7a8e542540a0ccaedd2c95b5346bc9a69.json +++ b/site/.cache/twoslash.e3f64dd0a5a1d5c6cf150406cfdd79a7a8e542540a0ccaedd2c95b5346bc9a69.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action\\nconst hash = await client.writeContract(request) // Wallet Action\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":238,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":249,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":256,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":267,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":278,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":288,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":295,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":333,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":351,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":358,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":407,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":420,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":427,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":441,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action\\nconst hash = await client.writeContract(request) // Wallet Action\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":238,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":249,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":256,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":267,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":278,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":288,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":295,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":333,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":351,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":358,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":407,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":420,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":427,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":441,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action\\nconst hash = await client.writeContract(request) // Wallet Action\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":238,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":249,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":256,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":267,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":278,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":288,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":295,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":333,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":351,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":358,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":407,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":420,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":427,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":441,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action\\nconst hash = await client.writeContract(request) // Wallet Action\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":238,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":249,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":256,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":267,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":278,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":288,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":295,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":333,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":351,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":358,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":407,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":420,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":427,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":441,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e40ac8867abf45416b4e0bec41de471404a8a9b70f323c0b3b9cb61c7d5772d7.json b/site/.cache/twoslash.e40ac8867abf45416b4e0bec41de471404a8a9b70f323c0b3b9cb61c7d5772d7.json index 60a94e8f57..a3cb8a41db 100644 --- a/site/.cache/twoslash.e40ac8867abf45416b4e0bec41de471404a8a9b70f323c0b3b9cb61c7d5772d7.json +++ b/site/.cache/twoslash.e40ac8867abf45416b4e0bec41de471404a8a9b70f323c0b3b9cb61c7d5772d7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":83,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":99,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":107,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":211,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":218,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":229,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":240,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,112]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":83,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":99,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":107,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":211,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":218,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":229,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":240,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":83,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":99,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":107,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":211,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":218,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":229,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":240,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,112]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n ccipRead: { // [!code focus]\\n async request({ data, sender, urls }) { // [!code focus]\\n // ... // [!code focus]\\n } // [!code focus]\\n }, // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) ccipRead?: false | {\\n request?: (parameters: CcipRequestParameters) => Promise;\\n} | undefined\",\"docs\":\"[CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\\nIf `false`, the client will not support offchain CCIP lookups.\",\"start\":44,\"length\":8,\"target\":\"ccipRead\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) request?: ((parameters: CcipRequestParameters) => Promise) | undefined\",\"docs\":\"A function that will be called to make the offchain CCIP lookup request.\",\"tags\":[[\"see\",\"https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\"]],\"start\":83,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":10},{\"type\":\"hover\",\"text\":\"(parameter) data: `0x${string}`\",\"start\":93,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":20},{\"type\":\"hover\",\"text\":\"(parameter) sender: `0x${string}`\",\"start\":99,\"length\":6,\"target\":\"sender\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) urls: readonly string[]\",\"start\":107,\"length\":4,\"target\":\"urls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":211,\"length\":5,\"target\":\"chain\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":218,\"length\":7,\"target\":\"mainnet\",\"line\":6,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":229,\"length\":9,\"target\":\"transport\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":240,\"length\":4,\"target\":\"http\",\"line\":7,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e4141f0e26306c0ae4529722e13cef6bc25385a4bacfc62fda30591e05f1c0de.json b/site/.cache/twoslash.e4141f0e26306c0ae4529722e13cef6bc25385a4bacfc62fda30591e05f1c0de.json index 7bbf204dcc..87528f5794 100644 --- a/site/.cache/twoslash.e4141f0e26306c0ae4529722e13cef6bc25385a4bacfc62fda30591e05f1c0de.json +++ b/site/.cache/twoslash.e4141f0e26306c0ae4529722e13cef6bc25385a4bacfc62fda30591e05f1c0de.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n confirmations: 5, // [!code focus:1]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) confirmations?: number | undefined\",\"docs\":\"The number of confirmations (blocks that have passed) to wait before resolving.\",\"tags\":[[\"default\",\"1\"]],\"start\":75,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":116,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n confirmations: 5, // [!code focus:1]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) confirmations?: number | undefined\",\"docs\":\"The number of confirmations (blocks that have passed) to wait before resolving.\",\"tags\":[[\"default\",\"1\"]],\"start\":75,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":116,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transaction = await publicClient.waitForTransactionReceipt(\\n { \\n confirmations: 5, // [!code focus:1]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) confirmations?: number | undefined\",\"docs\":\"The number of confirmations (blocks that have passed) to wait before resolving.\",\"tags\":[[\"default\",\"1\"]],\"start\":75,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":116,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst transaction = await publicClient.waitForTransactionReceipt(\\n { \\n confirmations: 5, // [!code focus:1]\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":6,\"length\":11,\"target\":\"transaction\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":26,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":39,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":0,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) confirmations?: number | undefined\",\"docs\":\"The number of confirmations (blocks that have passed) to wait before resolving.\",\"tags\":[[\"default\",\"1\"]],\"start\":75,\"length\":13,\"target\":\"confirmations\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":116,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e4b0fdb593529dda958d2b1e3328f01c2508f24f5f1a69c9d92ffa083236d9f5.json b/site/.cache/twoslash.e4b0fdb593529dda958d2b1e3328f01c2508f24f5f1a69c9d92ffa083236d9f5.json deleted file mode 100644 index 88c4cffc58..0000000000 --- a/site/.cache/twoslash.e4b0fdb593529dda958d2b1e3328f01c2508f24f5f1a69c9d92ffa083236d9f5.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":71,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n key: 'alchemy', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"The key of the HTTP transport.\",\"start\":71,\"length\":3,\"target\":\"key\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e5eb17eb256d06e5576f7ffe3c46632f1f6f7737c0bffc3e2f6d5b9eedaf6cec.json b/site/.cache/twoslash.e5eb17eb256d06e5576f7ffe3c46632f1f6f7737c0bffc3e2f6d5b9eedaf6cec.json index f4e65fc78d..a33b95ae8b 100644 --- a/site/.cache/twoslash.e5eb17eb256d06e5576f7ffe3c46632f1f6f7737c0bffc3e2f6d5b9eedaf6cec.json +++ b/site/.cache/twoslash.e5eb17eb256d06e5576f7ffe3c46632f1f6f7737c0bffc3e2f6d5b9eedaf6cec.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2', // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":126,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":134,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":154,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2', // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":126,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":134,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":154,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2', // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":126,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":134,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":154,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2', // [!code focus]\\n onLogs: logs => console.log(logs) \\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":126,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":134,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":154,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e68db5a08bd0f53ce98318883315cfcf71e23982f2b32c0bab9f59beeb640fb3.json b/site/.cache/twoslash.e68db5a08bd0f53ce98318883315cfcf71e23982f2b32c0bab9f59beeb640fb3.json index 41a9d1e616..f7a0847127 100644 --- a/site/.cache/twoslash.e68db5a08bd0f53ce98318883315cfcf71e23982f2b32c0bab9f59beeb640fb3.json +++ b/site/.cache/twoslash.e68db5a08bd0f53ce98318883315cfcf71e23982f2b32c0bab9f59beeb640fb3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs)\\n})\\n// > [{ ... }, { ... }, { ... }]\\n// > [{ ... }, { ... }]\\n// > [{ ... }, { ... }, { ... }, { ... }]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":45,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":83,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":106,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":121,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":178,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":185,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":276,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":307,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":363,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":419,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":427,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":435,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":443,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":447,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1044]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs)\\n})\\n// > [{ ... }, { ... }, { ... }]\\n// > [{ ... }, { ... }]\\n// > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":45,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":83,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":106,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":121,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":178,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":185,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":276,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":307,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":363,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":419,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":427,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":435,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":443,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":447,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":30}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseAbiItem } from 'viem'\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs)\\n})\\n// > [{ ... }, { ... }, { ... }]\\n// > [{ ... }, { ... }]\\n// > [{ ... }, { ... }, { ... }, { ... }]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":45,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":83,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":106,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":121,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":178,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":185,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":276,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":307,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":363,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":419,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":427,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":435,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":443,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":447,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1044]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseAbiItem } from 'viem'\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n event: parseAbiItem('event Transfer(address indexed from, address indexed to, uint256 value)'),\\n args: { // [!code focus:4]\\n from: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n to: '0xa5cc3c03994db5b0d9a5eedd10cabab0813678ac'\\n },\\n onLogs: logs => console.log(logs)\\n})\\n// > [{ ... }, { ... }, { ... }]\\n// > [{ ... }, { ... }]\\n// > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<\\\"At least one signature required.\\\"> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":9,\"length\":12,\"target\":\"parseAbiItem\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":45,\"length\":12,\"target\":\"publicClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":83,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":93,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: <{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined>(args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":106,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":121,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) event: {\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}\",\"start\":178,\"length\":5,\"target\":\"event\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbiItem<\\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\">(signature: \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"): {\\n ...;\\n}\\nimport parseAbiItem\",\"docs\":\"Parses human-readable ABI item (e.g. error, event, function) into \\n{@link \\nAbi\\n}\\n item\",\"tags\":[[\"param\",\"signature - Human-readable ABI item\"],[\"returns\",\"Parsed {@link Abi} item\"],[\"example\",\"const abiItem = parseAbiItem('function balanceOf(address owner) view returns (uint256)')\\n// ^? const abiItem: { name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\";...\"],[\"example\",\"const abiItem = parseAbiItem([\\n // ^? const abiItem: { name: \\\"foo\\\"; type: \\\"function\\\"; stateMutability: \\\"view\\\"; inputs:...\\n 'function foo(Baz bar) view returns (string)',\\n 'struct Baz { string name; }',\\n])\"]],\"start\":185,\"length\":12,\"target\":\"parseAbiItem\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) args?: {\\n from?: `0x${string}` | `0x${string}`[] | null | undefined;\\n to?: `0x${string}` | `0x${string}`[] | null | undefined;\\n} | undefined\",\"start\":276,\"length\":4,\"target\":\"args\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":307,\"length\":4,\"target\":\"from\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) to?: `0x${string}` | `0x${string}`[] | null | undefined\",\"start\":363,\"length\":2,\"target\":\"to\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":419,\"length\":6,\"target\":\"onLogs\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":427,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":435,\"length\":7,\"target\":\"console\",\"line\":10,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":443,\"length\":3,\"target\":\"log\",\"line\":10,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter<{\\n readonly name: \\\"Transfer\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"from\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"to\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, [...], undefined, \\\"Transfer\\\">\",\"start\":447,\"length\":4,\"target\":\"logs\",\"line\":10,\"character\":30}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e6a72fcbaa7d74325de66232d25b6c8a3425209b876ccfd31a17e80b50797fca.json b/site/.cache/twoslash.e6a72fcbaa7d74325de66232d25b6c8a3425209b876ccfd31a17e80b50797fca.json new file mode 100644 index 0000000000..53da525d17 --- /dev/null +++ b/site/.cache/twoslash.e6a72fcbaa7d74325de66232d25b6c8a3425209b876ccfd31a17e80b50797fca.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256'\\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":111,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":213,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":234,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256'\\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":111,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":213,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":234,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e7347f1fcf0997cc3dad89107fdc06601b2a294e63dc8d13759406a55d8249f7.json b/site/.cache/twoslash.e7347f1fcf0997cc3dad89107fdc06601b2a294e63dc8d13759406a55d8249f7.json new file mode 100644 index 0000000000..7e40b301b6 --- /dev/null +++ b/site/.cache/twoslash.e7347f1fcf0997cc3dad89107fdc06601b2a294e63dc8d13759406a55d8249f7.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined, {\\n ...;\\n}>(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":179,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":5,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n}) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":209,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":220,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":240,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":275,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":297,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,289]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress?: `0x${string}` | undefined\",\"docs\":\"Address of the contract to delegate to.\",\"tags\":[[\"alias\",\"`address`\"]],\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const request: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 18 more ...;\\n maxPriorityFeePerGas: bigint;\\n}\",\"start\":150,\"length\":7,\"target\":\"request\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":166,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined, {\\n ...;\\n}>(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":179,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":5,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n}) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":209,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":220,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":240,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":275,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":297,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":301,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":309,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e7e7efaa099e7ca27ec916c330b59f308a6129a2ea079efb83c2a273d39d3463.json b/site/.cache/twoslash.e7e7efaa099e7ca27ec916c330b59f308a6129a2ea079efb83c2a273d39d3463.json new file mode 100644 index 0000000000..fb3493dded --- /dev/null +++ b/site/.cache/twoslash.e7e7efaa099e7ca27ec916c330b59f308a6129a2ea079efb83c2a273d39d3463.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":133,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":144,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":212,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":219,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const result: {\\n id: string;\\n chainId: number;\\n atomic: boolean;\\n capabilities?: WalletCapabilities | undefined;\\n receipts?: WalletCallReceipt[] | undefined;\\n version: string;\\n statusCode: number;\\n status: \\\"pending\\\" | \\\"success\\\" | \\\"failure\\\" | undefined;\\n}\",\"start\":252,\"length\":6,\"target\":\"result\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":267,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) waitForCallsStatus: (parameters: WaitForCallsStatusParameters) => Promise\",\"docs\":\"Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/waitForCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForCallsStatusParameters}\"],[\"returns\",\"Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { waitForCallsStatus } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\"]],\"start\":280,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"docs\":\"The id of the call batch to wait for.\",\"start\":320,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":361,\"length\":0,\"text\":\"{\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":362,\"length\":0,\"text\":\" atomic: false,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":363,\"length\":0,\"text\":\" chainId: 1,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":364,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":365,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\" status: 'success',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":367,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":368,\"length\":0,\"text\":\"}\",\"line\":22,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[986,997],[953,985],[922,952],[893,921],[855,892],[831,854],[804,830],[792,803],[0,431]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":792,\"end\":803},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: false,\",\"start\":804,\"end\":830},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":831,\"end\":854},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" id: '0x1234567890abcdef',\",\"start\":855,\"end\":892},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" statusCode: 200,\",\"start\":893,\"end\":921},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":922,\"end\":952},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" receipts: [{ ... }],\",\"start\":953,\"end\":985},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":986,\"end\":997}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":392,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst { id } = await walletClient.sendCalls({\\n account,\\n calls: [{\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n }],\\n})\\n \\nconst result = await walletClient.waitForCallsStatus({ // [!code focus]\\n id, // [!code focus]\\n}) // [!code focus]\\n// @log: {\\n\\n// @log: atomic: false,\\n\\n// @log: chainId: 1,\\n\\n// @log: id: '0x1234567890abcdef',\\n\\n// @log: statusCode: 200,\\n\\n// @log: status: 'success',\\n\\n// @log: receipts: [{ ... }],\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":93,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":133,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":144,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":158,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":212,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":219,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":11},{\"type\":\"hover\",\"text\":\"const result: {\\n id: string;\\n chainId: number;\\n atomic: boolean;\\n capabilities?: WalletCapabilities | undefined;\\n receipts?: WalletCallReceipt[] | undefined;\\n version: string;\\n statusCode: number;\\n status: \\\"pending\\\" | \\\"success\\\" | \\\"failure\\\" | undefined;\\n}\",\"start\":252,\"length\":6,\"target\":\"result\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":267,\"length\":12,\"target\":\"walletClient\",\"line\":11,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) waitForCallsStatus: (parameters: WaitForCallsStatusParameters) => Promise\",\"docs\":\"Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\\n\\n- Docs: https://viem.sh/experimental/eip5792/waitForCallsStatus\\n- JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WaitForCallsStatusParameters}\"],[\"returns\",\"Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { waitForCallsStatus } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\"]],\"start\":280,\"length\":18,\"target\":\"waitForCallsStatus\",\"line\":11,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"docs\":\"The id of the call batch to wait for.\",\"start\":320,\"length\":2,\"target\":\"id\",\"line\":12,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":361,\"length\":0,\"text\":\"{\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":362,\"length\":0,\"text\":\" atomic: false,\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":363,\"length\":0,\"text\":\" chainId: 1,\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":364,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":365,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":366,\"length\":0,\"text\":\" status: 'success',\",\"line\":19,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":367,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":20,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":368,\"length\":0,\"text\":\"}\",\"line\":22,\"character\":0}]}}" diff --git a/site/.cache/twoslash.e80be3cf43cdb7b2a557b1862b6fea5ea500034af1005637accc70bfdc6b98a2.json b/site/.cache/twoslash.e80be3cf43cdb7b2a557b1862b6fea5ea500034af1005637accc70bfdc6b98a2.json deleted file mode 100644 index 8fc3a9b660..0000000000 --- a/site/.cache/twoslash.e80be3cf43cdb7b2a557b1862b6fea5ea500034af1005637accc70bfdc6b98a2.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n retryDelay: 100, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":50,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n retryDelay: 100, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) retryDelay?: number | undefined\",\"docs\":\"The base delay (in ms) between retries.\",\"start\":50,\"length\":10,\"target\":\"retryDelay\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e892777b88827db9a089c7f055b9811154ff6bfb355afe00a40c9d3bc47dafe3.json b/site/.cache/twoslash.e892777b88827db9a089c7f055b9811154ff6bfb355afe00a40c9d3bc47dafe3.json index 52d9ff37d5..1430b96755 100644 --- a/site/.cache/twoslash.e892777b88827db9a089c7f055b9811154ff6bfb355afe00a40c9d3bc47dafe3.json +++ b/site/.cache/twoslash.e892777b88827db9a089c7f055b9811154ff6bfb355afe00a40c9d3bc47dafe3.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus]\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++] // [!code focus]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action // [!code focus]\\nconst hash = await client.writeContract(request) // Wallet Action // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":266,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":273,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":284,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":295,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":305,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":312,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":367,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":385,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":392,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":458,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":471,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":478,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":492,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus]\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++] // [!code focus]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action // [!code focus]\\nconst hash = await client.writeContract(request) // Wallet Action // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":266,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":273,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":284,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":295,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":305,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":312,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":367,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":385,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":392,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":458,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":471,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":478,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":492,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus]\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++] // [!code focus]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action // [!code focus]\\nconst hash = await client.writeContract(request) // Wallet Action // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":266,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":273,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":284,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":295,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":305,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":312,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":367,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":385,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":392,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":458,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":471,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":478,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":492,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http, publicActions } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createWalletClient({ // [!code focus]\\n account,\\n chain: mainnet,\\n transport: http()\\n}).extend(publicActions) // [!code ++] // [!code focus]\\n\\nconst { request } = await client.simulateContract({ ... }) // Public Action // [!code focus]\\nconst hash = await client.writeContract(request) // Wallet Action // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":35,\"length\":13,\"target\":\"publicActions\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":72,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":124,\"length\":7,\"target\":\"mainnet\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":160,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":170,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":206,\"length\":6,\"target\":\"client\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":215,\"length\":18,\"target\":\"createWalletClient\",\"line\":6,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n ...;\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":255,\"length\":7,\"target\":\"account\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":266,\"length\":5,\"target\":\"chain\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":273,\"length\":7,\"target\":\"mainnet\",\"line\":8,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":284,\"length\":9,\"target\":\"transport\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":295,\"length\":4,\"target\":\"http\",\"line\":9,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: , {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}>>(fn: (client: Client<...>) => PublicActions<...>) => Client<...>\",\"start\":305,\"length\":6,\"target\":\"extend\",\"line\":10,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) function publicActions(client: Client): PublicActions\\nimport publicActions\",\"start\":312,\"length\":13,\"target\":\"publicActions\",\"line\":10,\"character\":10},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":367,\"length\":7,\"target\":\"request\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":385,\"length\":6,\"target\":\"client\",\"line\":12,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) simulateContract: (args: SimulateContractParameters | undefined;\\n}, Chain | undefined, undefined>) => Promise<...>\",\"docs\":\"Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\\n\\n- Docs: https://viem.sh/docs/contract/simulateContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\",\"tags\":[[\"remarks\",\"This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\\n\\nInternally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\"],[\"param\",\"args - {@link SimulateContractParameters}\"],[\"returns\",\"The simulation result and write request. {@link SimulateContractReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst result = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32) view returns (uint32)']),\\n functionName: 'mint',\\n args: ['69420'],\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":392,\"length\":16,\"target\":\"simulateContract\",\"line\":12,\"character\":33},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":458,\"length\":4,\"target\":\"hash\",\"line\":13,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":471,\"length\":6,\"target\":\"client\",\"line\":13,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: | undefined;\\n}>(args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":478,\"length\":13,\"target\":\"writeContract\",\"line\":13,\"character\":26},{\"type\":\"hover\",\"text\":\"const request: {\\n address: Address;\\n type?: \\\"legacy\\\" | undefined;\\n gas?: bigint | undefined;\\n nonce?: number | undefined;\\n value?: bigint | undefined;\\n blobs?: undefined;\\n blobVersionedHashes?: undefined;\\n ... 13 more ...;\\n account: {\\n ...;\\n };\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":492,\"length\":7,\"target\":\"request\",\"line\":13,\"character\":40}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e892ff9bceed33b4082fb911db758575f5083c9c783fe1b71d19d79cd9ea1f96.json b/site/.cache/twoslash.e892ff9bceed33b4082fb911db758575f5083c9c783fe1b71d19d79cd9ea1f96.json deleted file mode 100644 index b79dc9019d..0000000000 --- a/site/.cache/twoslash.e892ff9bceed33b4082fb911db758575f5083c9c783fe1b71d19d79cd9ea1f96.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":91,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":115,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":149,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":160,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":237,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":244,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":279,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":305,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst id = await walletClient.sendCalls({ // [!code focus:99]\\n account,\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":91,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":102,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":115,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account | null\",\"start\":149,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":160,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":181,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":237,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":244,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":279,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":305,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e94935f364993fda0d7baf79671dd505d3b76d222aaf6cbe6fa0fb89f5d0fcb1.json b/site/.cache/twoslash.e94935f364993fda0d7baf79671dd505d3b76d222aaf6cbe6fa0fb89f5d0fcb1.json deleted file mode 100644 index eae9c2406d..0000000000 --- a/site/.cache/twoslash.e94935f364993fda0d7baf79671dd505d3b76d222aaf6cbe6fa0fb89f5d0fcb1.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":74,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":89,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n methods: {\\n include: ['eth_sendTransaction', 'eth_signTypedData_v4'],\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) methods?: OneOf<{\\n include?: string[] | undefined;\\n} | {\\n exclude?: string[] | undefined;\\n}> | undefined\",\"docs\":\"Methods to include or exclude from executing RPC requests.\",\"start\":74,\"length\":7,\"target\":\"methods\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) include?: string[] | undefined\",\"start\":89,\"length\":7,\"target\":\"include\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.e9c20f57d72131c11b530137c5a519e666dfb95b5d8e3f5bd0cd7e2403215fd9.json b/site/.cache/twoslash.e9c20f57d72131c11b530137c5a519e666dfb95b5d8e3f5bd0cd7e2403215fd9.json index e4c9794b00..6f9bf0dacb 100644 --- a/site/.cache/twoslash.e9c20f57d72131c11b530137c5a519e666dfb95b5d8e3f5bd0cd7e2403215fd9.json +++ b/site/.cache/twoslash.e9c20f57d72131c11b530137c5a519e666dfb95b5d8e3f5bd0cd7e2403215fd9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":110,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":133,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":140,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":151,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":162,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":110,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":133,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":140,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":151,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":162,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":110,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":133,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":140,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":151,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":162,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n \\nexport const client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":9,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":15,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":15},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":101,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":110,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":133,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":140,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":151,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":162,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.eb705988020b749bc8318a344e114e7b2092748eb0b8b785e69f59fe0bff2697.json b/site/.cache/twoslash.eb705988020b749bc8318a344e114e7b2092748eb0b8b785e69f59fe0bff2697.json index 1c07bbd6f6..a12c8fc9a1 100644 --- a/site/.cache/twoslash.eb705988020b749bc8318a344e114e7b2092748eb0b8b785e69f59fe0bff2697.json +++ b/site/.cache/twoslash.eb705988020b749bc8318a344e114e7b2092748eb0b8b785e69f59fe0bff2697.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":127,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":127,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":127,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n readonly nonce: 69;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":68,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":120,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":127,\"length\":10,\"target\":\"parseEther\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":163,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ec149608fac3c29326cb59d591970e77fb3424ad812f3ca6192f5b5d820db5ef.json b/site/.cache/twoslash.ec149608fac3c29326cb59d591970e77fb3424ad812f3ca6192f5b5d820db5ef.json index f2985dc5c0..386cdd7a2a 100644 --- a/site/.cache/twoslash.ec149608fac3c29326cb59d591970e77fb3424ad812f3ca6192f5b5d820db5ef.json +++ b/site/.cache/twoslash.ec149608fac3c29326cb59d591970e77fb3424ad812f3ca6192f5b5d820db5ef.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlocks( // [!code focus:99]\\n { onBlock: block => console.log(block) }\\n)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":70,\"length\":11,\"target\":\"watchBlocks\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":107,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":116,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":137,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\"> {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" baseFeePerGas: 10789405161n,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" difficulty: 11569232145203128n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\" extraData: '0x75732d656173742d38',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":153,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":154,\"length\":0,\"text\":\"> {\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\" baseFeePerGas: 12394051511n,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\" difficulty: 11512315412421123n,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\" extraData: '0x5123ab1512dd14aa',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":158,\"length\":0,\"text\":\" ...\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":159,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[714,725],[699,713],[655,698],[612,654],[572,611],[558,571],[546,557],[531,545],[485,530],[442,484],[402,441],[388,401],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> {\",\"start\":388,\"end\":401},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" baseFeePerGas: 10789405161n,\",\"start\":402,\"end\":441},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" difficulty: 11569232145203128n,\",\"start\":442,\"end\":484},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" extraData: '0x75732d656173742d38',\",\"start\":485,\"end\":530},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":531,\"end\":545},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":546,\"end\":557},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> {\",\"start\":558,\"end\":571},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" baseFeePerGas: 12394051511n,\",\"start\":572,\"end\":611},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" difficulty: 11512315412421123n,\",\"start\":612,\"end\":654},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" extraData: '0x5123ab1512dd14aa',\",\"start\":655,\"end\":698},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":699,\"end\":713},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":714,\"end\":725}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlocks( // [!code focus:99]\\n { onBlock: block => console.log(block) }\\n)\\n// @log: > {\\n\\n// @log: baseFeePerGas: 10789405161n,\\n\\n// @log: difficulty: 11569232145203128n,\\n\\n// @log: extraData: '0x75732d656173742d38',\\n\\n// @log: ...\\n\\n// @log: }\\n\\n// @log: > {\\n\\n// @log: baseFeePerGas: 12394051511n,\\n\\n// @log: difficulty: 11512315412421123n,\\n\\n// @log: extraData: '0x5123ab1512dd14aa',\\n\\n// @log: ...\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":70,\"length\":11,\"target\":\"watchBlocks\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":107,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":116,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":137,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\"> {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" baseFeePerGas: 10789405161n,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" difficulty: 11569232145203128n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\" extraData: '0x75732d656173742d38',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":153,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":154,\"length\":0,\"text\":\"> {\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\" baseFeePerGas: 12394051511n,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\" difficulty: 11512315412421123n,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\" extraData: '0x5123ab1512dd14aa',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":158,\"length\":0,\"text\":\" ...\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":159,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlocks( // [!code focus:99]\\n { onBlock: block => console.log(block) }\\n)\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":70,\"length\":11,\"target\":\"watchBlocks\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":107,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":116,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":137,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\"> {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" baseFeePerGas: 10789405161n,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" difficulty: 11569232145203128n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\" extraData: '0x75732d656173742d38',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":153,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":154,\"length\":0,\"text\":\"> {\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\" baseFeePerGas: 12394051511n,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\" difficulty: 11512315412421123n,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\" extraData: '0x5123ab1512dd14aa',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":158,\"length\":0,\"text\":\" ...\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":159,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[714,725],[699,713],[655,698],[612,654],[572,611],[558,571],[546,557],[531,545],[485,530],[442,484],[402,441],[388,401],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> {\",\"start\":388,\"end\":401},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" baseFeePerGas: 10789405161n,\",\"start\":402,\"end\":441},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" difficulty: 11569232145203128n,\",\"start\":442,\"end\":484},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" extraData: '0x75732d656173742d38',\",\"start\":485,\"end\":530},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":531,\"end\":545},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":546,\"end\":557},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> {\",\"start\":558,\"end\":571},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" baseFeePerGas: 12394051511n,\",\"start\":572,\"end\":611},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" difficulty: 11512315412421123n,\",\"start\":612,\"end\":654},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" extraData: '0x5123ab1512dd14aa',\",\"start\":655,\"end\":698},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":699,\"end\":713},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":714,\"end\":725}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlocks( // [!code focus:99]\\n { onBlock: block => console.log(block) }\\n)\\n// @log: > {\\n\\n// @log: baseFeePerGas: 10789405161n,\\n\\n// @log: difficulty: 11569232145203128n,\\n\\n// @log: extraData: '0x75732d656173742d38',\\n\\n// @log: ...\\n\\n// @log: }\\n\\n// @log: > {\\n\\n// @log: baseFeePerGas: 12394051511n,\\n\\n// @log: difficulty: 11512315412421123n,\\n\\n// @log: extraData: '0x5123ab1512dd14aa',\\n\\n// @log: ...\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlocksReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlocks: (args: WatchBlocksParameters, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">) => WatchBlocksReturnType\",\"docs\":\"Watches and returns information for incoming blocks.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlocks\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlocksParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlocks({\\n onBlock: (block) => console.log(block),\\n})\"]],\"start\":70,\"length\":11,\"target\":\"watchBlocks\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlock: OnBlock<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, false, \\\"latest\\\">\",\"docs\":\"The callback to call when a new block is received.\",\"start\":107,\"length\":7,\"target\":\"onBlock\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":116,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":13},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":125,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":22},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":133,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(parameter) block: {\\n number: bigint;\\n hash: `0x${string}`;\\n nonce: `0x${string}`;\\n logsBloom: `0x${string}`;\\n baseFeePerGas: bigint | null;\\n blobGasUsed: bigint;\\n difficulty: bigint;\\n excessBlobGas: bigint;\\n extraData: Hex;\\n ... 17 more ...;\\n transactions: `0x${string}`[];\\n}\",\"start\":137,\"length\":5,\"target\":\"block\",\"line\":3,\"character\":34}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\"> {\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" baseFeePerGas: 10789405161n,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" difficulty: 11569232145203128n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\" extraData: '0x75732d656173742d38',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":152,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":153,\"length\":0,\"text\":\"}\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":154,\"length\":0,\"text\":\"> {\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":155,\"length\":0,\"text\":\" baseFeePerGas: 12394051511n,\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":156,\"length\":0,\"text\":\" difficulty: 11512315412421123n,\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":157,\"length\":0,\"text\":\" extraData: '0x5123ab1512dd14aa',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":158,\"length\":0,\"text\":\" ...\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":159,\"length\":0,\"text\":\"}\",\"line\":17,\"character\":0}]}}" diff --git a/site/.cache/twoslash.ec23c1b268b53f2b0bdfaf93724705ddd76fee006bb75c5d336cc635ae7f9734.json b/site/.cache/twoslash.ec23c1b268b53f2b0bdfaf93724705ddd76fee006bb75c5d336cc635ae7f9734.json new file mode 100644 index 0000000000..d9dd8c9a37 --- /dev/null +++ b/site/.cache/twoslash.ec23c1b268b53f2b0bdfaf93724705ddd76fee006bb75c5d336cc635ae7f9734.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":76,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":144,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":145,\"length\":0,\"text\":\" atomic: false,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":146,\"length\":0,\"text\":\" chainId: 1,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":147,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\"}\",\"line\":13,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[693,704],[660,692],[629,659],[600,628],[562,599],[538,561],[511,537],[499,510],[0,355]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":499,\"end\":510},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: false,\",\"start\":511,\"end\":537},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" chainId: 1,\",\"start\":538,\"end\":561},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" id: '0x1234567890abcdef',\",\"start\":562,\"end\":599},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" statusCode: 200,\",\"start\":600,\"end\":628},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":629,\"end\":659},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" receipts: [{ ... }],\",\"start\":660,\"end\":692},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":693,\"end\":704}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":316,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst result = await walletClient.getCallsStatus({ // [!code focus:99]\\n id: '0x1234567890abcdef',\\n})\\n// @log: {\\n\\n// @log: atomic: false,\\n\\n// @log: chainId: 1,\\n\\n// @log: id: '0x1234567890abcdef',\\n\\n// @log: statusCode: 200,\\n\\n// @log: status: 'success',\\n\\n// @log: receipts: [{ ... }],\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: any\",\"start\":48,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":63,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"any\",\"start\":76,\"length\":14,\"target\":\"getCallsStatus\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) id: string\",\"start\":115,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":144,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":145,\"length\":0,\"text\":\" atomic: false,\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":146,\"length\":0,\"text\":\" chainId: 1,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":147,\"length\":0,\"text\":\" id: '0x1234567890abcdef',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":148,\"length\":0,\"text\":\" statusCode: 200,\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":149,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":150,\"length\":0,\"text\":\" receipts: [{ ... }],\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":151,\"length\":0,\"text\":\"}\",\"line\":13,\"character\":0}]}}" diff --git a/site/.cache/twoslash.ec4cd32a6c8efec5e328635377a76f7645df45d178b6ac29b01ddaccea9bddc0.json b/site/.cache/twoslash.ec4cd32a6c8efec5e328635377a76f7645df45d178b6ac29b01ddaccea9bddc0.json deleted file mode 100644 index a82ad3f343..0000000000 --- a/site/.cache/twoslash.ec4cd32a6c8efec5e328635377a76f7645df45d178b6ac29b01ddaccea9bddc0.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { isErc6492Signature } from 'viem/experimental'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":9,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":62,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":71,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":2,\"character\":15}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { isErc6492Signature } from 'viem/experimental'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":9,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":62,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":71,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":2,\"character\":15}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ec6a29f91ebdc9fc2247404554012d428171cdb1d4c8a20d4ee68609c186894b.json b/site/.cache/twoslash.ec6a29f91ebdc9fc2247404554012d428171cdb1d4c8a20d4ee68609c186894b.json index 72c0b8ad34..13738e36ae 100644 --- a/site/.cache/twoslash.ec6a29f91ebdc9fc2247404554012d428171cdb1d4c8a20d4ee68609c186894b.json +++ b/site/.cache/twoslash.ec6a29f91ebdc9fc2247404554012d428171cdb1d4c8a20d4ee68609c186894b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":74,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":74,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":74,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n batch: {\\n batchSize: 2_000 // [!code focus]\\n }\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) batch?: boolean | {\\n batchSize?: number | undefined;\\n wait?: number | undefined;\\n} | undefined\",\"docs\":\"Whether to enable Batch JSON-RPC.\",\"tags\":[[\"link\",\"https://www.jsonrpc.org/specification#batch\"]],\"start\":61,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batchSize?: number | undefined\",\"docs\":\"The maximum number of JSON-RPC requests to send in a batch.\",\"tags\":[[\"default\",\"1_000\"]],\"start\":74,\"length\":9,\"target\":\"batchSize\",\"line\":2,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ecaa498cfd2a6814a0dbbeefb1dc91223cd8b6e6c318a093ab5dfe2335f22bc2.json b/site/.cache/twoslash.ecaa498cfd2a6814a0dbbeefb1dc91223cd8b6e6c318a093ab5dfe2335f22bc2.json index 745ec4777b..a253b463f0 100644 --- a/site/.cache/twoslash.ecaa498cfd2a6814a0dbbeefb1dc91223cd8b6e6c318a093ab5dfe2335f22bc2.json +++ b/site/.cache/twoslash.ecaa498cfd2a6814a0dbbeefb1dc91223cd8b6e6c318a093ab5dfe2335f22bc2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst transaction = await publicClient.waitForTransactionReceipt( // [!code focus:99]\\n { hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' }\\n)\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":47,\"length\":11,\"target\":\"transaction\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":80,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[697,708],[667,696],[652,666],[589,651],[554,588],[462,553],[450,461],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":450,\"end\":461},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":462,\"end\":553},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":554,\"end\":588},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":589,\"end\":651},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":652,\"end\":666},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":667,\"end\":696},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":697,\"end\":708}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst transaction = await publicClient.waitForTransactionReceipt( // [!code focus:99]\\n { hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' }\\n)\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":47,\"length\":11,\"target\":\"transaction\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":80,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst transaction = await publicClient.waitForTransactionReceipt( // [!code focus:99]\\n { hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' }\\n)\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":47,\"length\":11,\"target\":\"transaction\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":80,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4},{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[697,708],[667,696],[652,666],[589,651],[554,588],[462,553],[450,461],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":450,\"end\":461},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"start\":462,\"end\":553},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" blockNumber: 15132008n,\",\"start\":554,\"end\":588},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"start\":589,\"end\":651},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" ...\",\"start\":652,\"end\":666},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'success',\",\"start\":667,\"end\":696},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":697,\"end\":708}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst transaction = await publicClient.waitForTransactionReceipt( // [!code focus:99]\\n { hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d' }\\n)\\n// @log: {\\n\\n// @log: blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\\n\\n// @log: blockNumber: 15132008n,\\n\\n// @log: from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n\\n// @log: ...\\n\\n// @log: status: 'success',\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const transaction: TransactionReceipt\",\"start\":47,\"length\":11,\"target\":\"transaction\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":67,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) waitForTransactionReceipt: (args: WaitForTransactionReceiptParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\\n\\n- Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\\n- Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\\n - If a Transaction has been replaced:\\n - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\\n - Checks if one of the Transactions is a replacement\\n - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\",\"tags\":[[\"remarks\",\"The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\\n\\nTransactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\\n\\nThere are 3 types of Transaction Replacement reasons:\\n\\n- `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\\n- `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\\n- `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\"],[\"param\",\"args - {@link WaitForTransactionReceiptParameters}\"],[\"returns\",\"The transaction receipt. {@link WaitForTransactionReceiptReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst transactionReceipt = await client.waitForTransactionReceipt({\\n hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\\n})\"]],\"start\":80,\"length\":25,\"target\":\"waitForTransactionReceipt\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) hash: `0x${string}`\",\"docs\":\"The hash of the transaction.\",\"start\":131,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":4}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":210,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":211,\"length\":0,\"text\":\" blockHash: '0xaf1dadb8a98f1282e8f7b42cc3da8847bfa2cf4e227b8220403ae642e1173088',\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":212,\"length\":0,\"text\":\" blockNumber: 15132008n,\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":213,\"length\":0,\"text\":\" from: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":214,\"length\":0,\"text\":\" ...\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":215,\"length\":0,\"text\":\" status: 'success',\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":216,\"length\":0,\"text\":\"}\",\"line\":12,\"character\":0}]}}" diff --git a/site/.cache/twoslash.ecde9b3667ca94975fa9aa2653462172f6c6051a6822e2d8aa75291229124608.json b/site/.cache/twoslash.ecde9b3667ca94975fa9aa2653462172f6c6051a6822e2d8aa75291229124608.json index a07171155a..d27177445d 100644 --- a/site/.cache/twoslash.ecde9b3667ca94975fa9aa2653462172f6c6051a6822e2d8aa75291229124608.json +++ b/site/.cache/twoslash.ecde9b3667ca94975fa9aa2653462172f6c6051a6822e2d8aa75291229124608.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":177,\"length\":14,\"target\":\"verifierDomain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":260,\"length\":7,\"target\":\"version\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":295,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":328,\"length\":17,\"target\":\"verifyingContract\",\"line\":9,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":177,\"length\":14,\"target\":\"verifierDomain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":260,\"length\":7,\"target\":\"version\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":295,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":328,\"length\":17,\"target\":\"verifyingContract\",\"line\":9,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":177,\"length\":14,\"target\":\"verifierDomain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":260,\"length\":7,\"target\":\"version\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":295,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":328,\"length\":17,\"target\":\"verifyingContract\",\"line\":9,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signMessage({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n message: 'hello world',\\n verifierDomain: { // [!code focus]\\n name: 'SoladyAccount', // [!code focus]\\n version: '1', // [!code focus]\\n chainId: 1, // [!code focus]\\n verifyingContract: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n }, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signMessage: (parameters: SignMessageParameters) => Promise (+1 overload)\",\"start\":78,\"length\":11,\"target\":\"signMessage\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":94,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: SignableMessage\",\"start\":151,\"length\":7,\"target\":\"message\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) verifierDomain: {\\n name: string;\\n version: string;\\n chainId: number;\\n verifyingContract: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\";\\n}\",\"start\":177,\"length\":14,\"target\":\"verifierDomain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":216,\"length\":4,\"target\":\"name\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version: string\",\"start\":260,\"length\":7,\"target\":\"version\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number | bigint\",\"start\":295,\"length\":7,\"target\":\"chainId\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract: `0x${string}`\",\"start\":328,\"length\":17,\"target\":\"verifyingContract\",\"line\":9,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ee6bcdfe48c6a8cbaefc637a86088a8259e1f3c7852e148f5f471744429dcead.json b/site/.cache/twoslash.ee6bcdfe48c6a8cbaefc637a86088a8259e1f3c7852e148f5f471744429dcead.json index 36fff9c1ec..6140029618 100644 --- a/site/.cache/twoslash.ee6bcdfe48c6a8cbaefc637a86088a8259e1f3c7852e148f5f471744429dcead.json +++ b/site/.cache/twoslash.ee6bcdfe48c6a8cbaefc637a86088a8259e1f3c7852e148f5f471744429dcead.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":824,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":824,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":824,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,859]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ JSON-RPC Account\",\"start\":714,\"end\":742},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↑ Local Account\",\"start\":794,\"end\":819}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n transport: http()\\n}).extend(erc7739Actions({ \\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' \\n}))\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7739Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7739Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n// @log: ↑ JSON-RPC Account\\n\\n// export const account = privateKeyToAccount(...)\\n// @log: ↑ Local Account\\n\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":820,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { \\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail', \\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n verifier: '0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2' // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":47,\"length\":9,\"target\":\"signature\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\", Account | undefined>(parameters: SignTypedDataParameters<...>) => Promise (+1 overload)\",\"start\":78,\"length\":13,\"target\":\"signTypedData\",\"line\":2,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":96,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":153,\"length\":6,\"target\":\"domain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":168,\"length\":4,\"target\":\"name\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":192,\"length\":7,\"target\":\"version\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":210,\"length\":7,\"target\":\"chainId\",\"line\":7,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":226,\"length\":17,\"target\":\"verifyingContract\",\"line\":8,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":298,\"length\":5,\"target\":\"types\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":311,\"length\":6,\"target\":\"Person\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":329,\"length\":4,\"target\":\"name\",\"line\":12,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":343,\"length\":4,\"target\":\"type\",\"line\":12,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":369,\"length\":4,\"target\":\"name\",\"line\":13,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":385,\"length\":4,\"target\":\"type\",\"line\":13,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":415,\"length\":4,\"target\":\"Mail\",\"line\":15,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":431,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":445,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":471,\"length\":4,\"target\":\"name\",\"line\":17,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":483,\"length\":4,\"target\":\"type\",\"line\":17,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":509,\"length\":4,\"target\":\"name\",\"line\":18,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":527,\"length\":4,\"target\":\"type\",\"line\":18,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":559,\"length\":11,\"target\":\"primaryType\",\"line\":21,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":583,\"length\":7,\"target\":\"message\",\"line\":22,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":598,\"length\":4,\"target\":\"from\",\"line\":23,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":612,\"length\":4,\"target\":\"name\",\"line\":24,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":631,\"length\":6,\"target\":\"wallet\",\"line\":25,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":696,\"length\":2,\"target\":\"to\",\"line\":27,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":708,\"length\":4,\"target\":\"name\",\"line\":28,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":727,\"length\":6,\"target\":\"wallet\",\"line\":29,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":792,\"length\":8,\"target\":\"contents\",\"line\":31,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifier: \\\"0xCB9fA1eA9b8A3bf422a8639f23Df77ea66020eC2\\\"\",\"start\":824,\"length\":8,\"target\":\"verifier\",\"line\":33,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ee730b065ff04dc0095a01ad614dc028babb7b9c7fd328c7a3bd06470571bbd9.json b/site/.cache/twoslash.ee730b065ff04dc0095a01ad614dc028babb7b9c7fd328c7a3bd06470571bbd9.json new file mode 100644 index 0000000000..77446fc1e2 --- /dev/null +++ b/site/.cache/twoslash.ee730b065ff04dc0095a01ad614dc028babb7b9c7fd328c7a3bd06470571bbd9.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities?: WalletCapabilities | undefined\",\"start\":298,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":335,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":378,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n capabilities: { // [!code focus]\\n paymasterService: { // [!code focus]\\n url: 'https://...' // [!code focus]\\n } // [!code focus]\\n } // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) capabilities?: WalletCapabilities | undefined\",\"start\":298,\"length\":12,\"target\":\"capabilities\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) paymasterService: {\\n url: string;\\n}\",\"start\":335,\"length\":16,\"target\":\"paymasterService\",\"line\":14,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) url: string\",\"start\":378,\"length\":3,\"target\":\"url\",\"line\":15,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ee957ad856835a1256e2a39432396fc773da1228b2f427916a7e5b8b2a615204.json b/site/.cache/twoslash.ee957ad856835a1256e2a39432396fc773da1228b2f427916a7e5b8b2a615204.json index db0869db30..643179e099 100644 --- a/site/.cache/twoslash.ee957ad856835a1256e2a39432396fc773da1228b2f427916a7e5b8b2a615204.json +++ b/site/.cache/twoslash.ee957ad856835a1256e2a39432396fc773da1228b2f427916a7e5b8b2a615204.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst success = await walletClient.watchAsset({ // [!code focus:99]\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":48,\"length\":7,\"target\":\"success\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":77,\"length\":10,\"target\":\"watchAsset\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":112,\"length\":4,\"target\":\"type\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":129,\"length\":7,\"target\":\"options\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":144,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":203,\"length\":8,\"target\":\"decimals\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":221,\"length\":6,\"target\":\"symbol\",\"line\":7,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst success = await walletClient.watchAsset({ // [!code focus:99]\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":48,\"length\":7,\"target\":\"success\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":77,\"length\":10,\"target\":\"watchAsset\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":112,\"length\":4,\"target\":\"type\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":129,\"length\":7,\"target\":\"options\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":144,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":203,\"length\":8,\"target\":\"decimals\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":221,\"length\":6,\"target\":\"symbol\",\"line\":7,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst success = await walletClient.watchAsset({ // [!code focus:99]\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":48,\"length\":7,\"target\":\"success\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":77,\"length\":10,\"target\":\"watchAsset\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":112,\"length\":4,\"target\":\"type\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":129,\"length\":7,\"target\":\"options\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":144,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":203,\"length\":8,\"target\":\"decimals\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":221,\"length\":6,\"target\":\"symbol\",\"line\":7,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst success = await walletClient.watchAsset({ // [!code focus:99]\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const success: boolean\",\"start\":48,\"length\":7,\"target\":\"success\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":64,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) watchAsset: (args: WatchAssetParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/watchAsset\\n- JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\",\"tags\":[[\"param\",\"args - {@link WatchAssetParameters}\"],[\"returns\",\"Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst success = await client.watchAsset({\\n type: 'ERC20',\\n options: {\\n address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n decimals: 18,\\n symbol: 'WETH',\\n },\\n})\"]],\"start\":77,\"length\":10,\"target\":\"watchAsset\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) type: \\\"ERC20\\\"\",\"docs\":\"Token type.\",\"start\":112,\"length\":4,\"target\":\"type\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) options: {\\n address: string;\\n symbol: string;\\n decimals: number;\\n image?: string | undefined;\\n}\",\"start\":129,\"length\":7,\"target\":\"options\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"docs\":\"The address of the token contract\",\"start\":144,\"length\":7,\"target\":\"address\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) decimals: number\",\"docs\":\"The number of token decimals\",\"start\":203,\"length\":8,\"target\":\"decimals\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) symbol: string\",\"docs\":\"A ticker symbol or shorthand, up to 11 characters\",\"start\":221,\"length\":6,\"target\":\"symbol\",\"line\":7,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ef49b5dddfb5d354380909b1c3a4d23ec0acf2eaea436912d629c4f5029492b4.json b/site/.cache/twoslash.ef49b5dddfb5d354380909b1c3a4d23ec0acf2eaea436912d629c4f5029492b4.json deleted file mode 100644 index efa2524291..0000000000 --- a/site/.cache/twoslash.ef49b5dddfb5d354380909b1c3a4d23ec0acf2eaea436912d629c4f5029492b4.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n keepAlive: { interval: 1_000 }, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) keepAlive?: boolean | {\\n interval?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to send keep-alive ping messages.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"keepAlive\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The interval (in ms) to send keep-alive messages.\",\"tags\":[[\"default\",\"30_000\"]],\"start\":87,\"length\":8,\"target\":\"interval\",\"line\":1,\"character\":15}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,46]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { webSocket } from 'viem'\\n// ---cut---\\nconst transport = webSocket('wss://eth-mainnet.g.alchemy.com/v2/...', {\\n keepAlive: { interval: 1_000 }, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: WebSocketTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) webSocket(url?: string, config?: WebSocketTransportConfig): WebSocketTransport\\nimport webSocket\",\"tags\":[[\"description\",\"Creates a WebSocket transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":9,\"target\":\"webSocket\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) keepAlive?: boolean | {\\n interval?: number | undefined;\\n} | undefined\",\"docs\":\"Whether or not to send keep-alive ping messages.\",\"tags\":[[\"default\",\"true\"]],\"start\":74,\"length\":9,\"target\":\"keepAlive\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) interval?: number | undefined\",\"docs\":\"The interval (in ms) to send keep-alive messages.\",\"tags\":[[\"default\",\"30_000\"]],\"start\":87,\"length\":8,\"target\":\"interval\",\"line\":1,\"character\":15}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.efa6493480232e1a0d6863c757cfca2c379a5f110e0960597893253c5b2feee8.json b/site/.cache/twoslash.efa6493480232e1a0d6863c757cfca2c379a5f110e0960597893253c5b2feee8.json deleted file mode 100644 index 2301f52e0a..0000000000 --- a/site/.cache/twoslash.efa6493480232e1a0d6863c757cfca2c379a5f110e0960597893253c5b2feee8.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n } \\n ], \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":474,\"length\":4,\"target\":\"type\",\"line\":22,\"character\":6},{\"type\":\"completion\",\"start\":481,\"length\":0,\"completions\":[{\"name\":\"native-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"erc20-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"contract-call\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"'\",\"line\":22,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[940,957],[0,456]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":443,\"end\":456}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { walletActionsErc7715 } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(walletActionsErc7715())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":404,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\n// @noErrors\\nimport { parseEther } from 'viem'\\nimport { account, walletClient } from './config'\\n \\nconst result = await walletClient.grantPermissions({\\n account,\\n expiry: 1716846083638,\\n permissions: [ // [!code focus:19]\\n {\\n type: 'native-token-transfer',\\n data: {\\n ticker: 'ETH',\\n },\\n policies: [\\n {\\n type: 'token-allowance',\\n data: {\\n allowance: parseEther('1'),\\n },\\n },\\n ],\\n },\\n { \\n type: ' \\n// ^| \\n } \\n ], \\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[937],\"positionHighlights\":[]},\"queries\":[],\"completions\":[{\"type\":\"completion\",\"start\":481,\"length\":0,\"completions\":[{\"name\":\"native-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"erc20-token-transfer\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]},{\"name\":\"contract-call\",\"kindModifiers\":\"\",\"kind\":\"string\",\"sortText\":\"11\",\"replacementSpan\":{\"start\":533,\"length\":0},\"commitCharacters\":[]}],\"completionsPrefix\":\"'\",\"line\":22,\"character\":13}],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":52,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const result: GrantPermissionsReturnType\",\"start\":91,\"length\":6,\"target\":\"result\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":106,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) grantPermissions: (parameters: GrantPermissionsParameters) => Promise\",\"docs\":\"Request permissions from a wallet to perform actions on behalf of a user.\\n\\n- Docs: https://viem.sh/experimental/erc7715/grantPermissions\",\"tags\":[[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7715Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7715Actions())\\n\\nconst result = await client.grantPermissions({\\n expiry: 1716846083638,\\n permissions: [\\n {\\n type: 'contract-call',\\n data: {\\n address: '0x0000000000000000000000000000000000000000',\\n },\\n },\\n {\\n type: 'native-token-limit',\\n data: {\\n amount: 69420n,\\n },\\n required: true,\\n },\\n ],\\n})\"]],\"start\":119,\"length\":16,\"target\":\"grantPermissions\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account to assign the permissions to.\",\"start\":140,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) expiry: number\",\"docs\":\"Timestamp (in seconds) that specifies the time by which this session MUST expire.\",\"start\":151,\"length\":6,\"target\":\"expiry\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) permissions: readonly Permission[]\",\"docs\":\"Set of permissions to grant to the user.\",\"start\":176,\"length\":11,\"target\":\"permissions\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) type: \\\"native-token-transfer\\\"\",\"start\":223,\"length\":4,\"target\":\"type\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) data: {\\n ticker: string;\\n}\",\"start\":260,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) ticker: string\",\"docs\":\"Native token ticker (e.g. ETH).\",\"start\":276,\"length\":6,\"target\":\"ticker\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) policies: readonly Policy[]\",\"docs\":\"Set of policies for the permission.\",\"start\":306,\"length\":8,\"target\":\"policies\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) type: \\\"token-allowance\\\"\",\"start\":338,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) data: {\\n allowance: bigint;\\n}\",\"start\":373,\"length\":4,\"target\":\"data\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) allowance: bigint\",\"docs\":\"Token allowance (in wei).\",\"start\":393,\"length\":9,\"target\":\"allowance\",\"line\":16,\"character\":12},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":404,\"length\":10,\"target\":\"parseEther\",\"line\":16,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) type: {\\n custom: string;\\n}\",\"start\":474,\"length\":4,\"target\":\"type\",\"line\":22,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.efc2cf71bf96079cadbea26e640ae5daa88de447909d09ea77aaae1f6461c66e.json b/site/.cache/twoslash.efc2cf71bf96079cadbea26e640ae5daa88de447909d09ea77aaae1f6461c66e.json deleted file mode 100644 index 538852b99f..0000000000 --- a/site/.cache/twoslash.efc2cf71bf96079cadbea26e640ae5daa88de447909d09ea77aaae1f6461c66e.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n retryCount: 5, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":50,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,160]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n retryCount: 5, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) retryCount?: number | undefined\",\"docs\":\"The max number of times to retry.\",\"start\":50,\"length\":10,\"target\":\"retryCount\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f02b1fc617433813a6f457f2cb54d9c35c704ee3f7967fa893b940a3f8287220.json b/site/.cache/twoslash.f02b1fc617433813a6f457f2cb54d9c35c704ee3f7967fa893b940a3f8287220.json new file mode 100644 index 0000000000..975e31e0ba --- /dev/null +++ b/site/.cache/twoslash.f02b1fc617433813a6f457f2cb54d9c35c704ee3f7967fa893b940a3f8287220.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":122,\"length\":3,\"target\":\"gas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":154,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":206,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":213,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n gas: 21000n, // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":52,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly gas: 21000n;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":81,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gas: 21000n\",\"start\":122,\"length\":3,\"target\":\"gas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":154,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":206,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":213,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f1071987134eaeb7178d726bfc14f96af476c98f3cc0406c8a4763319f68582a.json b/site/.cache/twoslash.f1071987134eaeb7178d726bfc14f96af476c98f3cc0406c8a4763319f68582a.json new file mode 100644 index 0000000000..bdf26bf0e1 --- /dev/null +++ b/site/.cache/twoslash.f1071987134eaeb7178d726bfc14f96af476c98f3cc0406c8a4763319f68582a.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: string]: any;\\n atomic?: {\\n status: \\\"supported\\\" | \\\"ready\\\" | \\\"unsupported\\\";\\n } | undefined | undefined;\\n experimental_paymasterService?: {\\n supported: boolean;\\n } | undefined | undefined;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters | undefined) => Promise<{\\n [x: string]: any;\\n atomic?: {\\n status: \\\"supported\\\" | \\\"ready\\\" | \\\"unsupported\\\";\\n } | undefined | undefined;\\n experimental_paymasterService?: {\\n supported: boolean;\\n } | undefined | undefined;\\n} | {\\n ...;\\n}>\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" atomic: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" status: 'supported',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" paymasterService: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" atomic: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" status: 'supported',\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1146,1157],[1130,1145],[1112,1129],[1074,1111],[1049,1073],[1027,1048],[1011,1026],[993,1010],[959,992],[924,958],[906,923],[868,905],[843,867],[823,842],[811,822],[0,688]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"{\",\"start\":811,\"end\":822},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 8453: {\",\"start\":823,\"end\":842},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: {\",\"start\":843,\"end\":867},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'supported',\",\"start\":868,\"end\":905},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":906,\"end\":923},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" paymasterService: {\",\"start\":924,\"end\":958},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" supported: true,\",\"start\":959,\"end\":992},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":993,\"end\":1010},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1011,\"end\":1026},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" 84532: {\",\"start\":1027,\"end\":1048},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" atomic: {\",\"start\":1049,\"end\":1073},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" status: 'supported',\",\"start\":1074,\"end\":1111},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1112,\"end\":1129},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":1130,\"end\":1145},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}\",\"start\":1146,\"end\":1157}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":333,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":649,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { account, walletClient } from './config'\\n \\nconst capabilities = await walletClient.getCapabilities({\\n account,\\n})\\n// @log: {\\n\\n// @log: 8453: {\\n\\n// @log: atomic: {\\n\\n// @log: status: 'supported',\\n\\n// @log: },\\n\\n// @log: paymasterService: {\\n\\n// @log: supported: true,\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: 84532: {\\n\\n// @log: atomic: {\\n\\n// @log: status: 'supported',\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: }\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const account: `0x${string}`\\nimport account\",\"start\":9,\"length\":7,\"target\":\"account\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":18,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: string]: any;\\n atomic?: {\\n status: \\\"supported\\\" | \\\"ready\\\" | \\\"unsupported\\\";\\n } | undefined | undefined;\\n experimental_paymasterService?: {\\n supported: boolean;\\n } | undefined | undefined;\\n} | {\\n ...;\\n}\",\"start\":57,\"length\":12,\"target\":\"capabilities\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 33 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":78,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters | undefined) => Promise<{\\n [x: string]: any;\\n atomic?: {\\n status: \\\"supported\\\" | \\\"ready\\\" | \\\"unsupported\\\";\\n } | undefined | undefined;\\n experimental_paymasterService?: {\\n supported: boolean;\\n } | undefined | undefined;\\n} | {\\n ...;\\n}>\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":91,\"length\":15,\"target\":\"getCapabilities\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":111,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":123,\"length\":0,\"text\":\"{\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":124,\"length\":0,\"text\":\" 8453: {\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":125,\"length\":0,\"text\":\" atomic: {\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":126,\"length\":0,\"text\":\" status: 'supported',\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":127,\"length\":0,\"text\":\" },\",\"line\":9,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":128,\"length\":0,\"text\":\" paymasterService: {\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":129,\"length\":0,\"text\":\" supported: true,\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":130,\"length\":0,\"text\":\" },\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":131,\"length\":0,\"text\":\" },\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":132,\"length\":0,\"text\":\" 84532: {\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":133,\"length\":0,\"text\":\" atomic: {\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":134,\"length\":0,\"text\":\" status: 'supported',\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":135,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":136,\"length\":0,\"text\":\" },\",\"line\":18,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":137,\"length\":0,\"text\":\"}\",\"line\":20,\"character\":0}]}}" diff --git a/site/.cache/twoslash.f14961f0d61303986ebe6a6e9524fda9535c2f923746372cf63267ebcc1e6bde.json b/site/.cache/twoslash.f14961f0d61303986ebe6a6e9524fda9535c2f923746372cf63267ebcc1e6bde.json index 33175239c1..434e9124b3 100644 --- a/site/.cache/twoslash.f14961f0d61303986ebe6a6e9524fda9535c2f923746372cf63267ebcc1e6bde.json +++ b/site/.cache/twoslash.f14961f0d61303986ebe6a6e9524fda9535c2f923746372cf63267ebcc1e6bde.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":232,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":239,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":276,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":370,\"length\":5,\"target\":\"chain\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":377,\"length\":8,\"target\":\"optimism\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":232,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":239,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":276,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":370,\"length\":5,\"target\":\"chain\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":377,\"length\":8,\"target\":\"optimism\",\"line\":14,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":232,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":239,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":276,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":370,\"length\":5,\"target\":\"chain\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":377,\"length\":8,\"target\":\"optimism\",\"line\":14,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n chain: optimism, // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":76,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":83,\"length\":7,\"target\":\"execute\",\"line\":2,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":95,\"length\":7,\"target\":\"address\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":152,\"length\":5,\"target\":\"calls\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":175,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":232,\"length\":5,\"target\":\"value\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":239,\"length\":10,\"target\":\"parseEther\",\"line\":7,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":276,\"length\":4,\"target\":\"data\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":303,\"length\":2,\"target\":\"to\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n} | null | undefined\",\"start\":370,\"length\":5,\"target\":\"chain\",\"line\":14,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":377,\"length\":8,\"target\":\"optimism\",\"line\":14,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f189521c696f9c47d074757111e7f0a70dcbb15959d5c55d16a6f3356fabef82.json b/site/.cache/twoslash.f189521c696f9c47d074757111e7f0a70dcbb15959d5c55d16a6f3356fabef82.json deleted file mode 100644 index 33570ff48b..0000000000 --- a/site/.cache/twoslash.f189521c696f9c47d074757111e7f0a70dcbb15959d5c55d16a6f3356fabef82.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\\nconst authorization = await walletClient.signAuthorization({/* ... */}) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":182,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":189,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":198,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":209,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":220,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":227,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":253,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":288,\"length\":17,\"target\":\"signAuthorization\",\"line\":9,\"character\":41}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,13]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createWalletClient, http } from 'viem'\\nimport { anvil } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental' \\n \\nconst walletClient = createWalletClient({\\n chain: anvil,\\n transport: http(),\\n}).extend(eip7702Actions()) \\n\\nconst authorization = await walletClient.signAuthorization({/* ... */}) // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createWalletClient(parameters: WalletClientConfig): WalletClient, rpcSchema>\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createWalletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":57,\"length\":5,\"target\":\"anvil\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":93,\"length\":14,\"target\":\"eip7702Actions\",\"line\":2,\"character\":9},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":144,\"length\":12,\"target\":\"walletClient\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createWalletClient, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createWalletClient\",\"docs\":\"Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/wallet\\n\\nA Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\\n\\nThe Wallet Client supports signing over:\\n- [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\\n- [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\",\"tags\":[[\"param\",\"config - {@link WalletClientConfig}\"],[\"returns\",\"A Wallet Client. {@link WalletClient}\"],[\"example\",\"// JSON-RPC Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\"],[\"example\",\"// Local Account\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…')\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":159,\"length\":18,\"target\":\"createWalletClient\",\"line\":4,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":182,\"length\":5,\"target\":\"chain\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const anvil: {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport anvil\",\"start\":189,\"length\":5,\"target\":\"anvil\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":198,\"length\":9,\"target\":\"transport\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":209,\"length\":4,\"target\":\"http\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) extend: >(fn: (client: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, WalletActions<...>>) => Eip7702Actions<...>) => Client<...>\",\"start\":220,\"length\":6,\"target\":\"extend\",\"line\":7,\"character\":3},{\"type\":\"hover\",\"text\":\"(alias) eip7702Actions(): (client: Client) => Eip7702Actions\\nimport eip7702Actions\",\"docs\":\"A suite of EIP-7702 Actions.\",\"tags\":[[\"example\",\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst hash = await client.signAuthorization({ ... })\"]],\"start\":227,\"length\":14,\"target\":\"eip7702Actions\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":253,\"length\":13,\"target\":\"authorization\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers?: {\\n [key: string]: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n default: {\\n name: string;\\n url: string;\\n apiUrl?: string | undefined;\\n };\\n } | undefined;\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":275,\"length\":12,\"target\":\"walletClient\",\"line\":9,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":288,\"length\":17,\"target\":\"signAuthorization\",\"line\":9,\"character\":41}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f189f94473d7ea3d06414e65bb94510bfb64d5d866a3d4b300d1afc8b73768a7.json b/site/.cache/twoslash.f189f94473d7ea3d06414e65bb94510bfb64d5d866a3d4b300d1afc8b73768a7.json index 50bbc8b9aa..2e03d30570 100644 --- a/site/.cache/twoslash.f189f94473d7ea3d06414e65bb94510bfb64d5d866a3d4b300d1afc8b73768a7.json +++ b/site/.cache/twoslash.f189f94473d7ea3d06414e65bb94510bfb64d5d866a3d4b300d1afc8b73768a7.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,893]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,893]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":801,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n// ---cut---\\nconst capabilities = await walletClient.getCapabilities({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const capabilities: {\\n [x: number]: WalletCapabilities;\\n}\",\"start\":6,\"length\":12,\"target\":\"capabilities\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":27,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) getCapabilities: (parameters?: GetCapabilitiesParameters) => Promise\",\"docs\":\"Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\\n\\n- Docs: https://viem.sh/experimental/eip5792/getCapabilities\\n- JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"The wallet's capabilities. {@link GetCapabilitiesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst capabilities = await client.getCapabilities({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":40,\"length\":15,\"target\":\"getCapabilities\",\"line\":0,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":60,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f1eb64cfeb315ba8f05ba63df0680aac2090227600cbb9f62ab6e753bab4ee74.json b/site/.cache/twoslash.f1eb64cfeb315ba8f05ba63df0680aac2090227600cbb9f62ab6e753bab4ee74.json index c2f8a92273..8d9822fa91 100644 --- a/site/.cache/twoslash.f1eb64cfeb315ba8f05ba63df0680aac2090227600cbb9f62ab6e753bab4ee74.json +++ b/site/.cache/twoslash.f1eb64cfeb315ba8f05ba63df0680aac2090227600cbb9f62ab6e753bab4ee74.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonceManager: any;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonceManager: any\",\"start\":159,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":173,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"any\",\"start\":181,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,484]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":297,\"end\":325},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":394,\"end\":419}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonceManager: any;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonceManager: any\",\"start\":159,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":173,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"any\",\"start\":181,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":24}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonceManager: any;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonceManager: any\",\"start\":159,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":173,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"any\",\"start\":181,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,484]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":297,\"end\":325},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":394,\"end\":419}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n nonceManager: account.nonceManager // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":6,\"length\":7,\"target\":\"request\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":22,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n readonly nonceManager: any;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":35,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":0,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":65,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":76,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":128,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonceManager: any\",\"start\":159,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\"\",\"start\":173,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"any\",\"start\":181,\"length\":12,\"target\":\"nonceManager\",\"line\":4,\"character\":24}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f220974cc2dc7b405dba860aebd71f3298009614883e696c16ba7d4e3f219198.json b/site/.cache/twoslash.f220974cc2dc7b405dba860aebd71f3298009614883e696c16ba7d4e3f219198.json deleted file mode 100644 index a35d7bcabe..0000000000 --- a/site/.cache/twoslash.f220974cc2dc7b405dba860aebd71f3298009614883e696c16ba7d4e3f219198.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":71,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://eth-mainnet.g.alchemy.com/v2/...', {\\n name: 'Alchemy HTTP Provider', // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"docs\":\"The name of the HTTP transport.\",\"start\":71,\"length\":4,\"target\":\"name\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f2259084dd45c1bc5055f405314b07b9c0c88406dde37a0b79ee55b5cca38254.json b/site/.cache/twoslash.f2259084dd45c1bc5055f405314b07b9c0c88406dde37a0b79ee55b5cca38254.json new file mode 100644 index 0000000000..7da0adf78b --- /dev/null +++ b/site/.cache/twoslash.f2259084dd45c1bc5055f405314b07b9c0c88406dde37a0b79ee55b5cca38254.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":162,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":281,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":307,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { mainnet } from 'viem/chains'\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n chain: mainnet, // [!code focus]\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":9,\"length\":7,\"target\":\"mainnet\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":47,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":87,\"length\":2,\"target\":\"id\",\"line\":3,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":100,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: <{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>(parameters: SendCallsParameters<...>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":113,\"length\":9,\"target\":\"sendCalls\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"start\":127,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":134,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":162,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":183,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":239,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":246,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":281,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":307,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f25a09f60f3917c84b6a450842943e0e833b4587161135248d6ecd728685d843.json b/site/.cache/twoslash.f25a09f60f3917c84b6a450842943e0e833b4587161135248d6ecd728685d843.json index 3479595f32..4fb774b69a 100644 --- a/site/.cache/twoslash.f25a09f60f3917c84b6a450842943e0e833b4587161135248d6ecd728685d843.json +++ b/site/.cache/twoslash.f25a09f60f3917c84b6a450842943e0e833b4587161135248d6ecd728685d843.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":313,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":327,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":346,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":368,\"length\":9,\"target\":\"parseGwei\",\"line\":13,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":313,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":327,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":346,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":368,\"length\":9,\"target\":\"parseGwei\",\"line\":13,\"character\":24}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":313,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":327,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":346,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":368,\"length\":9,\"target\":\"parseGwei\",\"line\":13,\"character\":24}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', \\n value: parseEther('1')\\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n }, \\n ], \\n maxFeePerGas: parseGwei('20'),\\n maxPriorityFeePerGas: parseGwei('2'), // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":175,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":182,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":219,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":246,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":313,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":12,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":327,\"length\":9,\"target\":\"parseGwei\",\"line\":12,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) maxPriorityFeePerGas: any\",\"start\":346,\"length\":20,\"target\":\"maxPriorityFeePerGas\",\"line\":13,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":368,\"length\":9,\"target\":\"parseGwei\",\"line\":13,\"character\":24}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f2d12bcfef62c5fe82f16150ab463f8c9f862f927e9c935524eb28725ef5e797.json b/site/.cache/twoslash.f2d12bcfef62c5fe82f16150ab463f8c9f862f927e9c935524eb28725ef5e797.json index 2c711534a9..56bc9d2a3a 100644 --- a/site/.cache/twoslash.f2d12bcfef62c5fe82f16150ab463f8c9f862f927e9c935524eb28725ef5e797.json +++ b/site/.cache/twoslash.f2d12bcfef62c5fe82f16150ab463f8c9f862f927e9c935524eb28725ef5e797.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":62,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":96,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":107,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":62,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":96,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":107,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":62,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":96,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":107,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n chain: mainnet,\\n key: 'public', // [!code focus]\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":44,\"length\":5,\"target\":\"chain\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":51,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) key?: string | undefined\",\"docs\":\"A key for the client.\",\"start\":62,\"length\":3,\"target\":\"key\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":96,\"length\":9,\"target\":\"transport\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":107,\"length\":4,\"target\":\"http\",\"line\":3,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f2d5504ee16018c3312d0a13040fcf1d529eff5f59480af7e6a9873cda31c6da.json b/site/.cache/twoslash.f2d5504ee16018c3312d0a13040fcf1d529eff5f59480af7e6a9873cda31c6da.json index 5a2d4b443d..512cd5697b 100644 --- a/site/.cache/twoslash.f2d5504ee16018c3312d0a13040fcf1d529eff5f59480af7e6a9873cda31c6da.json +++ b/site/.cache/twoslash.f2d5504ee16018c3312d0a13040fcf1d529eff5f59480af7e6a9873cda31c6da.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":126,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":178,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":126,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":178,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":126,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":178,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst hash = await walletClient.sendTransaction({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":32,\"length\":15,\"target\":\"sendTransaction\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null)\",\"start\":52,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":126,\"length\":2,\"target\":\"to\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":178,\"length\":5,\"target\":\"value\",\"line\":3,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f2ef6bd647a43d12e080e07d1d19a2d20548c079812fda93313dcc6b1b228888.json b/site/.cache/twoslash.f2ef6bd647a43d12e080e07d1d19a2d20548c079812fda93313dcc6b1b228888.json new file mode 100644 index 0000000000..f97883e430 --- /dev/null +++ b/site/.cache/twoslash.f2ef6bd647a43d12e080e07d1d19a2d20548c079812fda93313dcc6b1b228888.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256' // [!code focus]\\n }],\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":111,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":196,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":234,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522',\\n type: 'p256' // [!code focus]\\n }],\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":111,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":196,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":234,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f3428d2b3cd1290666cb06a0c921c174f51d2c8943bf6d81812cc2ce0b8729f3.json b/site/.cache/twoslash.f3428d2b3cd1290666cb06a0c921c174f51d2c8943bf6d81812cc2ce0b8729f3.json deleted file mode 100644 index b1bbaa22c4..0000000000 --- a/site/.cache/twoslash.f3428d2b3cd1290666cb06a0c921c174f51d2c8943bf6d81812cc2ce0b8729f3.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n ping: ({ transport }) => transport.request({ method: 'eth_blockNumber' })\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ping?: ((parameters: {\\n transport: ReturnType;\\n}) => Promise | undefined) | undefined\",\"docs\":\"Ping method to determine latency.\",\"start\":81,\"length\":4,\"target\":\"ping\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transport: {\\n config: TransportConfig;\\n request: EIP1193RequestFn;\\n value?: Record | undefined;\\n}\",\"start\":90,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(parameter) transport: {\\n config: TransportConfig;\\n request: EIP1193RequestFn;\\n value?: Record | undefined;\\n}\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: string;\\n}, options?: EIP1193RequestOptions | undefined) => Promise\",\"start\":116,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) method: string\",\"start\":126,\"length\":6,\"target\":\"method\",\"line\":2,\"character\":49}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,173]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":0,\"end\":13}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"// @noErrors\\nimport { createPublicClient, fallback, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nconst alchemy = http('') \\nconst infura = http('') \\n// ---cut---\\nconst transport = fallback([alchemy, infura], {\\n rank: { // [!code focus:3]\\n ping: ({ transport }) => transport.request({ method: 'eth_blockNumber' })\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: FallbackTransport, HttpTransport]>\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) fallback, HttpTransport]>(transports_: readonly [HttpTransport, HttpTransport], config?: FallbackTransportConfig): FallbackTransport<...>\\nimport fallback\",\"start\":18,\"length\":8,\"target\":\"fallback\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"const alchemy: HttpTransport\",\"start\":28,\"length\":7,\"target\":\"alchemy\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"const infura: HttpTransport\",\"start\":37,\"length\":6,\"target\":\"infura\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) rank?: boolean | RankOptions | undefined\",\"docs\":\"Toggle to enable ranking, or rank options.\",\"start\":50,\"length\":4,\"target\":\"rank\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) ping?: ((parameters: {\\n transport: ReturnType;\\n}) => Promise | undefined) | undefined\",\"docs\":\"Ping method to determine latency.\",\"start\":81,\"length\":4,\"target\":\"ping\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) transport: {\\n config: TransportConfig;\\n request: EIP1193RequestFn;\\n value?: Record | undefined;\\n}\",\"start\":90,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":13},{\"type\":\"hover\",\"text\":\"(parameter) transport: {\\n config: TransportConfig;\\n request: EIP1193RequestFn;\\n value?: Record | undefined;\\n}\",\"start\":106,\"length\":9,\"target\":\"transport\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) request: (args: {\\n method: string;\\n}, options?: EIP1193RequestOptions | undefined) => Promise\",\"start\":116,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":39},{\"type\":\"hover\",\"text\":\"(property) method: string\",\"start\":126,\"length\":6,\"target\":\"method\",\"line\":2,\"character\":49}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f472e96d216f27f2b6411ab33c2de7ec4cf7b4210aa3306d1c1ed5bd2a968cfc.json b/site/.cache/twoslash.f472e96d216f27f2b6411ab33c2de7ec4cf7b4210aa3306d1c1ed5bd2a968cfc.json deleted file mode 100644 index 9d95a2d05d..0000000000 --- a/site/.cache/twoslash.f472e96d216f27f2b6411ab33c2de7ec4cf7b4210aa3306d1c1ed5bd2a968cfc.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.signAuthorization({\\n account: privateKeyToAccount('0x...'),\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":17,\"target\":\"signAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":156,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":165,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":197,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f4a9f43bd0ba3bed34501c9a7397bac606534a0ed90ee75b3e537de4ef1d763c.json b/site/.cache/twoslash.f4a9f43bd0ba3bed34501c9a7397bac606534a0ed90ee75b3e537de4ef1d763c.json index c153e989ad..17041762b7 100644 --- a/site/.cache/twoslash.f4a9f43bd0ba3bed34501c9a7397bac606534a0ed90ee75b3e537de4ef1d763c.json +++ b/site/.cache/twoslash.f4a9f43bd0ba3bed34501c9a7397bac606534a0ed90ee75b3e537de4ef1d763c.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":61,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":61,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const transport = http('https://1.rpc.thirdweb.com/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":61,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,41]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http } from 'viem'\\n// ---cut---\\nconst transport = http('https://1.rpc.thirdweb.com/...', {\\n timeout: 60_000, // [!code focus]\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const transport: HttpTransport\",\"start\":6,\"length\":9,\"target\":\"transport\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":18,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) timeout?: number | undefined\",\"docs\":\"The timeout (in ms) for the HTTP request. Default: 10_000\",\"start\":61,\"length\":7,\"target\":\"timeout\",\"line\":1,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f4b18462e6d149e6e81726558aec3e3929fee2969e2fe1136d00948d9463a09e.json b/site/.cache/twoslash.f4b18462e6d149e6e81726558aec3e3929fee2969e2fe1136d00948d9463a09e.json deleted file mode 100644 index 1951c26476..0000000000 --- a/site/.cache/twoslash.f4b18462e6d149e6e81726558aec3e3929fee2969e2fe1136d00948d9463a09e.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,781]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":371,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n account: privateKeyToAccount('0x...'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":742,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { walletClient } from './client'\\n\\nconst authorization = await walletClient.prepareAuthorization({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2'\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":61,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const authorization: PrepareAuthorizationReturnType\",\"start\":99,\"length\":13,\"target\":\"authorization\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":121,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) prepareAuthorization: (parameters: PrepareAuthorizationParameters<{\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}>) => Promise\",\"docs\":\"Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\\nThis Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\\n\\nWith the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/experimental/eip7702/signAuthorization) to sign over the Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link PrepareAuthorizationParameters}\"],[\"returns\",\"The prepared Authorization object. {@link PrepareAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst authorization = await client.prepareAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":134,\"length\":20,\"target\":\"prepareAuthorization\",\"line\":3,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":159,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":168,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":4,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":217,\"length\":15,\"target\":\"contractAddress\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f4d002d997831aed3dc0105d84088bb014336b2026578944e7e4b73cd4f1f629.json b/site/.cache/twoslash.f4d002d997831aed3dc0105d84088bb014336b2026578944e7e4b73cd4f1f629.json new file mode 100644 index 0000000000..884560da38 --- /dev/null +++ b/site/.cache/twoslash.f4d002d997831aed3dc0105d84088bb014336b2026578944e7e4b73cd4f1f629.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":93,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_signInWithEthereum?: RequiredBy, \\\"nonce\\\" | \\\"chainId\\\"> | undefined\",\"start\":113,\"length\":27,\"target\":\"unstable_signInWithEthereum\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":150,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":6},{\"type\":\"tag\",\"name\":\"log\",\"start\":200,\"length\":0,\"text\":\"[{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":201,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":202,\"length\":0,\"text\":\" capabilities: {\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":203,\"length\":0,\"text\":\" unstable_signInWithEthereum: {\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\" message: 'example.com wants you to sign in with your Ethereum account...',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" },\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"}]\",\"line\":19,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[944,956],[929,943],[912,928],[815,911],[724,814],[679,723],[651,678],[584,650],[571,583],[0,371]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"[{\",\"start\":571,\"end\":583},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"start\":584,\"end\":650},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" capabilities: {\",\"start\":651,\"end\":678},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" unstable_signInWithEthereum: {\",\"start\":679,\"end\":723},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" message: 'example.com wants you to sign in with your Ethereum account...',\",\"start\":724,\"end\":814},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\",\"start\":815,\"end\":911},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":912,\"end\":928},{\"type\":\"tag\",\"name\":\"log\",\"value\":\" },\",\"start\":929,\"end\":943},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"}]\",\"start\":944,\"end\":956}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7846Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { accounts } = await walletClient.connect({\\n capabilities: {\\n unstable_signInWithEthereum: {\\n chainId: 1,\\n nonce: 'abcd1234',\\n }\\n }\\n})\\n// @log: [{\\n\\n// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\\n\\n// @log: capabilities: {\\n\\n// @log: unstable_signInWithEthereum: {\\n\\n// @log: message: 'example.com wants you to sign in with your Ethereum account...',\\n\\n// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\\n\\n// @log: },\\n\\n// @log: },\\n\\n// @log: }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: readonly {\\n address: Address;\\n capabilities?: ExtractCapabilities<\\\"connect\\\", \\\"ReturnType\\\"> | undefined;\\n}[]\",\"start\":49,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":68,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":27},{\"type\":\"hover\",\"text\":\"(property) connect: (parameters?: ConnectParameters | undefined) => Promise\",\"docs\":\"Requests to connect to a wallet.\\n\\n- Docs: https://viem.sh/experimental/erc7846/connect\\n- JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link ConnectParameters}\"],[\"returns\",\"List of accounts managed by a wallet {@link ConnectReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7846Actions } from 'viem/experimental/erc7846'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7846Actions())\\n\\nconst response = await client.connect()\"]],\"start\":81,\"length\":7,\"target\":\"connect\",\"line\":2,\"character\":40},{\"type\":\"hover\",\"text\":\"(property) capabilities?: {\\n [x: string]: any;\\n unstable_addSubAccount?: {\\n account: AddSubAccountParameters;\\n } | undefined | undefined;\\n unstable_getSubAccounts?: boolean | undefined | undefined;\\n unstable_signInWithEthereum?: RequiredBy<...> | undefined;\\n} | undefined\",\"start\":93,\"length\":12,\"target\":\"capabilities\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) unstable_signInWithEthereum?: RequiredBy, \\\"nonce\\\" | \\\"chainId\\\"> | undefined\",\"start\":113,\"length\":27,\"target\":\"unstable_signInWithEthereum\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) Chain ID to which the session is bound,\",\"start\":150,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) nonce: string\",\"docs\":\"A random string typically chosen by the relying party and used to prevent replay attacks.\",\"start\":168,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":6}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":200,\"length\":0,\"text\":\"[{\",\"line\":10,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":201,\"length\":0,\"text\":\" address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906',\",\"line\":11,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":202,\"length\":0,\"text\":\" capabilities: {\",\"line\":12,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":203,\"length\":0,\"text\":\" unstable_signInWithEthereum: {\",\"line\":13,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":204,\"length\":0,\"text\":\" message: 'example.com wants you to sign in with your Ethereum account...',\",\"line\":14,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":205,\"length\":0,\"text\":\" signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',\",\"line\":15,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":206,\"length\":0,\"text\":\" },\",\"line\":16,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":207,\"length\":0,\"text\":\" },\",\"line\":17,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":208,\"length\":0,\"text\":\"}]\",\"line\":19,\"character\":0}]}}" diff --git a/site/.cache/twoslash.f5567fba5d31db6c263886e96404a75661bdcbe62543bde7562c6a8346e8a706.json b/site/.cache/twoslash.f5567fba5d31db6c263886e96404a75661bdcbe62543bde7562c6a8346e8a706.json index f1cc6ba983..9afae29315 100644 --- a/site/.cache/twoslash.f5567fba5d31db6c263886e96404a75661bdcbe62543bde7562c6a8346e8a706.json +++ b/site/.cache/twoslash.f5567fba5d31db6c263886e96404a75661bdcbe62543bde7562c6a8346e8a706.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: TransactionSerializedLegacy\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":68,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":78,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: TransactionSerializedLegacy\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":68,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":78,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: TransactionSerializedLegacy\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":68,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":78,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n gasPrice: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1') \\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: TransactionSerializedLegacy\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly gasPrice: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) gasPrice: any\",\"start\":68,\"length\":8,\"target\":\"gasPrice\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":78,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":12},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":114,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f55aca9037d9cae091808ce9f9295b8d2c92776049a2aa5a0776b1f640f41d12.json b/site/.cache/twoslash.f55aca9037d9cae091808ce9f9295b8d2c92776049a2aa5a0776b1f640f41d12.json index 778a2277fa..ab9354e082 100644 --- a/site/.cache/twoslash.f55aca9037d9cae091808ce9f9295b8d2c92776049a2aa5a0776b1f640f41d12.json +++ b/site/.cache/twoslash.f55aca9037d9cae091808ce9f9295b8d2c92776049a2aa5a0776b1f640f41d12.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f5bcb549e1e4b73f2891811613846195f0437ada11ecfb309de5c39eb8bdec05.json b/site/.cache/twoslash.f5bcb549e1e4b73f2891811613846195f0437ada11ecfb309de5c39eb8bdec05.json index e59ad36045..6a4f833637 100644 --- a/site/.cache/twoslash.f5bcb549e1e4b73f2891811613846195f0437ada11ecfb309de5c39eb8bdec05.json +++ b/site/.cache/twoslash.f5bcb549e1e4b73f2891811613846195f0437ada11ecfb309de5c39eb8bdec05.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1203]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { client } from './config'\\n// ---cut---\\nconst hash = await client.execute({\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [ \\n { \\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]\\n value: parseEther('1') \\n }, \\n { \\n data: '0xdeadbeef', \\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus]\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":19,\"length\":6,\"target\":\"client\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":26,\"length\":7,\"target\":\"execute\",\"line\":0,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":38,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":95,\"length\":5,\"target\":\"calls\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":118,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":191,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":198,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":236,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":263,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f6747cc0a235c8d078340912a5c8f67ffa94d555039e1145d50ab234e209e372.json b/site/.cache/twoslash.f6747cc0a235c8d078340912a5c8f67ffa94d555039e1145d50ab234e209e372.json new file mode 100644 index 0000000000..4a374aad24 --- /dev/null +++ b/site/.cache/twoslash.f6747cc0a235c8d078340912a5c8f67ffa94d555039e1145d50ab234e209e372.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) id?: string | undefined\",\"start\":298,\"length\":2,\"target\":\"id\",\"line\":13,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1249]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":409,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\nimport { createWalletClient, custom } from 'viem'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\n// Retrieve Account from an EIP-1193 Provider.\\nconst [account] = await window.ethereum!.request({ \\n method: 'eth_requestAccounts' \\n})\\n\\nexport const walletClient = createWalletClient({\\n account,\\n transport: custom(window.ethereum!)\\n}).extend(eip5792Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":818,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(eip5792Actions())\\n\\nexport const [account] = await walletClient.getAddresses()\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1210,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n\\nconst { id } = await walletClient.sendCalls({\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n id: '', // [!code focus]\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const id: string\",\"start\":49,\"length\":2,\"target\":\"id\",\"line\":2,\"character\":8},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":62,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) sendCalls: (parameters: SendCallsParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Requests the connected wallet to send a batch of calls.\\n\\n- Docs: https://viem.sh/experimental/eip5792/sendCalls\\n- JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"returns\",\"Transaction identifier. {@link SendCallsReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { eip5792Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(eip5792Actions())\\n\\nconst id = await client.sendCalls({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n calls: [\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n ],\\n})\"]],\"start\":75,\"length\":9,\"target\":\"sendCalls\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) calls: readonly unknown[]\",\"start\":89,\"length\":5,\"target\":\"calls\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":110,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":166,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":173,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data: string\",\"start\":208,\"length\":4,\"target\":\"data\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":234,\"length\":2,\"target\":\"to\",\"line\":10,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) id?: string | undefined\",\"start\":298,\"length\":2,\"target\":\"id\",\"line\":13,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f68979f3f1dc85576839396787da9d431f308885e00f27fa797684492e84a477.json b/site/.cache/twoslash.f68979f3f1dc85576839396787da9d431f308885e00f27fa797684492e84a477.json index 38e60a481e..841bccebac 100644 --- a/site/.cache/twoslash.f68979f3f1dc85576839396787da9d431f308885e00f27fa797684492e84a477.json +++ b/site/.cache/twoslash.f68979f3f1dc85576839396787da9d431f308885e00f27fa797684492e84a477.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":236,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":236,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":236,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseGwei } from 'viem'\\n\\nconst data = await publicClient.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":9,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const data: CallReturnType\",\"start\":40,\"length\":4,\"target\":\"data\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":53,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) call: (parameters: CallParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Executes a new message call immediately without submitting a transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/call\\n- JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\",\"tags\":[[\"param\",\"args - {@link CallParameters}\"],[\"returns\",\"The call data. {@link CallReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst data = await client.call({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":66,\"length\":4,\"target\":\"call\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":75,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\\\"\",\"start\":132,\"length\":4,\"target\":\"data\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":186,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":200,\"length\":9,\"target\":\"parseGwei\",\"line\":5,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":236,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f6b1e17a8c7db184281d0a1d59b6b9ff9dccae6f7d28af345904d98d2c2206c9.json b/site/.cache/twoslash.f6b1e17a8c7db184281d0a1d59b6b9ff9dccae6f7d28af345904d98d2c2206c9.json index 179f3d3afc..bd39ae815d 100644 --- a/site/.cache/twoslash.f6b1e17a8c7db184281d0a1d59b6b9ff9dccae6f7d28af345904d98d2c2206c9.json +++ b/site/.cache/twoslash.f6b1e17a8c7db184281d0a1d59b6b9ff9dccae6f7d28af345904d98d2c2206c9.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n events: parseAbi([ // [!code focus:5]\\n 'event Approval(address indexed owner, address indexed sender, uint256 value)',\\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\\n ]),\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":39,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":49,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":62,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) events?: readonly [{\\n readonly name: \\\"Approval\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"sender\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, {\\n ...;\\n}] | undefined\",\"start\":77,\"length\":6,\"target\":\"events\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]>(signatures: [\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":286,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":294,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":302,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":310,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":314,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbi } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n events: parseAbi([ // [!code focus:5]\\n 'event Approval(address indexed owner, address indexed sender, uint256 value)',\\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\\n ]),\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":39,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":49,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":62,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) events?: readonly [{\\n readonly name: \\\"Approval\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"sender\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, {\\n ...;\\n}] | undefined\",\"start\":77,\"length\":6,\"target\":\"events\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]>(signatures: [\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":286,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":294,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":302,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":310,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":314,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseAbi } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n events: parseAbi([ // [!code focus:5]\\n 'event Approval(address indexed owner, address indexed sender, uint256 value)',\\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\\n ]),\\n onLogs: logs => console.log(logs)\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":39,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":49,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":62,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) events?: readonly [{\\n readonly name: \\\"Approval\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"sender\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, {\\n ...;\\n}] | undefined\",\"start\":77,\"length\":6,\"target\":\"events\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]>(signatures: [\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":286,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":294,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":302,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":310,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":314,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseAbi } from 'viem'\\n\\nconst unwatch = publicClient.watchEvent({\\n events: parseAbi([ // [!code focus:5]\\n 'event Approval(address indexed owner, address indexed sender, uint256 value)',\\n 'event Transfer(address indexed from, address indexed to, uint256 value)',\\n ]),\\n onLogs: logs => console.log(logs)\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseAbi(signatures: signatures[\\\"length\\\"] extends 0 ? Error<\\\"At least one signature required\\\"> : Signatures extends signatures ? signatures : Signatures): ParseAbi\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":9,\"length\":8,\"target\":\"parseAbi\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":39,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":49,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters<...>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":62,\"length\":10,\"target\":\"watchEvent\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) events?: readonly [{\\n readonly name: \\\"Approval\\\";\\n readonly type: \\\"event\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"address\\\";\\n readonly name: \\\"owner\\\";\\n readonly indexed: true;\\n }, {\\n readonly type: \\\"address\\\";\\n readonly name: \\\"sender\\\";\\n readonly indexed: true;\\n }, {\\n ...;\\n }];\\n}, {\\n ...;\\n}] | undefined\",\"start\":77,\"length\":6,\"target\":\"events\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]>(signatures: [\\\"event Approval(address indexed owner, address indexed sender, uint256 value)\\\", \\\"event Transfer(address indexed from, address indexed to, uint256 value)\\\"]): readonly [...]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":85,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":286,\"length\":6,\"target\":\"onLogs\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":294,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":302,\"length\":7,\"target\":\"console\",\"line\":7,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":310,\"length\":3,\"target\":\"log\",\"line\":7,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":314,\"length\":4,\"target\":\"logs\",\"line\":7,\"character\":30}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f6ffd6439694536fd2ef148d795d0ebb14bc611277f2c4d0cb5fb7d7741660fa.json b/site/.cache/twoslash.f6ffd6439694536fd2ef148d795d0ebb14bc611277f2c4d0cb5fb7d7741660fa.json index e98493ab7d..1930c36c3e 100644 --- a/site/.cache/twoslash.f6ffd6439694536fd2ef148d795d0ebb14bc611277f2c4d0cb5fb7d7741660fa.json +++ b/site/.cache/twoslash.f6ffd6439694536fd2ef148d795d0ebb14bc611277f2c4d0cb5fb7d7741660fa.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":95,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":103,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":123,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":95,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":103,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":123,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const unwatch = publicClient.watchEvent(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":95,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":103,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":123,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nconst unwatch = publicClient.watchEvent(\\n { \\n pollingInterval: 1_000, // [!code focus]\\n onLogs: logs => console.log(logs),\\n }\\n)\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":6,\"length\":7,\"target\":\"unwatch\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":16,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":29,\"length\":10,\"target\":\"watchEvent\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) pollingInterval?: number | undefined\",\"docs\":\"Polling frequency (in ms). Defaults to Client's pollingInterval config.\",\"tags\":[[\"default\",\"client.pollingInterval\"]],\"start\":50,\"length\":15,\"target\":\"pollingInterval\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":95,\"length\":6,\"target\":\"onLogs\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":103,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":111,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":20},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":119,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":28},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":123,\"length\":4,\"target\":\"logs\",\"line\":3,\"character\":32}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f7e3b4e83fe95f5c513efcc7a5a6abe873a47d71777b9dc2287722b7f2abbf2a.json b/site/.cache/twoslash.f7e3b4e83fe95f5c513efcc7a5a6abe873a47d71777b9dc2287722b7f2abbf2a.json index 68832767a8..6a1f0941e5 100644 --- a/site/.cache/twoslash.f7e3b4e83fe95f5c513efcc7a5a6abe873a47d71777b9dc2287722b7f2abbf2a.json +++ b/site/.cache/twoslash.f7e3b4e83fe95f5c513efcc7a5a6abe873a47d71777b9dc2287722b7f2abbf2a.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n }[];\\n})[]\",\"start\":345,\"length\":7,\"target\":\"batches\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":368,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":397,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":457,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":464,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n}[]\",\"start\":518,\"length\":5,\"target\":\"calls\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":547,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":607,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":622,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":657,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":785,\"length\":2,\"target\":\"to\",\"line\":31,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":845,\"length\":3,\"target\":\"abi\",\"line\":32,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":860,\"length\":12,\"target\":\"functionName\",\"line\":33,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":900,\"length\":4,\"target\":\"args\",\"line\":34,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n }[];\\n})[]\",\"start\":345,\"length\":7,\"target\":\"batches\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":368,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":397,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":457,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":464,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n}[]\",\"start\":518,\"length\":5,\"target\":\"calls\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":547,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":607,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":622,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":657,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":785,\"length\":2,\"target\":\"to\",\"line\":31,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":845,\"length\":3,\"target\":\"abi\",\"line\":32,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":860,\"length\":12,\"target\":\"functionName\",\"line\":33,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":900,\"length\":4,\"target\":\"args\",\"line\":34,\"character\":10}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n }[];\\n})[]\",\"start\":345,\"length\":7,\"target\":\"batches\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":368,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":397,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":457,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":464,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n}[]\",\"start\":518,\"length\":5,\"target\":\"calls\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":547,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":607,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":622,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":657,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":785,\"length\":2,\"target\":\"to\",\"line\":31,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":845,\"length\":3,\"target\":\"abi\",\"line\":32,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":860,\"length\":12,\"target\":\"functionName\",\"line\":33,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":900,\"length\":4,\"target\":\"args\",\"line\":34,\"character\":10}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n\\nconst abi = parseAbi([\\n 'function approve(address, uint256) returns (bool)',\\n 'function transferFrom(address, address, uint256) returns (bool)',\\n])\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n batches: [\\n {\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n ]\\n },\\n {\\n calls: [\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'approve',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', \\n 100n\\n ],\\n },\\n {\\n to: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi,\\n functionName: 'transferFrom',\\n args: [\\n '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n '0x0000000000000000000000000000000000000000',\\n 100n\\n ],\\n },\\n ],\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const abi: any\",\"start\":84,\"length\":3,\"target\":\"abi\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"any\",\"start\":90,\"length\":8,\"target\":\"parseAbi\",\"line\":3,\"character\":12},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":236,\"length\":4,\"target\":\"hash\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":249,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters | undefined;\\n}, undefined, undefined>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":256,\"length\":7,\"target\":\"execute\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":288,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) batches: ({\\n calls: {\\n to: string;\\n value: bigint;\\n }[];\\n} | {\\n calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n }[];\\n})[]\",\"start\":345,\"length\":7,\"target\":\"batches\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n value: bigint;\\n}[]\",\"start\":368,\"length\":5,\"target\":\"calls\",\"line\":12,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":397,\"length\":2,\"target\":\"to\",\"line\":14,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":457,\"length\":5,\"target\":\"value\",\"line\":15,\"character\":10},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":464,\"length\":10,\"target\":\"parseEther\",\"line\":15,\"character\":17},{\"type\":\"hover\",\"text\":\"(property) calls: {\\n to: string;\\n abi: any;\\n functionName: string;\\n args: (string | bigint)[];\\n}[]\",\"start\":518,\"length\":5,\"target\":\"calls\",\"line\":20,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":547,\"length\":2,\"target\":\"to\",\"line\":22,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":607,\"length\":3,\"target\":\"abi\",\"line\":23,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":622,\"length\":12,\"target\":\"functionName\",\"line\":24,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":657,\"length\":4,\"target\":\"args\",\"line\":25,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) to: string\",\"start\":785,\"length\":2,\"target\":\"to\",\"line\":31,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) abi: any\",\"start\":845,\"length\":3,\"target\":\"abi\",\"line\":32,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) functionName: string\",\"start\":860,\"length\":12,\"target\":\"functionName\",\"line\":33,\"character\":10},{\"type\":\"hover\",\"text\":\"(property) args: (string | bigint)[]\",\"start\":900,\"length\":4,\"target\":\"args\",\"line\":34,\"character\":10}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f8018b158e51c44e8606ee182dae250feab13d8b14bcaa263e28a6b346fde3aa.json b/site/.cache/twoslash.f8018b158e51c44e8606ee182dae250feab13d8b14bcaa263e28a6b346fde3aa.json index 887bc52b55..e0902ccaf7 100644 --- a/site/.cache/twoslash.f8018b158e51c44e8606ee182dae250feab13d8b14bcaa263e28a6b346fde3aa.json +++ b/site/.cache/twoslash.f8018b158e51c44e8606ee182dae250feab13d8b14bcaa263e28a6b346fde3aa.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":118,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":192,\"length\":6,\"target\":\"onLogs\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":200,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":208,\"length\":7,\"target\":\"console\",\"line\":5,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":216,\"length\":3,\"target\":\"log\",\"line\":5,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":220,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":10,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1344,1392],[1313,1343],[1273,1312],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1273,\"end\":1312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1313,\"end\":1343},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1344,\"end\":1392}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":118,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":192,\"length\":6,\"target\":\"onLogs\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":200,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":208,\"length\":7,\"target\":\"console\",\"line\":5,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":216,\"length\":3,\"target\":\"log\",\"line\":5,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":220,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":10,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":118,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":192,\"length\":6,\"target\":\"onLogs\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":200,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":208,\"length\":7,\"target\":\"console\",\"line\":5,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":216,\"length\":3,\"target\":\"log\",\"line\":5,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":220,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":30},{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":10,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[1344,1392],[1313,1343],[1273,1312],[0,1044]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }]\",\"start\":1273,\"end\":1312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }]\",\"start\":1313,\"end\":1343},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"start\":1344,\"end\":1392}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":402,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":603,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":804,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1005,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\nimport { wagmiAbi } from './abi'\\n\\nconst unwatch = publicClient.watchEvent({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // [!code focus]\\n onLogs: logs => console.log(logs)\\n})\\n// @log: > [{ ... }, { ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }]\\n\\n// @log: > [{ ... }, { ... }, { ... }, { ... }]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"import wagmiAbi\",\"start\":49,\"length\":8,\"target\":\"wagmiAbi\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchEventReturnType\",\"start\":80,\"length\":7,\"target\":\"unwatch\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":90,\"length\":12,\"target\":\"publicClient\",\"line\":3,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchEvent: (args: WatchEventParameters>) => WatchEventReturnType\",\"docs\":\"Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\\n\\n- Docs: https://viem.sh/docs/actions/public/watchEvent\\n- JSON-RPC Methods:\\n - **RPC Provider supports `eth_newFilter`:**\\n - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\\n - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\\n - **RPC Provider does not support `eth_newFilter`:**\\n - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\",\"tags\":[[\"remarks\",\"This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\\n\\n`watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\"],[\"param\",\"args - {@link WatchEventParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = client.watchEvent({\\n onLogs: (logs) => console.log(logs),\\n})\"]],\"start\":103,\"length\":10,\"target\":\"watchEvent\",\"line\":3,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) address?: `0x${string}` | `0x${string}`[] | undefined\",\"docs\":\"The address of the contract.\",\"start\":118,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) onLogs: WatchEventOnLogsFn\",\"docs\":\"The callback to call when new event logs are received.\",\"start\":192,\"length\":6,\"target\":\"onLogs\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":200,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":10},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":208,\"length\":7,\"target\":\"console\",\"line\":5,\"character\":18},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":216,\"length\":3,\"target\":\"log\",\"line\":5,\"character\":26},{\"type\":\"hover\",\"text\":\"(parameter) logs: WatchEventOnLogsParameter\",\"start\":220,\"length\":4,\"target\":\"logs\",\"line\":5,\"character\":30}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":229,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }]\",\"line\":7,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":230,\"length\":0,\"text\":\"> [{ ... }, { ... }]\",\"line\":8,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":231,\"length\":0,\"text\":\"> [{ ... }, { ... }, { ... }, { ... }]\",\"line\":10,\"character\":0}]}}" diff --git a/site/.cache/twoslash.f8673ca4d51b076ad8503da0c8483a896fa408d9094dc04d7a4d3e6ee24d7487.json b/site/.cache/twoslash.f8673ca4d51b076ad8503da0c8483a896fa408d9094dc04d7a4d3e6ee24d7487.json index c67265ce77..de33c4301e 100644 --- a/site/.cache/twoslash.f8673ca4d51b076ad8503da0c8483a896fa408d9094dc04d7a4d3e6ee24d7487.json +++ b/site/.cache/twoslash.f8673ca4d51b076ad8503da0c8483a896fa408d9094dc04d7a4d3e6ee24d7487.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":76,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":89,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":109,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":116,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":76,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":89,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":109,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":116,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":76,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":89,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":109,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":116,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nimport { optimism } from 'viem/chains' // [!code focus]\\n\\nconst hash = await walletClient.sendTransaction({\\n chain: optimism, // [!code focus]\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":9,\"length\":8,\"target\":\"optimism\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":63,\"length\":4,\"target\":\"hash\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":76,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n };\\n readonly account: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: 1000000000000000000n;\\n}, {\\n ...;\\n}>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":89,\"length\":15,\"target\":\"sendTransaction\",\"line\":2,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\",\"start\":109,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const optimism: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Optimism Explorer\\\";\\n readonly url: \\\"https://optimistic.etherscan.io\\\";\\n readonly apiUrl: \\\"https://api-optimistic.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers: {\\n readonly transaction: typeof import(\\\"/Users/jakemoxey/git/viem/src/_types/op-stack/serializers\\\").serializeTransactionOpStack;\\n };\\n}\\nimport optimism\",\"start\":116,\"length\":8,\"target\":\"optimism\",\"line\":3,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":145,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":156,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: 1000000000000000000n\",\"start\":208,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f91afa3cbf60fb358dd0e745cf5ac6758f6f6528d1eac80ebcc06561ac7d5e91.json b/site/.cache/twoslash.f91afa3cbf60fb358dd0e745cf5ac6758f6f6528d1eac80ebcc06561ac7d5e91.json new file mode 100644 index 0000000000..250613102b --- /dev/null +++ b/site/.cache/twoslash.f91afa3cbf60fb358dd0e745cf5ac6758f6f6528d1eac80ebcc06561ac7d5e91.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { isErc6492Signature } from 'viem/utils'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":9,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":55,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":64,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":2,\"character\":15}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { isErc6492Signature } from 'viem/utils'\\n\\nconst result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":9,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: boolean\",\"start\":55,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) isErc6492Signature(signature: IsErc6492SignatureParameters): IsErc6492SignatureReturnType\\nimport isErc6492Signature\",\"docs\":\"Whether or not the signature is an ERC-6492 formatted signature.\",\"start\":64,\"length\":18,\"target\":\"isErc6492Signature\",\"line\":2,\"character\":15}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.f91b1c3a47d468d884cbefef1424ba437c263e44cac8a764d81b3f394665566b.json b/site/.cache/twoslash.f91b1c3a47d468d884cbefef1424ba437c263e44cac8a764d81b3f394665566b.json index 9f8a852405..2ee0e626b5 100644 --- a/site/.cache/twoslash.f91b1c3a47d468d884cbefef1424ba437c263e44cac8a764d81b3f394665566b.json +++ b/site/.cache/twoslash.f91b1c3a47d468d884cbefef1424ba437c263e44cac8a764d81b3f394665566b.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst blockNumber = await client.getBlockNumber() // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":172,\"length\":11,\"target\":\"blockNumber\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":192,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":199,\"length\":14,\"target\":\"getBlockNumber\",\"line\":8,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst blockNumber = await client.getBlockNumber() // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":172,\"length\":11,\"target\":\"blockNumber\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":192,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":199,\"length\":14,\"target\":\"getBlockNumber\",\"line\":8,\"character\":33}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst blockNumber = await client.getBlockNumber() // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":172,\"length\":11,\"target\":\"blockNumber\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":192,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":199,\"length\":14,\"target\":\"getBlockNumber\",\"line\":8,\"character\":33}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst blockNumber = await client.getBlockNumber() // [!code focus]\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function createPublicClient(parameters: PublicClientConfig): PublicClient, rpcSchema>\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":9,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function http(url?: string | undefined, config?: HttpTransportConfig): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":29,\"length\":4,\"target\":\"http\",\"line\":0,\"character\":29},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":57,\"length\":7,\"target\":\"mainnet\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":93,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":102,\"length\":18,\"target\":\"createPublicClient\",\"line\":3,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) chain?: Chain | {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | undefined\",\"docs\":\"Chain for the client.\",\"start\":125,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":132,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":143,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":154,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13},{\"type\":\"hover\",\"text\":\"const blockNumber: bigint\",\"start\":172,\"length\":11,\"target\":\"blockNumber\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"const client: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":192,\"length\":6,\"target\":\"client\",\"line\":8,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) getBlockNumber: (args?: GetBlockNumberParameters | undefined) => Promise\",\"docs\":\"Returns the number of the most recent block seen.\\n\\n- Docs: https://viem.sh/docs/actions/public/getBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\\n- JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\",\"tags\":[[\"param\",\"args - {@link GetBlockNumberParameters}\"],[\"returns\",\"The number of the block. {@link GetBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst blockNumber = await client.getBlockNumber()\\n// 69420n\"]],\"start\":199,\"length\":14,\"target\":\"getBlockNumber\",\"line\":8,\"character\":33}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.faadbb57c777e43ad038e46707058677be37da8b4a943510592af08a832c1dc0.json b/site/.cache/twoslash.faadbb57c777e43ad038e46707058677be37da8b4a943510592af08a832c1dc0.json index 036887dc26..52d0ffb6c8 100644 --- a/site/.cache/twoslash.faadbb57c777e43ad038e46707058677be37da8b4a943510592af08a832c1dc0.json +++ b/site/.cache/twoslash.faadbb57c777e43ad038e46707058677be37da8b4a943510592af08a832c1dc0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,343]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,343]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createWalletClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":202,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { verifyAuthorization } from 'viem/utils'\\nimport { walletClient } from './client'\\n// ---cut---\\nconst signature = await walletClient.signAuthorization({\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n }\\n})\\n\\nconst valid = await verifyAuthorization({\\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\\n authorization: {\\n address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n },\\n signature, // [!code focus]\\n}) \",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: SignAuthorizationReturnType\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":37,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) authorization: {\\n address: string;\\n chainId: number;\\n nonce: number;\\n}\",\"start\":59,\"length\":13,\"target\":\"authorization\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: string\",\"start\":80,\"length\":7,\"target\":\"address\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":139,\"length\":7,\"target\":\"chainId\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":155,\"length\":5,\"target\":\"nonce\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"const valid: boolean\",\"start\":179,\"length\":5,\"target\":\"valid\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) verifyAuthorization({ address, authorization, signature, }: VerifyAuthorizationParameters): Promise\\nimport verifyAuthorization\",\"docs\":\"Verify that an Authorization object was signed by the provided address.\\n\\n- Docs \\n{@link \\nhttps://viem.sh/docs/utilities/verifyAuthorization\\n}\",\"tags\":[[\"param\",\"parameters - {@link VerifyAuthorizationParameters}\"],[\"returns\",\"Whether or not the signature is valid. {@link VerifyAuthorizationReturnType}\"]],\"start\":193,\"length\":19,\"target\":\"verifyAuthorization\",\"line\":8,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"The address that signed the Authorization object.\",\"start\":217,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorization: OneOf\",\"docs\":\"The Authorization object.\\n\\n- If an unsigned `authorization` is provided, the `signature` property is required.\\n- If a signed `authorization` is provided, the `signature` property does not need to be provided.\",\"start\":274,\"length\":13,\"target\":\"authorization\",\"line\":10,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) address: \\\"0xd8da6bf26964af9d7eed9e03e53415d37aa96045\\\"\",\"start\":295,\"length\":7,\"target\":\"address\",\"line\":11,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"start\":354,\"length\":7,\"target\":\"chainId\",\"line\":12,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"start\":370,\"length\":5,\"target\":\"nonce\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) signature: SignAuthorizationReturnType\",\"start\":387,\"length\":9,\"target\":\"signature\",\"line\":15,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fb9e69a269c1657b9669217d8381e0b69022c3e1b713815e199a82a641ebfad8.json b/site/.cache/twoslash.fb9e69a269c1657b9669217d8381e0b69022c3e1b713815e199a82a641ebfad8.json index e5ffb3efd9..36073c1adf 100644 --- a/site/.cache/twoslash.fb9e69a269c1657b9669217d8381e0b69022c3e1b713815e199a82a641ebfad8.json +++ b/site/.cache/twoslash.fb9e69a269c1657b9669217d8381e0b69022c3e1b713815e199a82a641ebfad8.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 11 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":68,\"length\":12,\"target\":\"createClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":94,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":161,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":172,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 11 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":68,\"length\":12,\"target\":\"createClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":94,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":161,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":172,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 11 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":68,\"length\":12,\"target\":\"createClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":94,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":161,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":172,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,93]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nimport { privateKeyToAccount } from 'viem/accounts'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x...'), // [!code focus]\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":9,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const client: {\\n account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n ... 11 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":59,\"length\":6,\"target\":\"client\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, {\\n ...;\\n}, undefined>(parameters: ClientConfig<...>): {\\n ...;\\n}\\nimport createClient\",\"start\":68,\"length\":12,\"target\":\"createClient\",\"line\":2,\"character\":15},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} | undefined\",\"docs\":\"The Account to use for the Client. This will be used for Actions that require an account as an argument.\",\"start\":85,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) privateKeyToAccount(privateKey: Hex, options?: PrivateKeyToAccountOptions): PrivateKeyAccount\\nimport privateKeyToAccount\",\"tags\":[[\"description\",\"Creates an Account from a private key.\"],[\"returns\",\"A Private Key Account.\"]],\"start\":94,\"length\":19,\"target\":\"privateKeyToAccount\",\"line\":3,\"character\":11},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":143,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":150,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":161,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":172,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc25482af2e95e01fe2e48d566ef6e1f4aa4a495db82ffdc77d8592c2f9a4cbd.json b/site/.cache/twoslash.fc25482af2e95e01fe2e48d566ef6e1f4aa4a495db82ffdc77d8592c2f9a4cbd.json index 843c4f8088..4f211861e2 100644 --- a/site/.cache/twoslash.fc25482af2e95e01fe2e48d566ef6e1f4aa4a495db82ffdc77d8592c2f9a4cbd.json +++ b/site/.cache/twoslash.fc25482af2e95e01fe2e48d566ef6e1f4aa4a495db82ffdc77d8592c2f9a4cbd.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":145,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":169,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":187,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":203,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":275,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":288,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":306,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":320,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":346,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":362,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":392,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":408,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":422,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":448,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":460,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":486,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":504,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":536,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":559,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":574,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":588,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":607,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":672,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":684,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":703,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":768,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":145,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":169,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":187,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":203,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":275,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":288,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":306,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":320,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":346,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":362,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":392,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":408,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":422,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":448,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":460,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":486,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":504,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":536,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":559,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":574,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":588,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":607,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":672,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":684,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":703,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":768,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":145,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":169,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":187,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":203,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":275,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":288,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":306,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":320,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":346,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":362,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":392,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":408,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":422,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":448,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":460,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":486,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":504,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":536,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":559,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":574,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":588,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":607,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":672,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":684,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":703,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":768,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,246]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\nconst signature = await walletClient.signTypedData({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n domain: { // [!code focus:6]\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTypedData: <{\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}, \\\"Mail\\\">(args: SignTypedDataParameters<...>) => Promise\",\"docs\":\"Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\\\"\\\\x19Ethereum Signed Message:\\\\n\\\" + len(message) + message))`.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTypedData\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"args - {@link SignTypedDataParameters}\"],[\"returns\",\"The signed data. {@link SignTypedDataReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst signature = await client.signTypedData({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst signature = await client.signTypedData({\\n domain: {\\n name: 'Ether Mail',\\n version: '1',\\n chainId: 1,\\n verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\\n },\\n types: {\\n Person: [\\n { name: 'name', type: 'string' },\\n { name: 'wallet', type: 'address' },\\n ],\\n Mail: [\\n { name: 'from', type: 'Person' },\\n { name: 'to', type: 'Person' },\\n { name: 'contents', type: 'string' },\\n ],\\n },\\n primaryType: 'Mail',\\n message: {\\n from: {\\n name: 'Cow',\\n wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\\n },\\n to: {\\n name: 'Bob',\\n wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\\n },\\n contents: 'Hello, Bob!',\\n },\\n})\"]],\"start\":37,\"length\":13,\"target\":\"signTypedData\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":55,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) domain?: {\\n chainId?: number | bigint | undefined | undefined;\\n name?: string | undefined | undefined;\\n salt?: `0x${string}` | undefined;\\n verifyingContract?: `0x${string}` | undefined;\\n version?: string | undefined | undefined;\\n} | undefined\",\"start\":112,\"length\":6,\"target\":\"domain\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) name?: string | undefined\",\"start\":145,\"length\":4,\"target\":\"name\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) version?: string | undefined\",\"start\":169,\"length\":7,\"target\":\"version\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chainId?: number | bigint | undefined\",\"start\":187,\"length\":7,\"target\":\"chainId\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) verifyingContract?: `0x${string}` | undefined\",\"start\":203,\"length\":17,\"target\":\"verifyingContract\",\"line\":6,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) types: {\\n readonly Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n }, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n }];\\n readonly Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n }, {\\n ...;\\n }, {\\n ...;\\n }];\\n}\",\"start\":275,\"length\":5,\"target\":\"types\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) Person: readonly [{\\n readonly name: \\\"name\\\";\\n readonly type: \\\"string\\\";\\n}, {\\n readonly name: \\\"wallet\\\";\\n readonly type: \\\"address\\\";\\n}]\",\"start\":288,\"length\":6,\"target\":\"Person\",\"line\":9,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"name\\\"\",\"start\":306,\"length\":4,\"target\":\"name\",\"line\":10,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":320,\"length\":4,\"target\":\"type\",\"line\":10,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"wallet\\\"\",\"start\":346,\"length\":4,\"target\":\"name\",\"line\":11,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\"\",\"start\":362,\"length\":4,\"target\":\"type\",\"line\":11,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) Mail: readonly [{\\n readonly name: \\\"from\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"to\\\";\\n readonly type: \\\"Person\\\";\\n}, {\\n readonly name: \\\"contents\\\";\\n readonly type: \\\"string\\\";\\n}]\",\"start\":392,\"length\":4,\"target\":\"Mail\",\"line\":13,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: \\\"from\\\"\",\"start\":408,\"length\":4,\"target\":\"name\",\"line\":14,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":422,\"length\":4,\"target\":\"type\",\"line\":14,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) name: \\\"to\\\"\",\"start\":448,\"length\":4,\"target\":\"name\",\"line\":15,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"Person\\\"\",\"start\":460,\"length\":4,\"target\":\"type\",\"line\":15,\"character\":20},{\"type\":\"hover\",\"text\":\"(property) name: \\\"contents\\\"\",\"start\":486,\"length\":4,\"target\":\"name\",\"line\":16,\"character\":8},{\"type\":\"hover\",\"text\":\"(property) type: \\\"string\\\"\",\"start\":504,\"length\":4,\"target\":\"type\",\"line\":16,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) primaryType: \\\"Person\\\" | \\\"Mail\\\"\",\"start\":536,\"length\":11,\"target\":\"primaryType\",\"line\":19,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) message: {\\n from: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n to: {\\n name: string;\\n wallet: `0x${string}`;\\n };\\n contents: string;\\n}\",\"start\":559,\"length\":7,\"target\":\"message\",\"line\":20,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) from: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":574,\"length\":4,\"target\":\"from\",\"line\":21,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":588,\"length\":4,\"target\":\"name\",\"line\":22,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":607,\"length\":6,\"target\":\"wallet\",\"line\":23,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: {\\n name: string;\\n wallet: `0x${string}`;\\n}\",\"start\":672,\"length\":2,\"target\":\"to\",\"line\":25,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) name: string\",\"start\":684,\"length\":4,\"target\":\"name\",\"line\":26,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) wallet: `0x${string}`\",\"start\":703,\"length\":6,\"target\":\"wallet\",\"line\":27,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) contents: string\",\"start\":768,\"length\":8,\"target\":\"contents\",\"line\":29,\"character\":4}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc438de50a84bbefc0857bfe07ff6ff79dd24efd2d184c1b04a2fe0ff69fc97c.json b/site/.cache/twoslash.fc438de50a84bbefc0857bfe07ff6ff79dd24efd2d184c1b04a2fe0ff69fc97c.json deleted file mode 100644 index 3e6515ed7e..0000000000 --- a/site/.cache/twoslash.fc438de50a84bbefc0857bfe07ff6ff79dd24efd2d184c1b04a2fe0ff69fc97c.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"const authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":150,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":163,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":176,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":207,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":227,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":262,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":284,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":288,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,365]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n// ---cut---\\nconst authorization = await walletClient.signAuthorization({ \\n account,\\n contractAddress: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', \\n}) \\n\\nconst hash = await walletClient.sendTransaction({\\n account,\\n authorizationList: [authorization], // [!code focus]\\n data: '0xdeadbeef',\\n to: account.address,\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":6,\"length\":13,\"target\":\"authorization\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":28,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":28},{\"type\":\"hover\",\"text\":\"(property) signAuthorization: (parameters: SignAuthorizationParameters) => Promise\",\"docs\":\"Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\\n\\nWith the calculated signature, you can:\\n- use [`verifyAuthorization`](https://viem.sh/experimental/eip7702/verifyAuthorization) to verify the signed Authorization object,\\n- use [`recoverAuthorizationAddress`](https://viem.sh/experimental/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link SignAuthorizationParameters}\"],[\"returns\",\"The signed Authorization object. {@link SignAuthorizationReturnType}\"],[\"example\",\"import { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n account: privateKeyToAccount('0x..'),\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { eip7702Actions } from 'viem/experimental'\\n\\nconst client = createClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n}).extend(eip7702Actions())\\n\\nconst signature = await client.signAuthorization({\\n contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n})\"]],\"start\":41,\"length\":17,\"target\":\"signAuthorization\",\"line\":0,\"character\":41},{\"type\":\"hover\",\"text\":\"(property) account: `0x${string}` | Account\",\"start\":64,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":75,\"length\":15,\"target\":\"contractAddress\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":150,\"length\":4,\"target\":\"hash\",\"line\":5,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\",\"start\":163,\"length\":12,\"target\":\"walletClient\",\"line\":5,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) sendTransaction: <{\\n readonly account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n };\\n readonly authorizationList: readonly [...];\\n readonly data: \\\"0xdeadbeef\\\";\\n readonly to: `0x${string}`;\\n}, undefined>(args: SendTransactionParameters<...>) => Promise\",\"docs\":\"Creates, signs, and sends a new transaction to the network.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/sendTransaction\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\\n - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\",\"tags\":[[\"param\",\"args - {@link SendTransactionParameters}\"],[\"returns\",\"The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.sendTransaction({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: http(),\\n})\\nconst hash = await client.sendTransaction({\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 1000000000000000000n,\\n})\"]],\"start\":176,\"length\":15,\"target\":\"sendTransaction\",\"line\":5,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) account: ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & `0x${string}`) | ({\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n} & {\\n ...;\\n})\",\"start\":196,\"length\":7,\"target\":\"account\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) authorizationList: readonly [SignAuthorizationReturnType]\",\"start\":207,\"length\":17,\"target\":\"authorizationList\",\"line\":7,\"character\":2},{\"type\":\"hover\",\"text\":\"const authorization: SignAuthorizationReturnType\",\"start\":227,\"length\":13,\"target\":\"authorization\",\"line\":7,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":262,\"length\":4,\"target\":\"data\",\"line\":8,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":284,\"length\":2,\"target\":\"to\",\"line\":9,\"character\":2},{\"type\":\"hover\",\"text\":\"const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\",\"start\":288,\"length\":7,\"target\":\"account\",\"line\":9,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":296,\"length\":7,\"target\":\"address\",\"line\":9,\"character\":14}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc5f200b90bd7a5eab17725398338c0221604b08e4962f7d9595b53ca3c28f61.json b/site/.cache/twoslash.fc5f200b90bd7a5eab17725398338c0221604b08e4962f7d9595b53ca3c28f61.json index e831d8b593..38db0c6b15 100644 --- a/site/.cache/twoslash.fc5f200b90bd7a5eab17725398338c0221604b08e4962f7d9595b53ca3c28f61.json +++ b/site/.cache/twoslash.fc5f200b90bd7a5eab17725398338c0221604b08e4962f7d9595b53ca3c28f61.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const hash = await walletClient.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WriteContractParameters }\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType }\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum),\\n}).extend(eip712WalletActions())\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, http, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: http(),\\n}).extend(eip712WalletActions())\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"],[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":32,\"length\":13,\"target\":\"writeContract\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"uint32\\\";\\n readonly name: \\\"tokenId\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":107,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint(uint32 tokenId) nonpayable\\\"]>(signatures: [\\\"function mint(uint32 tokenId) nonpayable\\\"]): readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":112,\"length\":8,\"target\":\"parseAbi\",\"line\":2,\"character\":7},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\"\",\"start\":170,\"length\":12,\"target\":\"functionName\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [number]\",\"start\":194,\"length\":4,\"target\":\"args\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,330]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({\\n account: '0x',\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions())\\n// ---cut---\\nconst hash = await walletClient.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WriteContractParameters }\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType }\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum),\\n}).extend(eip712WalletActions())\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, http, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: http(),\\n}).extend(eip712WalletActions())\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"],[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":32,\"length\":13,\"target\":\"writeContract\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"uint32\\\";\\n readonly name: \\\"tokenId\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":107,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint(uint32 tokenId) nonpayable\\\"]>(signatures: [\\\"function mint(uint32 tokenId) nonpayable\\\"]): readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":112,\"length\":8,\"target\":\"parseAbi\",\"line\":2,\"character\":7},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\"\",\"start\":170,\"length\":12,\"target\":\"functionName\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [number]\",\"start\":194,\"length\":4,\"target\":\"args\",\"line\":4,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const hash = await walletClient.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WriteContractParameters }\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType }\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum),\\n}).extend(eip712WalletActions())\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, http, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: http(),\\n}).extend(eip712WalletActions())\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"],[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":32,\"length\":13,\"target\":\"writeContract\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"uint32\\\";\\n readonly name: \\\"tokenId\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":107,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint(uint32 tokenId) nonpayable\\\"]>(signatures: [\\\"function mint(uint32 tokenId) nonpayable\\\"]): readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":112,\"length\":8,\"target\":\"parseAbi\",\"line\":2,\"character\":7},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\"\",\"start\":170,\"length\":12,\"target\":\"functionName\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [number]\",\"start\":194,\"length\":4,\"target\":\"args\",\"line\":4,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,330]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst walletClient = createWalletClient({\\n account: '0x',\\n chain: zksync,\\n transport: custom(window.ethereum!),\\n}).extend(eip712WalletActions())\\n// ---cut---\\nconst hash = await walletClient.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":6,\"length\":4,\"target\":\"hash\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: Client>\",\"start\":19,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) writeContract: (args: WriteContractParameters<...>) => Promise\",\"docs\":\"Executes a write function on a contract.\\n\\n- Docs: https://viem.sh/docs/contract/writeContract\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\\n\\nA \\\"write\\\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\\n\\nInternally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\\n\\n__Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link WriteContractParameters }\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType }\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: custom(window.ethereum),\\n}).extend(eip712WalletActions())\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, http, parseAbi } from 'viem'\\nimport { zksync } from 'viem/chains'\\nimport { eip712WalletActions } from 'viem/zksync'\\n\\nconst client = createWalletClient({\\n chain: zksync,\\n transport: http(),\\n}).extend(eip712WalletActions())\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"],[\"param\",\"args - {@link WriteContractParameters}\"],[\"returns\",\"A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\"],[\"example\",\"import { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst hash = await client.writeContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n})\"],[\"example\",\"// With Validation\\nimport { createWalletClient, custom, parseAbi } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst { request } = await client.simulateContract({\\n address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\\n abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\\n functionName: 'mint',\\n args: [69420],\\n}\\nconst hash = await client.writeContract(request)\"]],\"start\":32,\"length\":13,\"target\":\"writeContract\",\"line\":0,\"character\":32},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"start\":50,\"length\":7,\"target\":\"address\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) abi: readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [{\\n readonly type: \\\"uint32\\\";\\n readonly name: \\\"tokenId\\\";\\n }];\\n readonly outputs: readonly [];\\n}]\",\"start\":107,\"length\":3,\"target\":\"abi\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseAbi<[\\\"function mint(uint32 tokenId) nonpayable\\\"]>(signatures: [\\\"function mint(uint32 tokenId) nonpayable\\\"]): readonly [{\\n readonly name: \\\"mint\\\";\\n readonly type: \\\"function\\\";\\n readonly stateMutability: \\\"nonpayable\\\";\\n readonly inputs: readonly [...];\\n readonly outputs: readonly [];\\n}]\\nimport parseAbi\",\"docs\":\"Parses human-readable ABI into JSON \\n{@link \\nAbi\\n}\",\"tags\":[[\"param\",\"signatures - Human-Readable ABI\"],[\"returns\",\"Parsed {@link Abi}\"],[\"example\",\"const abi = parseAbi([\\n // ^? const abi: readonly [{ name: \\\"balanceOf\\\"; type: \\\"function\\\"; stateMutability:...\\n 'function balanceOf(address owner) view returns (uint256)',\\n 'event Transfer(address indexed from, address indexed to, uint256 amount)',\\n])\"]],\"start\":112,\"length\":8,\"target\":\"parseAbi\",\"line\":2,\"character\":7},{\"type\":\"hover\",\"text\":\"(property) functionName: \\\"mint\\\"\",\"start\":170,\"length\":12,\"target\":\"functionName\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) args: [number]\",\"start\":194,\"length\":4,\"target\":\"args\",\"line\":4,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc73711b412f6e8618acec62129fbf2229950a13878b61e61d091a710dd37a43.json b/site/.cache/twoslash.fc73711b412f6e8618acec62129fbf2229950a13878b61e61d091a710dd37a43.json index e1da19bb04..3b9084d335 100644 --- a/site/.cache/twoslash.fc73711b412f6e8618acec62129fbf2229950a13878b61e61d091a710dd37a43.json +++ b/site/.cache/twoslash.fc73711b412f6e8618acec62129fbf2229950a13878b61e61d091a710dd37a43.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":90,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":127,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":184,\"length\":4,\"target\":\"data\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":206,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":90,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":127,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":184,\"length\":4,\"target\":\"data\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":206,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":90,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":127,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":184,\"length\":4,\"target\":\"data\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":206,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst result = await publicClient.createAccessList({\\n blockTag: 'safe', // [!code focus]\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const result: {\\n accessList: AccessList;\\n gasUsed: bigint;\\n}\",\"start\":41,\"length\":6,\"target\":\"result\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":56,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) createAccessList: (parameters: CreateAccessListParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise<...>\",\"docs\":\"Creates an EIP-2930 access list that you can include in a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/public/createAccessList\\n- JSON-RPC Methods: `eth_createAccessList`\",\"tags\":[[\"param\",\"args - {@link CreateAccessListParameters}\"],[\"returns\",\"The call data. {@link CreateAccessListReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n\\nconst data = await client.createAccessList({\\n data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n})\"]],\"start\":69,\"length\":16,\"target\":\"createAccessList\",\"line\":2,\"character\":34},{\"type\":\"hover\",\"text\":\"(property) blockTag?: BlockTag | undefined\",\"docs\":\"The balance of the account at a block tag.\",\"tags\":[[\"default\",\"'latest'\"]],\"start\":90,\"length\":8,\"target\":\"blockTag\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"docs\":\"Account attached to the call (msg.sender).\",\"start\":127,\"length\":7,\"target\":\"account\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) data: \\\"0xdeadbeef\\\"\",\"start\":184,\"length\":4,\"target\":\"data\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":206,\"length\":2,\"target\":\"to\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc8c3ffd8d4b644b31b37cc7fffc4fb9dc7af052deb900216b67fc3165a9a738.json b/site/.cache/twoslash.fc8c3ffd8d4b644b31b37cc7fffc4fb9dc7af052deb900216b67fc3165a9a738.json index bb1504dd1a..9ddc59a567 100644 --- a/site/.cache/twoslash.fc8c3ffd8d4b644b31b37cc7fffc4fb9dc7af052deb900216b67fc3165a9a738.json +++ b/site/.cache/twoslash.fc8c3ffd8d4b644b31b37cc7fffc4fb9dc7af052deb900216b67fc3165a9a738.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.addChain({ chain: avalanche }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) addChain: (args: AddChainParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/addChain\\n- JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\",\"tags\":[[\"param\",\"args - {@link AddChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n transport: custom(window.ethereum),\\n})\\nawait client.addChain({ chain: optimism })\"]],\"start\":101,\"length\":8,\"target\":\"addChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chain: Chain\",\"docs\":\"The chain to add to the wallet.\",\"start\":112,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.addChain({ chain: avalanche }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) addChain: (args: AddChainParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/addChain\\n- JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\",\"tags\":[[\"param\",\"args - {@link AddChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n transport: custom(window.ethereum),\\n})\\nawait client.addChain({ chain: optimism })\"]],\"start\":101,\"length\":8,\"target\":\"addChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chain: Chain\",\"docs\":\"The chain to add to the wallet.\",\"start\":112,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.addChain({ chain: avalanche }) // [!code focus]\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) addChain: (args: AddChainParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/addChain\\n- JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\",\"tags\":[[\"param\",\"args - {@link AddChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n transport: custom(window.ethereum),\\n})\\nawait client.addChain({ chain: optimism })\"]],\"start\":101,\"length\":8,\"target\":\"addChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chain: Chain\",\"docs\":\"The chain to add to the wallet.\",\"start\":112,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { avalanche } from 'viem/chains'\\nimport { walletClient } from './client'\\n \\nawait walletClient.addChain({ chain: avalanche }) // [!code focus]\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":9,\"length\":9,\"target\":\"avalanche\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":49,\"length\":12,\"target\":\"walletClient\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":88,\"length\":12,\"target\":\"walletClient\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) addChain: (args: AddChainParameters) => Promise\",\"docs\":\"Adds an EVM chain to the wallet.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/addChain\\n- JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\",\"tags\":[[\"param\",\"args - {@link AddChainParameters}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { optimism } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n transport: custom(window.ethereum),\\n})\\nawait client.addChain({ chain: optimism })\"]],\"start\":101,\"length\":8,\"target\":\"addChain\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) chain: Chain\",\"docs\":\"The chain to add to the wallet.\",\"start\":112,\"length\":5,\"target\":\"chain\",\"line\":3,\"character\":30},{\"type\":\"hover\",\"text\":\"(alias) const avalanche: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"SnowTrace\\\";\\n readonly url: \\\"https://snowtrace.io\\\";\\n readonly apiUrl: \\\"https://api.snowtrace.io\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport avalanche\",\"start\":119,\"length\":9,\"target\":\"avalanche\",\"line\":3,\"character\":37}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fc9abab5c15c872e3bc8f0147a9c83325accd6b3cb329fde2831ec11f3b045df.json b/site/.cache/twoslash.fc9abab5c15c872e3bc8f0147a9c83325accd6b3cb329fde2831ec11f3b045df.json new file mode 100644 index 0000000000..ea6e5843be --- /dev/null +++ b/site/.cache/twoslash.fc9abab5c15c872e3bc8f0147a9c83325accd6b3cb329fde2831ec11f3b045df.json @@ -0,0 +1 @@ +"{\"value\":{\"code\":\"import { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ // [!code focus]\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256' // [!code focus]\\n }], // [!code focus]\\n type: 'create',\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":128,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,371]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n}).extend(erc7895Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":332,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './config'\\n \\nconst subAccount = await walletClient.addSubAccount({\\n keys: [{ // [!code focus]\\n publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus]\\n type: 'p256' // [!code focus]\\n }], // [!code focus]\\n type: 'create',\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const subAccount: AddSubAccountReturnType\",\"start\":48,\"length\":10,\"target\":\"subAccount\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: Client | undefined;\\n}, undefined, WalletRpcSchema, {\\n ...;\\n} & WalletActions<...>>\\nimport walletClient\",\"start\":67,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":25},{\"type\":\"hover\",\"text\":\"(property) addSubAccount: (parameters: AddSubAccountParameters) => Promise\",\"docs\":\"Requests to add a Sub Account.\\n\\n- Docs: https://viem.sh/experimental/erc7895/addSubAccount\\n- JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md)\",\"tags\":[[\"param\",\"client - Client to use\"],[\"param\",\"parameters - {@link AddSubAccountParameters}\"],[\"returns\",\"Sub Account. {@link AddSubAccountReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7895Actions } from 'viem/experimental'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n}).extend(erc7895Actions())\\n\\nconst response = await client.addSubAccount({\\n keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }],\\n type: 'create',\\n})\"]],\"start\":80,\"length\":13,\"target\":\"addSubAccount\",\"line\":2,\"character\":38},{\"type\":\"hover\",\"text\":\"(property) keys: readonly {\\n key: Hex;\\n type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\";\\n}[]\",\"start\":98,\"length\":4,\"target\":\"keys\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) publicKey: string\",\"start\":128,\"length\":9,\"target\":\"publicKey\",\"line\":4,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"address\\\" | \\\"p256\\\" | \\\"webcrypto-p256\\\" | \\\"webauthn-p256\\\"\",\"start\":230,\"length\":4,\"target\":\"type\",\"line\":5,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) type: \\\"create\\\"\",\"start\":285,\"length\":4,\"target\":\"type\",\"line\":7,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fd3bb92da7547e445d0af68e50ae1adcaf7e64467febb382eacd333c5f1952b2.json b/site/.cache/twoslash.fd3bb92da7547e445d0af68e50ae1adcaf7e64467febb382eacd333c5f1952b2.json index f16983f7e4..ae92acee95 100644 --- a/site/.cache/twoslash.fd3bb92da7547e445d0af68e50ae1adcaf7e64467febb382eacd333c5f1952b2.json +++ b/site/.cache/twoslash.fd3bb92da7547e445d0af68e50ae1adcaf7e64467febb382eacd333c5f1952b2.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst accounts = await walletClient.getAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: GetAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":78,\"length\":12,\"target\":\"getAddresses\",\"line\":2,\"character\":36}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst accounts = await walletClient.getAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: GetAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":78,\"length\":12,\"target\":\"getAddresses\",\"line\":2,\"character\":36}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { walletClient } from './client'\\n \\nconst accounts = await walletClient.getAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: GetAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":78,\"length\":12,\"target\":\"getAddresses\",\"line\":2,\"character\":36}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,297]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\n\\nimport 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":258,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { walletClient } from './client'\\n \\nconst accounts = await walletClient.getAddresses() // [!code focus:99]\\n// ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC']\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":9,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const accounts: GetAddressesReturnType\",\"start\":48,\"length\":8,\"target\":\"accounts\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport walletClient\",\"start\":65,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":23},{\"type\":\"hover\",\"text\":\"(property) getAddresses: () => Promise\",\"docs\":\"Returns a list of account addresses owned by the wallet or client.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/getAddresses\\n- JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\",\"tags\":[[\"returns\",\"List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst accounts = await client.getAddresses()\"]],\"start\":78,\"length\":12,\"target\":\"getAddresses\",\"line\":2,\"character\":36}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fd9206470857bd7d13604e6be069ea0283a4afb21630b105a4e8a10830e3b10e.json b/site/.cache/twoslash.fd9206470857bd7d13604e6be069ea0283a4afb21630b105a4e8a10830e3b10e.json index d6be0d2898..732bd645cb 100644 --- a/site/.cache/twoslash.fd9206470857bd7d13604e6be069ea0283a4afb21630b105a4e8a10830e3b10e.json +++ b/site/.cache/twoslash.fd9206470857bd7d13604e6be069ea0283a4afb21630b105a4e8a10830e3b10e.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlockNumber( // [!code focus:99]\\n { onBlockNumber: blockNumber => console.log(blockNumber) }\\n)\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":70,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":112,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":127,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":154,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> 69420n\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> 69421n\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":173,\"length\":0,\"text\":\"> 69422n\",\"line\":8,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[449,467],[430,448],[411,429],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69420n\",\"start\":411,\"end\":429},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69421n\",\"start\":430,\"end\":448},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69422n\",\"start\":449,\"end\":467}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlockNumber( // [!code focus:99]\\n { onBlockNumber: blockNumber => console.log(blockNumber) }\\n)\\n// @log: > 69420n\\n\\n// @log: > 69421n\\n\\n// @log: > 69422n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":70,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":112,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":127,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v20.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v20.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v20.11.1/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":154,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> 69420n\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> 69421n\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":173,\"length\":0,\"text\":\"> 69422n\",\"line\":8,\"character\":0}]}}" +"{\"value\":{\"code\":\"import { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlockNumber( // [!code focus:99]\\n { onBlockNumber: blockNumber => console.log(blockNumber) }\\n)\\n\\n\\n\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":70,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":112,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":127,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":154,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46},{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> 69420n\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> 69421n\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":173,\"length\":0,\"text\":\"> 69422n\",\"line\":8,\"character\":0}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[449,467],[430,448],[411,429],[0,240]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69420n\",\"start\":411,\"end\":429},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69421n\",\"start\":430,\"end\":448},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"> 69422n\",\"start\":449,\"end\":467}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"client.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/client.ts\",\"content\":\"// @filename: client.ts\\nimport { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http()\\n})\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":201,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { publicClient } from './client'\\n\\nconst unwatch = publicClient.watchBlockNumber( // [!code focus:99]\\n { onBlockNumber: blockNumber => console.log(blockNumber) }\\n)\\n// @log: > 69420n\\n\\n// @log: > 69421n\\n\\n// @log: > 69422n\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":9,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const unwatch: WatchBlockNumberReturnType\",\"start\":47,\"length\":7,\"target\":\"unwatch\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\\nimport publicClient\",\"start\":57,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType\",\"docs\":\"Watches and returns incoming block numbers.\\n\\n- Docs: https://viem.sh/docs/actions/public/watchBlockNumber\\n- Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\\n- JSON-RPC Methods:\\n - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\\n - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\\\"newHeads\\\"` event.\",\"tags\":[[\"param\",\"args - {@link WatchBlockNumberParameters}\"],[\"returns\",\"A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst unwatch = await client.watchBlockNumber({\\n onBlockNumber: (blockNumber) => console.log(blockNumber),\\n})\"]],\"start\":70,\"length\":16,\"target\":\"watchBlockNumber\",\"line\":2,\"character\":29},{\"type\":\"hover\",\"text\":\"(property) onBlockNumber: OnBlockNumberFn\",\"docs\":\"The callback to call when a new block number is received.\",\"start\":112,\"length\":13,\"target\":\"onBlockNumber\",\"line\":3,\"character\":4},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":127,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"namespace console\\nvar console: Console\",\"docs\":\"The `console` module provides a simple debugging console that is similar to the\\nJavaScript console mechanism provided by web browsers.\\n\\nThe module exports two specific components:\\n\\n* A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream.\\n* A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdout) and\\n[`process.stderr`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module.\\n\\n_**Warning**_: The global console object's methods are neither consistently\\nsynchronous like the browser APIs they resemble, nor are they consistently\\nasynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v22.x/api/process.html#a-note-on-process-io) for\\nmore information.\\n\\nExample using the global `console`:\\n\\n```js\\nconsole.log('hello world');\\n// Prints: hello world, to stdout\\nconsole.log('hello %s', 'world');\\n// Prints: hello world, to stdout\\nconsole.error(new Error('Whoops, something bad happened'));\\n// Prints error message and stack trace to stderr:\\n// Error: Whoops, something bad happened\\n// at [eval]:5:15\\n// at Script.runInThisContext (node:vm:132:18)\\n// at Object.runInThisContext (node:vm:309:38)\\n// at node:internal/process/execution:77:19\\n// at [eval]-wrapper:6:22\\n// at evalScript (node:internal/process/execution:76:60)\\n// at node:internal/main/eval_string:23:3\\n\\nconst name = 'Will Robinson';\\nconsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to stderr\\n```\\n\\nExample using the `Console` class:\\n\\n```js\\nconst out = getStreamSomehow();\\nconst err = getStreamSomehow();\\nconst myConsole = new console.Console(out, err);\\n\\nmyConsole.log('hello world');\\n// Prints: hello world, to out\\nmyConsole.log('hello %s', 'world');\\n// Prints: hello world, to out\\nmyConsole.error(new Error('Whoops, something bad happened'));\\n// Prints: [Error: Whoops, something bad happened], to err\\n\\nconst name = 'Will Robinson';\\nmyConsole.warn(`Danger ${name}! Danger!`);\\n// Prints: Danger Will Robinson! Danger!, to err\\n```\",\"tags\":[[\"see\",\"[source](https://github.com/nodejs/node/blob/v22.x/lib/console.js)\"]],\"start\":142,\"length\":7,\"target\":\"console\",\"line\":3,\"character\":34},{\"type\":\"hover\",\"text\":\"(method) Console.log(...data: any[]): void (+2 overloads)\",\"docs\":\"[MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)\",\"start\":150,\"length\":3,\"target\":\"log\",\"line\":3,\"character\":42},{\"type\":\"hover\",\"text\":\"(parameter) blockNumber: bigint\",\"start\":154,\"length\":11,\"target\":\"blockNumber\",\"line\":3,\"character\":46}],\"tags\":[{\"type\":\"tag\",\"name\":\"log\",\"start\":171,\"length\":0,\"text\":\"> 69420n\",\"line\":5,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":172,\"length\":0,\"text\":\"> 69421n\",\"line\":6,\"character\":0},{\"type\":\"tag\",\"name\":\"log\",\"start\":173,\"length\":0,\"text\":\"> 69422n\",\"line\":8,\"character\":0}]}}" diff --git a/site/.cache/twoslash.fe021b5c00bb09fc17d7e037595cfff084f850afcec12ebb60f66aa6cf9400ec.json b/site/.cache/twoslash.fe021b5c00bb09fc17d7e037595cfff084f850afcec12ebb60f66aa6cf9400ec.json index a382ae0b9a..2703f2b478 100644 --- a/site/.cache/twoslash.fe021b5c00bb09fc17d7e037595cfff084f850afcec12ebb60f66aa6cf9400ec.json +++ b/site/.cache/twoslash.fe021b5c00bb09fc17d7e037595cfff084f850afcec12ebb60f66aa6cf9400ec.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,99]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n// ---cut---\\nconst publicClient = createPublicClient({\\n batch: {\\n multicall: true, // [!code focus]\\n },\\n chain: mainnet,\\n transport: http(),\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":6,\"length\":12,\"target\":\"publicClient\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) createPublicClient, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined>(parameters: {\\n ...;\\n}): {\\n ...;\\n}\\nimport createPublicClient\",\"docs\":\"Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\\n\\n- Docs: https://viem.sh/docs/clients/public\\n\\nA Public Client is an interface to \\\"public\\\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\",\"tags\":[[\"param\",\"config - {@link PublicClientConfig}\"],[\"returns\",\"A Public Client. {@link PublicClient}\"],[\"example\",\"import { createPublicClient, http } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\"]],\"start\":21,\"length\":18,\"target\":\"createPublicClient\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"(property) batch?: {\\n multicall?: boolean | Prettify | undefined;\\n} | undefined\",\"docs\":\"Flags for batch settings.\",\"start\":44,\"length\":5,\"target\":\"batch\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) multicall?: boolean | {\\n batchSize?: number | undefined | undefined;\\n wait?: number | undefined | undefined;\\n} | undefined\",\"docs\":\"Toggle to enable `eth_call` multicall aggregation.\",\"start\":57,\"length\":9,\"target\":\"multicall\",\"line\":2,\"character\":4},{\"type\":\"hover\",\"text\":\"(property) chain?: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n} | Chain | undefined\",\"docs\":\"Chain for the client.\",\"start\":98,\"length\":5,\"target\":\"chain\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) const mainnet: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}\\nimport mainnet\",\"start\":105,\"length\":7,\"target\":\"mainnet\",\"line\":4,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) transport: HttpTransport\",\"docs\":\"The RPC transport\",\"start\":116,\"length\":9,\"target\":\"transport\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) http(url?: string | undefined, config?: HttpTransportConfig | undefined): HttpTransport\\nimport http\",\"tags\":[[\"description\",\"Creates a HTTP transport that connects to a JSON-RPC API.\"]],\"start\":127,\"length\":4,\"target\":\"http\",\"line\":5,\"character\":13}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fe8e6f2bb1e203330930d84cf9e340366de7697a42d78769e4e5aa11cfe99cbc.json b/site/.cache/twoslash.fe8e6f2bb1e203330930d84cf9e340366de7697a42d78769e4e5aa11cfe99cbc.json index 7dbd2b1236..e208b2242f 100644 --- a/site/.cache/twoslash.fe8e6f2bb1e203330930d84cf9e340366de7697a42d78769e4e5aa11cfe99cbc.json +++ b/site/.cache/twoslash.fe8e6f2bb1e203330930d84cf9e340366de7697a42d78769e4e5aa11cfe99cbc.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":41,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":57,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":70,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":100,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":111,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":163,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":170,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":206,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":41,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":57,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":70,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":100,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":111,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":163,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":170,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":206,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":41,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":57,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":70,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":100,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":111,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":163,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":170,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":206,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,471]],\"flagNotations\":[{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ JSON-RPC Account\",\"start\":284,\"end\":312},{\"type\":\"tag\",\"name\":\"log\",\"value\":\"↓ Local Account\",\"start\":381,\"end\":406}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!)\\n})\\n\\n// @log: ↓ JSON-RPC Account\\nexport const account = '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\\n\\n// @log: ↓ Local Account\\n\\n// export const account = privateKeyToAccount(...)\\n// ---cut---\\nimport { parseEther } from 'viem'\\n\\nconst request = await walletClient.prepareTransactionRequest({\\n account,\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'), // [!code focus]\\n nonce: 69\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"const request: {\\n account?: undefined | undefined;\\n chain: {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n };\\n ... 17 more ...;\\n maxPriorityFeePerGas: never;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n} | {\\n ...;\\n}\",\"start\":41,\"length\":7,\"target\":\"request\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":57,\"length\":12,\"target\":\"walletClient\",\"line\":2,\"character\":22},{\"type\":\"hover\",\"text\":\"(property) prepareTransactionRequest: <{\\n readonly account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\";\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: bigint;\\n readonly nonce: 69;\\n}, undefined, \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\">(args: PrepareTransactionRequestParameters<...>) => Promise<...>\",\"docs\":\"Prepares a transaction request for signing.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\",\"tags\":[[\"param\",\"args - {@link PrepareTransactionRequestParameters}\"],[\"returns\",\"The transaction request. {@link PrepareTransactionRequestReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\"]],\"start\":70,\"length\":25,\"target\":\"prepareTransactionRequest\",\"line\":2,\"character\":35},{\"type\":\"hover\",\"text\":\"(property) account: \\\"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266\\\" & (`0x${string}` | Account | null | undefined)\",\"start\":100,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":111,\"length\":2,\"target\":\"to\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":163,\"length\":5,\"target\":\"value\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":170,\"length\":10,\"target\":\"parseEther\",\"line\":5,\"character\":9},{\"type\":\"hover\",\"text\":\"(property) nonce: 69\",\"start\":206,\"length\":5,\"target\":\"nonce\",\"line\":6,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fecb0339cb3e25514267526d370981643b2081ba2433e9383c76fed4d3574ea0.json b/site/.cache/twoslash.fecb0339cb3e25514267526d370981643b2081ba2433e9383c76fed4d3574ea0.json index 333550544e..b84e012575 100644 --- a/site/.cache/twoslash.fecb0339cb3e25514267526d370981643b2081ba2433e9383c76fed4d3574ea0.json +++ b/site/.cache/twoslash.fecb0339cb3e25514267526d370981643b2081ba2433e9383c76fed4d3574ea0.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { recoverAuthorizationAddress } from 'viem/utils'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { recoverAuthorizationAddress } from 'viem/utils'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { recoverAuthorizationAddress } from 'viem/utils'\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { recoverAuthorizationAddress } from 'viem/utils'\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function recoverAuthorizationAddress>(parameters: RecoverAuthorizationAddressParameters): Promise\\nimport recoverAuthorizationAddress\",\"start\":9,\"length\":27,\"target\":\"recoverAuthorizationAddress\",\"line\":0,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.fed70096f2912d75f5ace1ef2468fc9fd392f330bfccae10c77e9ebc4d848e09.json b/site/.cache/twoslash.fed70096f2912d75f5ace1ef2468fc9fd392f330bfccae10c77e9ebc4d848e09.json index 0eb28ee0c8..c95cae42ca 100644 --- a/site/.cache/twoslash.fed70096f2912d75f5ace1ef2468fc9fd392f330bfccae10c77e9ebc4d848e09.json +++ b/site/.cache/twoslash.fed70096f2912d75f5ace1ef2468fc9fd392f330bfccae10c77e9ebc4d848e09.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":194,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":271,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":278,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":313,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":339,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":194,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":271,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":278,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":313,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":339,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":194,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":271,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":278,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":313,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":339,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,1156]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":376,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":752,\"filename\":\"config.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/config.ts\",\"content\":\"// @filename: config.ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nexport const account = privateKeyToAccount('0x...')\\n\\nexport const client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\",\"extension\":\"ts\",\"supportLsp\":true},{\"offset\":1117,\"filename\":\"example.js\",\"filepath\":\"/Users/jakemoxey/git/viem/site/example.js\",\"content\":\"// @filename: example.js\\n\\n// ---cut---\\nimport { parseEther } from 'viem'\\nimport { account, client } from './config'\\n \\nconst hash = await client.execute({ // [!code focus:99]\\n address: '0xcb98643b8786950F0461f3B0edf99D88F274574D',\\n calls: [\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n },\\n {\\n data: '0xdeadbeef',\\n to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',\\n },\\n ],\\n})\",\"extension\":\"js\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const account: {\\n address: Address;\\n nonceManager?: NonceManager | undefined;\\n sign: (parameters: {\\n hash: Hash;\\n }) => Promise;\\n ... 6 more ...;\\n type: \\\"local\\\";\\n}\\nimport account\",\"start\":43,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":52,\"length\":6,\"target\":\"client\",\"line\":1,\"character\":18},{\"type\":\"hover\",\"text\":\"const hash: `0x${string}`\",\"start\":85,\"length\":4,\"target\":\"hash\",\"line\":3,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) const client: Client, {\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, undefined, {\\n ...;\\n}>\\nimport client\",\"start\":98,\"length\":6,\"target\":\"client\",\"line\":3,\"character\":19},{\"type\":\"hover\",\"text\":\"(property) execute: (parameters: ExecuteParameters<...>) => Promise\",\"docs\":\"Executes call(s) using the `execute` function on an [ERC-7821-compatible contract](https://eips.ethereum.org/EIPS/eip-7821).\",\"tags\":[[\"example\",\"```ts\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n account,\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"example\",\"```ts\\n// Account Hoisting\\nimport { createClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\nimport { erc7821Actions } from 'viem/experimental'\\n\\nconst account = privateKeyToAccount('0x...')\\n\\nconst client = createClient({\\n account,\\n chain: mainnet,\\n transport: http(),\\n}).extend(erc7821Actions())\\n\\nconst hash = await client.execute({\\n calls: [{\\n {\\n data: '0xdeadbeef',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n },\\n {\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: 69420n,\\n },\\n }],\\n to: account.address,\\n})\\n```\"],[\"param\",\"client - Client to use.\"],[\"param\",\"parameters - {@link ExecuteParameters}\"],[\"returns\",\"Transaction hash. {@link ExecuteReturnType}\"]],\"start\":105,\"length\":7,\"target\":\"execute\",\"line\":3,\"character\":26},{\"type\":\"hover\",\"text\":\"(property) address: `0x${string}`\",\"docs\":\"Address that will execute the calls.\",\"start\":137,\"length\":7,\"target\":\"address\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) calls: readonly [Prettify>, Prettify>]\",\"docs\":\"Calls to execute.\",\"start\":194,\"length\":5,\"target\":\"calls\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":215,\"length\":2,\"target\":\"to\",\"line\":7,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":271,\"length\":5,\"target\":\"value\",\"line\":8,\"character\":6},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":278,\"length\":10,\"target\":\"parseEther\",\"line\":8,\"character\":13},{\"type\":\"hover\",\"text\":\"(property) data?: `0x${string}` | undefined\",\"start\":313,\"length\":4,\"target\":\"data\",\"line\":11,\"character\":6},{\"type\":\"hover\",\"text\":\"(property) to: `0x${string}`\",\"start\":339,\"length\":2,\"target\":\"to\",\"line\":12,\"character\":6}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ff3ebaf80201f1f7f5fc6afe2100bef1ba66722c23b05b66e320edce17b02065.json b/site/.cache/twoslash.ff3ebaf80201f1f7f5fc6afe2100bef1ba66722c23b05b66e320edce17b02065.json index 8cfdc48665..cff32df88f 100644 --- a/site/.cache/twoslash.ff3ebaf80201f1f7f5fc6afe2100bef1ba66722c23b05b66e320edce17b02065.json +++ b/site/.cache/twoslash.ff3ebaf80201f1f7f5fc6afe2100bef1ba66722c23b05b66e320edce17b02065.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":119,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":171,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":178,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 26 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":119,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":171,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":178,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"const signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":119,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":171,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":178,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":true,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,259]],\"flagNotations\":[{\"type\":\"handbookOptions\",\"name\":\"noErrors\",\"value\":true,\"start\":246,\"end\":259}],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import 'viem/window'\\n\\n// ---cut---\\nimport { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const walletClient = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum!),\\n})\\n// ---cut---\\n// @noErrors\\nconst signature = await walletClient.signTransaction({\\n account,\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"const signature: `0x02${string}`\",\"start\":6,\"length\":9,\"target\":\"signature\",\"line\":0,\"character\":6},{\"type\":\"hover\",\"text\":\"const walletClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 28 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":24,\"length\":12,\"target\":\"walletClient\",\"line\":0,\"character\":24},{\"type\":\"hover\",\"text\":\"(property) signTransaction: (args: SignTransactionParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}, undefined, Chain | undefined, {\\n readonly account: any;\\n readonly maxFeePerGas: any;\\n readonly to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\";\\n readonly value: any;\\n}>) => Promise<...>\",\"docs\":\"Signs a transaction.\\n\\n- Docs: https://viem.sh/docs/actions/wallet/signTransaction\\n- JSON-RPC Methods:\\n - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\\n - Local Accounts: Signs locally. No JSON-RPC request.\",\"tags\":[[\"param\",\"args - {@link SignTransactionParameters}\"],[\"returns\",\"The signed message. {@link SignTransactionReturnType}\"],[\"example\",\"import { createWalletClient, custom } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"],[\"example\",\"// Account Hoisting\\nimport { createWalletClient, http } from 'viem'\\nimport { privateKeyToAccount } from 'viem/accounts'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createWalletClient({\\n account: privateKeyToAccount('0x…'),\\n chain: mainnet,\\n transport: custom(window.ethereum),\\n})\\nconst request = await client.prepareTransactionRequest({\\n to: '0x0000000000000000000000000000000000000000',\\n value: 1n,\\n})\\nconst signature = await client.signTransaction(request)\"]],\"start\":37,\"length\":15,\"target\":\"signTransaction\",\"line\":0,\"character\":37},{\"type\":\"hover\",\"text\":\"(property) account: any\",\"start\":57,\"length\":7,\"target\":\"account\",\"line\":1,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: any\",\"start\":68,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":2,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":82,\"length\":9,\"target\":\"parseGwei\",\"line\":2,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":119,\"length\":2,\"target\":\"to\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: any\",\"start\":171,\"length\":5,\"target\":\"value\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"any\",\"start\":178,\"length\":10,\"target\":\"parseEther\",\"line\":4,\"character\":9}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ffb5937070c895318943b68230695e294cb16733fec310ab9c21a2522f09d203.json b/site/.cache/twoslash.ffb5937070c895318943b68230695e294cb16733fec310ab9c21a2522f09d203.json deleted file mode 100644 index 3ce8d5e3e5..0000000000 --- a/site/.cache/twoslash.ffb5937070c895318943b68230695e294cb16733fec310ab9c21a2522f09d203.json +++ /dev/null @@ -1 +0,0 @@ -"{\"value\":{\"code\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { hashAuthorization } from 'viem/experimental'\\n\\nhashAuthorization({\\n contractAddress: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',\\n chainId: 1,\\n nonce: 0,\\n})\\n// 0xd428ed36e6098e46b40a4cb99b83b930b0ca1f054f40b5996589eda33c295663\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function hashAuthorization(parameters: HashAuthorizationParameters): HashAuthorizationReturnType\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":9,\"length\":17,\"target\":\"hashAuthorization\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) hashAuthorization<\\\"hex\\\">(parameters: HashAuthorizationParameters<\\\"hex\\\">): `0x${string}`\\nimport hashAuthorization\",\"docs\":\"Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\",\"start\":55,\"length\":17,\"target\":\"hashAuthorization\",\"line\":2,\"character\":0},{\"type\":\"hover\",\"text\":\"(property) contractAddress: `0x${string}`\",\"docs\":\"Address of the contract to set as code for the Authority.\",\"start\":77,\"length\":15,\"target\":\"contractAddress\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) chainId: number\",\"docs\":\"Chain ID to authorize.\",\"start\":142,\"length\":7,\"target\":\"chainId\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) nonce: number\",\"docs\":\"Nonce of the Authority to authorize.\",\"start\":156,\"length\":5,\"target\":\"nonce\",\"line\":5,\"character\":2}],\"tags\":[]}}" diff --git a/site/.cache/twoslash.ffea6923c42d0d80f341cdf7f43c86b18fa8f6d28f190a604360b9f1013d1feb.json b/site/.cache/twoslash.ffea6923c42d0d80f341cdf7f43c86b18fa8f6d28f190a604360b9f1013d1feb.json index aadfbf34fc..c59aebba89 100644 --- a/site/.cache/twoslash.ffea6923c42d0d80f341cdf7f43c86b18fa8f6d28f190a604360b9f1013d1feb.json +++ b/site/.cache/twoslash.ffea6923c42d0d80f341cdf7f43c86b18fa8f6d28f190a604360b9f1013d1feb.json @@ -1 +1 @@ -"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":253,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":260,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 10 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":253,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":260,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" +"{\"value\":{\"code\":\"import { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"nodes\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":253,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":260,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"meta\":{\"extension\":\"ts\",\"compilerOptions\":{\"strict\":true,\"module\":99,\"target\":99,\"allowJs\":true,\"skipDefaultLibCheck\":true,\"skipLibCheck\":true,\"moduleDetection\":3,\"baseUrl\":\"/Users/jakemoxey/git/viem/site/\"},\"handbookOptions\":{\"errors\":[],\"noErrors\":false,\"noErrorsCutted\":false,\"noErrorValidation\":false,\"noStaticSemanticInfo\":false,\"showEmit\":false,\"keepNotations\":false},\"removals\":[[0,191]],\"flagNotations\":[],\"virtualFiles\":[{\"offset\":0,\"filename\":\"index.ts\",\"filepath\":\"/Users/jakemoxey/git/viem/site/index.ts\",\"content\":\"import { http, createPublicClient } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nexport const publicClient = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\n// ---cut---\\nimport { parseEther, parseGwei } from 'viem'\\n\\nconst gas = await publicClient.estimateGas({\\n account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\\n maxFeePerGas: parseGwei('20'), // [!code focus]\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1')\\n})\",\"extension\":\"ts\",\"supportLsp\":true}],\"positionQueries\":[],\"positionCompletions\":[],\"positionHighlights\":[]},\"queries\":[],\"completions\":[],\"errors\":[],\"highlights\":[],\"hovers\":[{\"type\":\"hover\",\"text\":\"(alias) function parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":9,\"length\":10,\"target\":\"parseEther\",\"line\":0,\"character\":9},{\"type\":\"hover\",\"text\":\"(alias) function parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":21,\"length\":9,\"target\":\"parseGwei\",\"line\":0,\"character\":21},{\"type\":\"hover\",\"text\":\"const gas: bigint\",\"start\":52,\"length\":3,\"target\":\"gas\",\"line\":2,\"character\":6},{\"type\":\"hover\",\"text\":\"const publicClient: {\\n account: undefined;\\n batch?: {\\n multicall?: boolean | Prettify | undefined;\\n } | undefined;\\n ... 64 more ...;\\n extend: >(fn: (client: Client<...>) => client) => Client<...>;\\n}\",\"start\":64,\"length\":12,\"target\":\"publicClient\",\"line\":2,\"character\":18},{\"type\":\"hover\",\"text\":\"(property) estimateGas: (args: EstimateGasParameters<{\\n blockExplorers: {\\n readonly default: {\\n readonly name: \\\"Etherscan\\\";\\n readonly url: \\\"https://etherscan.io\\\";\\n readonly apiUrl: \\\"https://api.etherscan.io/api\\\";\\n };\\n };\\n ... 11 more ...;\\n serializers?: import(\\\"/Users/jakemoxey/git/viem/src/_types/index\\\").ChainSerializers | undefined;\\n}>) => Promise\",\"docs\":\"Estimates the gas necessary to complete a transaction without submitting it to the network.\\n\\n- Docs: https://viem.sh/docs/actions/public/estimateGas\\n- JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\",\"tags\":[[\"param\",\"args - {@link EstimateGasParameters}\"],[\"returns\",\"The gas estimate (in wei). {@link EstimateGasReturnType}\"],[\"example\",\"import { createPublicClient, http, parseEther } from 'viem'\\nimport { mainnet } from 'viem/chains'\\n\\nconst client = createPublicClient({\\n chain: mainnet,\\n transport: http(),\\n})\\nconst gasEstimate = await client.estimateGas({\\n account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\\n to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\\n value: parseEther('1'),\\n})\"]],\"start\":77,\"length\":11,\"target\":\"estimateGas\",\"line\":2,\"character\":31},{\"type\":\"hover\",\"text\":\"(property) account?: `0x${string}` | Account | undefined\",\"start\":93,\"length\":7,\"target\":\"account\",\"line\":3,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) maxFeePerGas: bigint\",\"start\":150,\"length\":12,\"target\":\"maxFeePerGas\",\"line\":4,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseGwei(ether: string, unit?: \\\"wei\\\"): bigint\\nimport parseGwei\",\"docs\":\"Converts a string representation of gwei to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseGwei\",\"tags\":[[\"example\",\"import { parseGwei } from 'viem'\\n\\nparseGwei('420')\\n// 420000000000n\"]],\"start\":164,\"length\":9,\"target\":\"parseGwei\",\"line\":4,\"character\":16},{\"type\":\"hover\",\"text\":\"(property) to: \\\"0x70997970c51812dc3a010c7d01b50e0d17dc79c8\\\"\",\"start\":201,\"length\":2,\"target\":\"to\",\"line\":5,\"character\":2},{\"type\":\"hover\",\"text\":\"(property) value: bigint\",\"start\":253,\"length\":5,\"target\":\"value\",\"line\":6,\"character\":2},{\"type\":\"hover\",\"text\":\"(alias) parseEther(ether: string, unit?: \\\"wei\\\" | \\\"gwei\\\"): bigint\\nimport parseEther\",\"docs\":\"Converts a string representation of ether to numerical wei.\\n\\n- Docs: https://viem.sh/docs/utilities/parseEther\",\"tags\":[[\"example\",\"import { parseEther } from 'viem'\\n\\nparseEther('420')\\n// 420000000000000000000n\"]],\"start\":260,\"length\":10,\"target\":\"parseEther\",\"line\":6,\"character\":9}],\"tags\":[]}}" diff --git a/site/pages/docs/actions/public/estimateGas.md b/site/pages/docs/actions/public/estimateGas.md index 487744f2ec..f040347eb9 100644 --- a/site/pages/docs/actions/public/estimateGas.md +++ b/site/pages/docs/actions/public/estimateGas.md @@ -67,7 +67,7 @@ const gas = await publicClient.estimateGas({ - **Type:** `0x${string}` -Contract code or a hashed method call with encoded args. +Contract code or a hashed method call with encoded args which can be generated using [encodeFunctionData](/docs/contract/encodeFunctionData). ```ts twoslash // [!include ~/snippets/publicClient.ts] diff --git a/site/pages/docs/actions/wallet/getCallsStatus.mdx b/site/pages/docs/actions/wallet/getCallsStatus.mdx new file mode 100644 index 0000000000..398011f8cb --- /dev/null +++ b/site/pages/docs/actions/wallet/getCallsStatus.mdx @@ -0,0 +1,60 @@ +--- +description: Returns the status of a call batch. +--- + +# getCallsStatus + +Returns the status of a call batch that was sent via `sendCalls`. + +[Read more](https://eips.ethereum.org/EIPS/eip-5792#wallet_getcallsstatus) + +## Usage + +:::code-group + +```ts twoslash [example.ts] +import { walletClient } from './config' + +const result = await walletClient.getCallsStatus({ // [!code focus:99] + id: '0x1234567890abcdef', +}) +// @log: { +// @log: atomic: false, +// @log: chainId: 1, +// @log: id: '0x1234567890abcdef', +// @log: statusCode: 200, +// @log: status: 'success', +// @log: receipts: [{ ... }], +// @log: } +``` + +```ts twoslash [config.ts] filename="config.ts" +import 'viem/window' +// ---cut--- +import { createWalletClient, custom } from 'viem' +import { mainnet } from 'viem/chains' + +export const walletClient = createWalletClient({ + chain: mainnet, + transport: custom(window.ethereum!), +}) + +export const [account] = await walletClient.getAddresses() +``` + +::: + +## Returns + +`WalletGetCallsStatusReturnType` + +Status of the calls. + +## Parameters + +### id + +- **Type:** `string` + +Identifier of the call batch. + diff --git a/site/pages/experimental/eip5792/getCapabilities.mdx b/site/pages/docs/actions/wallet/getCapabilities.mdx similarity index 76% rename from site/pages/experimental/eip5792/getCapabilities.mdx rename to site/pages/docs/actions/wallet/getCapabilities.mdx index 50b40b5eac..a3feb3639c 100644 --- a/site/pages/experimental/eip5792/getCapabilities.mdx +++ b/site/pages/docs/actions/wallet/getCapabilities.mdx @@ -6,11 +6,7 @@ description: Extract capabilities that a connected wallet supports. Extract capabilities (grouped by chain ID) that a connected wallet supports (e.g. paymasters, session keys, etc). -[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities) - -:::warning[Warning] -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: +[Read more](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_getcapabilities) ## Usage @@ -24,17 +20,17 @@ const capabilities = await walletClient.getCapabilities({ }) // @log: { // @log: 8453: { -// @log: paymasterService: { -// @log: supported: true, +// @log: atomic: { +// @log: status: 'supported', // @log: }, -// @log: sessionKeys: { +// @log: paymasterService: { // @log: supported: true, // @log: }, // @log: }, // @log: 84532: { -// @log: paymasterService: { -// @log: supported: true, -// @log: }, +// @log: atomic: { +// @log: status: 'supported', +// @log: }, // @log: }, // @log: } ``` @@ -44,12 +40,11 @@ import 'viem/window' // ---cut--- import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' export const walletClient = createWalletClient({ chain: mainnet, transport: custom(window.ethereum!), -}).extend(eip5792Actions()) +}) export const [account] = await walletClient.getAddresses() ``` @@ -73,7 +68,6 @@ const capabilities = await walletClient.getCapabilities() ```ts [config.ts] filename="config.ts" import 'viem/window' import { createWalletClient, custom } from 'viem' -import { eip5792Actions } from 'viem/experimental' // Retrieve Account from an EIP-1193 Provider. const [account] = await window.ethereum!.request({ @@ -83,7 +77,7 @@ const [account] = await window.ethereum!.request({ export const walletClient = createWalletClient({ account, transport: custom(window.ethereum!) -}).extend(eip5792Actions()) +}) ``` ::: @@ -108,4 +102,19 @@ import { walletClient } from './config' const capabilities = await walletClient.getCapabilities({ account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus] }) +``` + +### chainId + +- **Type:** `number` + +The chain ID to get capabilities for. + +```ts twoslash [example.ts] +import { walletClient } from './config' +// ---cut--- +const capabilities = await walletClient.getCapabilities({ + account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', + chainId: 8453, // [!code focus] +}) ``` \ No newline at end of file diff --git a/site/pages/docs/actions/wallet/prepareTransactionRequest.md b/site/pages/docs/actions/wallet/prepareTransactionRequest.md index 163311289a..46c79701e7 100644 --- a/site/pages/docs/actions/wallet/prepareTransactionRequest.md +++ b/site/pages/docs/actions/wallet/prepareTransactionRequest.md @@ -184,14 +184,13 @@ Signed EIP-7702 Authorization list. import { createWalletClient, http } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { eip7702Actions } from 'viem/experimental' const account = privateKeyToAccount('0x...') export const walletClient = createWalletClient({ chain: mainnet, transport: http(), -}).extend(eip7702Actions()) +}) // ---cut--- const authorization = await walletClient.signAuthorization({ account, @@ -272,6 +271,25 @@ const request = await walletClient.prepareTransactionRequest({ }) ``` +### gas (optional) + +- **Type:** `bigint` + +The gas limit of the transaction. If missing, it will be estimated. + +```ts twoslash +// [!include config.ts] +// ---cut--- +import { parseEther, parseGwei } from 'viem' + +const request = await walletClient.prepareTransactionRequest({ + account, + gas: 21000n, // [!code focus] + to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + value: parseEther('1') +}) +``` + ### gasPrice (optional) - **Type:** `bigint` diff --git a/site/pages/experimental/eip5792/sendCalls.mdx b/site/pages/docs/actions/wallet/sendCalls.mdx similarity index 80% rename from site/pages/experimental/eip5792/sendCalls.mdx rename to site/pages/docs/actions/wallet/sendCalls.mdx index 6e0cc258f3..cdfe3d288f 100644 --- a/site/pages/experimental/eip5792/sendCalls.mdx +++ b/site/pages/docs/actions/wallet/sendCalls.mdx @@ -4,13 +4,9 @@ description: Sign and broadcast a batch of calls to the network. # sendCalls -Requests for the wallet to sign and broadcast a batch of calls (transactions) to the network. +Requests for the wallet to sign and broadcast a batch of calls to the network. -[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls) - -:::warning[Warning] -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: +[Read more](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls) ## Usage @@ -20,7 +16,7 @@ This is an experimental action that is not supported in most wallets. It is reco import { parseEther } from 'viem' import { account, walletClient } from './config' -const id = await walletClient.sendCalls({ // [!code focus:99] +const { id } = await walletClient.sendCalls({ // [!code focus:99] account, calls: [ { @@ -40,12 +36,11 @@ import 'viem/window' // ---cut--- import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' export const walletClient = createWalletClient({ chain: mainnet, transport: custom(window.ethereum!), -}).extend(eip5792Actions()) +}) export const [account] = await walletClient.getAddresses() ``` @@ -56,7 +51,7 @@ Notes: - `account` and `chain` are top level properties as all calls should be sent by the same account and chain. - Properties of `calls` items are only those shared by all transaction types (e.g. `data`, `to`, `value`). The Wallet should handle other required properties like gas & fees. -- [Read `wallet_sendCalls` on EIP-5792.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls) +- [Read `wallet_sendCalls` on EIP-5792.](https://eips.ethereum.org/EIPS/eip-5792#wallet_sendcalls) ### Account Hoisting @@ -69,7 +64,7 @@ If you do not wish to pass an `account` to every `sendCalls`, you can also hoist ```ts twoslash [example.ts] import { walletClient } from './config' -const id = await walletClient.sendCalls({ // [!code focus:99] +const { id } = await walletClient.sendCalls({ // [!code focus:99] calls: [ { to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', @@ -86,7 +81,6 @@ const id = await walletClient.sendCalls({ // [!code focus:99] ```ts [config.ts] filename="config.ts" import 'viem/window' import { createWalletClient, custom } from 'viem' -import { eip5792Actions } from 'viem/experimental' // Retrieve Account from an EIP-1193 Provider. const [account] = await window.ethereum!.request({ @@ -96,7 +90,7 @@ const [account] = await window.ethereum!.request({ export const walletClient = createWalletClient({ account, transport: custom(window.ethereum!) -}).extend(eip5792Actions()) +}) ``` ::: @@ -116,7 +110,7 @@ const abi = parseAbi([ 'function transferFrom(address, address, uint256) returns (bool)', ]) -const id = await walletClient.sendCalls({ // [!code focus:99] +const { id } = await walletClient.sendCalls({ // [!code focus:99] calls: [ { to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', @@ -162,7 +156,6 @@ export const wagmiAbi = [ ```ts [config.ts] filename="config.ts" import 'viem/window' import { createWalletClient, custom } from 'viem' -import { eip5792Actions } from 'viem/experimental' // Retrieve Account from an EIP-1193 Provider. const [account] = await window.ethereum!.request({ @@ -172,14 +165,14 @@ const [account] = await window.ethereum!.request({ export const walletClient = createWalletClient({ account, transport: custom(window.ethereum!) -}).extend(eip5792Actions()) +}) ``` ::: ## Returns -`string` +`{ id: string, capabilities?: WalletCapabilities }` The identifier can be any arbitrary string. The only requirement is that for a given session, consumers should be able to call `getCallsStatus` with this identifier to retrieve a batch call status and call receipts. @@ -196,7 +189,7 @@ Accepts a [JSON-RPC Account](/docs/clients/wallet#json-rpc-accounts). ```ts twoslash import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus] calls: [ { @@ -222,7 +215,7 @@ The target chain to broadcast the calls. import { mainnet } from 'viem/chains' import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ chain: mainnet, // [!code focus] calls: [ { @@ -247,7 +240,7 @@ An array of calls to be signed and broadcasted. import { mainnet } from 'viem/chains' import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ chain: mainnet, calls: [ // [!code focus] { // [!code focus] @@ -272,7 +265,7 @@ Calldata to broadcast (typically a contract function selector with encoded argum import { mainnet } from 'viem/chains' import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ chain: mainnet, calls: [ { @@ -297,7 +290,7 @@ Recipient address of the call. import { mainnet } from 'viem/chains' import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ chain: mainnet, calls: [ { @@ -322,7 +315,7 @@ Value to send with the call. import { mainnet } from 'viem/chains' import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ chain: mainnet, calls: [ { @@ -346,7 +339,7 @@ Capability metadata for the calls (e.g. specifying a paymaster). ```ts twoslash import { walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ calls: [ { to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', @@ -364,3 +357,52 @@ const id = await walletClient.sendCalls({ } // [!code focus] }) ``` + +### forceAtomic + +- **Type:** `boolean` +- **Default:** `false` + +Force the calls to be executed atomically. [See more](https://eips.ethereum.org/EIPS/eip-5792#call-execution-atomicity) + +```ts twoslash +import { walletClient } from './config' + +const { id } = await walletClient.sendCalls({ + calls: [ + { + to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + value: parseEther('1') + }, + { + data: '0xdeadbeef', + to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', + }, + ], + forceAtomic: true, // [!code focus] +}) +``` + +### id + +- **Type:** `string` + +Attribute the call batch with an identifier. + +```ts twoslash +import { walletClient } from './config' + +const { id } = await walletClient.sendCalls({ + calls: [ + { + to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + value: parseEther('1') + }, + { + data: '0xdeadbeef', + to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', + }, + ], + id: '', // [!code focus] +}) +``` \ No newline at end of file diff --git a/site/pages/docs/actions/wallet/sendTransaction.md b/site/pages/docs/actions/wallet/sendTransaction.md index c9977e4f1b..84f9537064 100644 --- a/site/pages/docs/actions/wallet/sendTransaction.md +++ b/site/pages/docs/actions/wallet/sendTransaction.md @@ -154,14 +154,13 @@ Signed EIP-7702 Authorization list. import { createWalletClient, http } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { eip7702Actions } from 'viem/experimental' const account = privateKeyToAccount('0x...') export const walletClient = createWalletClient({ chain: mainnet, transport: http(), -}).extend(eip7702Actions()) +}) // ---cut--- const authorization = await walletClient.signAuthorization({ account, @@ -244,6 +243,24 @@ const hash = await walletClient.sendTransaction({ }) ``` +### gas (optional) + +- **Type:** `bigint` + +The gas limit of the transaction. If missing, it will be estimated. + +```ts twoslash +// [!include ~/snippets/walletClient.ts] +// ---cut--- +// @noErrors +const hash = await walletClient.sendTransaction({ + account, + gas: 21000n, // [!code focus] + to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + value: parseEther('1') +}) +``` + ### gasPrice (optional) - **Type:** `bigint` diff --git a/site/pages/experimental/eip5792/showCallsStatus.mdx b/site/pages/docs/actions/wallet/showCallsStatus.mdx similarity index 79% rename from site/pages/experimental/eip5792/showCallsStatus.mdx rename to site/pages/docs/actions/wallet/showCallsStatus.mdx index 82a28d24c2..729780e199 100644 --- a/site/pages/experimental/eip5792/showCallsStatus.mdx +++ b/site/pages/docs/actions/wallet/showCallsStatus.mdx @@ -8,10 +8,6 @@ Requests for the wallet to show information about a call batch that was sent via [Read more.](https://github.com/ethereum/EIPs/blob/1663ea2e7a683285f977eda51c32cec86553f585/EIPS/eip-5792.md#wallet_showcallsstatus) -:::warning[Warning] -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: - ## Usage :::code-group @@ -29,12 +25,11 @@ import 'viem/window' // ---cut--- import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' export const walletClient = createWalletClient({ chain: mainnet, transport: custom(window.ethereum!), -}).extend(eip5792Actions()) +}) export const [account] = await walletClient.getAddresses() ``` diff --git a/site/pages/docs/actions/wallet/signTransaction.md b/site/pages/docs/actions/wallet/signTransaction.md index f9e4a6d930..2c34e447f8 100644 --- a/site/pages/docs/actions/wallet/signTransaction.md +++ b/site/pages/docs/actions/wallet/signTransaction.md @@ -162,14 +162,13 @@ Signed EIP-7702 Authorization list. import { createWalletClient, http } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { eip7702Actions } from 'viem/experimental' const account = privateKeyToAccount('0x...') export const walletClient = createWalletClient({ chain: mainnet, transport: http(), -}).extend(eip7702Actions()) +}) // ---cut--- const authorization = await walletClient.signAuthorization({ account, @@ -252,6 +251,24 @@ const signature = await walletClient.signTransaction({ }) ``` +### gas (optional) + +- **Type:** `bigint` + +The gas limit of the transaction. If missing, it will be estimated. + +```ts twoslash +// [!include ~/snippets/walletClient.ts] +// ---cut--- +// @noErrors +const signature = await walletClient.signTransaction({ + account, + gas: 21000n, // [!code focus] + to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + value: parseEther('1') +}) +``` + ### gasPrice (optional) - **Type:** `bigint` diff --git a/site/pages/docs/actions/wallet/switchChain.md b/site/pages/docs/actions/wallet/switchChain.md index 4009e16506..ce0e311a4a 100644 --- a/site/pages/docs/actions/wallet/switchChain.md +++ b/site/pages/docs/actions/wallet/switchChain.md @@ -34,4 +34,4 @@ The Chain ID. ## JSON-RPC Methods -[`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326) \ No newline at end of file +[`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326) diff --git a/site/pages/experimental/eip5792/waitForCallsStatus.mdx b/site/pages/docs/actions/wallet/waitForCallsStatus.mdx similarity index 54% rename from site/pages/experimental/eip5792/waitForCallsStatus.mdx rename to site/pages/docs/actions/wallet/waitForCallsStatus.mdx index 1637cc768a..57b93d0ee3 100644 --- a/site/pages/experimental/eip5792/waitForCallsStatus.mdx +++ b/site/pages/docs/actions/wallet/waitForCallsStatus.mdx @@ -1,14 +1,10 @@ --- -description: Waits for a call bundle to be confirmed & included on a Block. +description: Waits for a call batch to be confirmed & included on a Block. --- # waitForCallsStatus -Waits for a call bundle to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts. - -:::warning[Warning] -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: +Waits for a call batch to be confirmed & included on a [Block](/docs/glossary/terms#block) before returning the status & receipts. ## Usage @@ -18,7 +14,7 @@ This is an experimental action that is not supported in most wallets. It is reco import { parseEther } from 'viem' import { account, walletClient } from './config' -const id = await walletClient.sendCalls({ +const { id } = await walletClient.sendCalls({ account, calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', @@ -26,9 +22,17 @@ const id = await walletClient.sendCalls({ }], }) -const { status, receipts } = await walletClient.waitForCallsStatus({ // [!code focus] +const result = await walletClient.waitForCallsStatus({ // [!code focus] id, // [!code focus] }) // [!code focus] +// @log: { +// @log: atomic: false, +// @log: chainId: 1, +// @log: id: '0x1234567890abcdef', +// @log: statusCode: 200, +// @log: status: 'success', +// @log: receipts: [{ ... }], +// @log: } ``` ```ts twoslash [config.ts] filename="config.ts" @@ -36,12 +40,11 @@ import 'viem/window' // ---cut--- import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' export const walletClient = createWalletClient({ chain: mainnet, transport: custom(window.ethereum!), -}).extend(eip5792Actions()) +}) export const [account] = await walletClient.getAddresses() ``` @@ -63,7 +66,7 @@ Status and receipts of the calls. Identifier of the call batch. ```ts -const { status, receipts } = await walletClient.waitForCallsStatus({ +const result = await walletClient.waitForCallsStatus({ id: '0xdeadbeef', // [!code focus] }) ``` @@ -76,12 +79,26 @@ const { status, receipts } = await walletClient.waitForCallsStatus({ Polling interval in milliseconds. ```ts -const { status, receipts } = await walletClient.waitForCallsStatus({ +const result = await walletClient.waitForCallsStatus({ id: '0xdeadbeef', pollingInterval: 1_000, // [!code focus] }) ``` +### status + +- **Type:** `(parameters: { statusCode: number, status: string | undefined }) => boolean` +- **Default:** `(parameters) => parameters.statusCode >= 200` + +Status to wait for. Defaults to non-pending status codes (`>=200`). + +```ts +const result = await walletClient.waitForCallsStatus({ + id: '0xdeadbeef', + status: ({ status }) => status === 'success', // [!code focus] +}) +``` + ### timeout - **Type:** `number` @@ -90,7 +107,7 @@ const { status, receipts } = await walletClient.waitForCallsStatus({ Timeout in milliseconds before `waitForCallsStatus` stops polling. ```ts -const { status, receipts } = await walletClient.waitForCallsStatus({ +const result = await walletClient.waitForCallsStatus({ id: '0xdeadbeef', timeout: 10_000, // [!code focus] }) diff --git a/site/pages/docs/utilities/isErc6492Signature.md b/site/pages/docs/utilities/isErc6492Signature.md index a1f06a7c7a..19215c2854 100644 --- a/site/pages/docs/utilities/isErc6492Signature.md +++ b/site/pages/docs/utilities/isErc6492Signature.md @@ -9,13 +9,13 @@ Checks whether the signature is in [ERC-6492](https://eips.ethereum.org/EIPS/eip ## Import ```ts -import { isErc6492Signature } from 'viem/experimental' +import { isErc6492Signature } from 'viem/utils' ``` ## Usage ```ts twoslash -import { isErc6492Signature } from 'viem/experimental' +import { isErc6492Signature } from 'viem/utils' const result = isErc6492Signature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492') ``` diff --git a/site/pages/docs/utilities/parseErc6492Signature.md b/site/pages/docs/utilities/parseErc6492Signature.md index 62bbfacd16..7985d67b75 100644 --- a/site/pages/docs/utilities/parseErc6492Signature.md +++ b/site/pages/docs/utilities/parseErc6492Signature.md @@ -11,13 +11,13 @@ If the signature is not in ERC-6492 format, then the underlying (original) signa ## Import ```ts -import { parseErc6492Signature } from 'viem/experimental' +import { parseErc6492Signature } from 'viem/utils' ``` ## Usage ```ts twoslash -import { parseErc6492Signature } from 'viem/experimental' +import { parseErc6492Signature } from 'viem/utils' const { // [!code focus:99] address, diff --git a/site/pages/docs/utilities/serializeErc6492Signature.md b/site/pages/docs/utilities/serializeErc6492Signature.md index 9fd782d3d2..dc03877d67 100644 --- a/site/pages/docs/utilities/serializeErc6492Signature.md +++ b/site/pages/docs/utilities/serializeErc6492Signature.md @@ -9,13 +9,13 @@ Serializes a [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492) flavoured signa ## Import ```ts -import { serializeErc6492Signature } from 'viem/experimental' +import { serializeErc6492Signature } from 'viem/utils' ``` ## Usage ```ts twoslash -import { serializeErc6492Signature } from 'viem/experimental' +import { serializeErc6492Signature } from 'viem/utils' serializeErc6492Signature({ // [!code focus:99] address: '0xcafebabecafebabecafebabecafebabecafebabe', diff --git a/site/pages/docs/utilities/toHex.md b/site/pages/docs/utilities/toHex.md index c601fcdf00..070cbcf7ed 100644 --- a/site/pages/docs/utilities/toHex.md +++ b/site/pages/docs/utilities/toHex.md @@ -1,5 +1,5 @@ --- -description: Encodes a string, number, boolean or byte array to a hex value value. +description: Encodes a string, number, boolean or byte array to a hex value. --- # toHex diff --git a/site/pages/experimental.mdx b/site/pages/experimental.mdx index 041a570996..ebe76efce7 100644 --- a/site/pages/experimental.mdx +++ b/site/pages/experimental.mdx @@ -13,67 +13,3 @@ Viem provides a set of experimental features through the `viem/experimental` ent :::warning[Warning] It is recommended to not solely use experimental features in production. You should always have a fallback mechanism for unsupported features. ::: - -## Quick Start - -### 1. Set up your Client & Transport - -Firstly, set up your [Client](/docs/clients/intro) with a desired [Transport](/docs/clients/intro) & [Chain](/docs/chains/introduction). - -```ts -import { createWalletClient, custom } from 'viem' -import { mainnet } from 'viem/chains' - -const client = createWalletClient({ // [!code focus] - chain: mainnet, // [!code focus] - transport: custom(window.ethereum!), // [!code focus] -}) // [!code focus] -``` - -:::info -In a production app, it is highly recommended to pass through your authenticated RPC provider URL (Infura, thirdweb, etc). If no URL is provided, viem will default to a public RPC provider. [Read more](/docs/clients/transports/http#usage). -::: - -### 2. Extend Client with Experimental Actions - -Now that you have a Client set up, you can extend it with Experimental Actions! [Read more.](/experimental/client) - -```ts -import { createWalletClient, custom } from 'viem' -import { base } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' // [!code focus] - -const client = createWalletClient({ - chain: base, - transport: custom(window.ethereum!), -}).extend(eip5792Actions()) // [!code focus] -``` - -### 3. Consume Experimental Actions - -Now that you have an Experimental Client set up, you can now and consume [Actions](/experimental/eip5792/sendCalls)! - -```tsx -import { createWalletClient, custom, parseEther } from 'viem' -import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' - -const client = createWalletClient({ - chain: mainnet, - transport: custom(window.ethereum!), -}).extend(eip5792Actions()) - -const id = await client.sendCalls({ // [!code focus] - account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', // [!code focus] - calls: [// [!code focus] - {// [!code focus] - to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus] - value: parseEther('1'), // [!code focus] - },// [!code focus] - {// [!code focus] - data: '0xdeadbeef'// [!code focus] - to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus] - }, // [!code focus] - ] // [!code focus] -}) // [!code focus] -``` diff --git a/site/pages/experimental/eip5792/client.mdx b/site/pages/experimental/eip5792/client.mdx deleted file mode 100644 index 81f3dee7f3..0000000000 --- a/site/pages/experimental/eip5792/client.mdx +++ /dev/null @@ -1,16 +0,0 @@ -# Extending Client with EIP-5792 [Setting up your Viem Client] - -To use the experimental functionality of EIP-5792, you can extend your existing (or new) Viem Client with experimental EIP-5792 Actions. - -```ts -import { createPublicClient, createWalletClient, http } from 'viem' -import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' // [!code focus] - -const walletClient = createWalletClient({ - chain: mainnet, - transport: custom(window.ethereum!), -}).extend(eip5792Actions()) // [!code focus] - -const id = await walletClient.sendCalls({/* ... */}) -``` diff --git a/site/pages/experimental/eip5792/getCallsStatus.mdx b/site/pages/experimental/eip5792/getCallsStatus.mdx deleted file mode 100644 index f8902b8f49..0000000000 --- a/site/pages/experimental/eip5792/getCallsStatus.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -description: Returns the status and receipts of a call batch. ---- - -# getCallsStatus - -Returns the status and receipts of a call batch that was sent via `sendCalls`. - -[Read more.](https://github.com/ethereum/EIPs/blob/1663ea2e7a683285f977eda51c32cec86553f585/EIPS/eip-5792.md#wallet_getcallsstatus) - -:::warning[Warning] -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: - -## Usage - -:::code-group - -```ts twoslash [example.ts] -import { walletClient } from './config' - -const { status, receipts } = await walletClient.getCallsStatus({ // [!code focus:99] - id: '0x1234567890abcdef', -}) -``` - -```ts twoslash [config.ts] filename="config.ts" -import 'viem/window' -// ---cut--- -import { createWalletClient, custom } from 'viem' -import { mainnet } from 'viem/chains' -import { eip5792Actions } from 'viem/experimental' - -export const walletClient = createWalletClient({ - chain: mainnet, - transport: custom(window.ethereum!), -}).extend(eip5792Actions()) - -export const [account] = await walletClient.getAddresses() -``` - -::: - -## Returns - -`WalletGetCallsStatusReturnType` - -Status and receipts of the calls. - -## Parameters - -### id - -- **Type:** `string` - -Identifier of the call batch. - diff --git a/site/pages/experimental/erc7715/grantPermissions.mdx b/site/pages/experimental/erc7715/grantPermissions.mdx index 35e1a217fa..6533d5b366 100644 --- a/site/pages/experimental/erc7715/grantPermissions.mdx +++ b/site/pages/experimental/erc7715/grantPermissions.mdx @@ -47,12 +47,12 @@ import 'viem/window' // ---cut--- import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' -import { walletActionsErc7715 } from 'viem/experimental' +import { erc7715Actions } from 'viem/experimental' export const walletClient = createWalletClient({ chain: mainnet, transport: custom(window.ethereum!), -}).extend(walletActionsErc7715()) +}).extend(erc7715Actions()) export const [account] = await walletClient.getAddresses() ``` diff --git a/site/pages/experimental/erc7821/execute.md b/site/pages/experimental/erc7821/execute.md index 4f48d67ffe..8015bf2b7c 100644 --- a/site/pages/experimental/erc7821/execute.md +++ b/site/pages/experimental/erc7821/execute.md @@ -319,7 +319,7 @@ Signed EIP-7702 Authorization list. import { createWalletClient, http, parseEther } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { eip7702Actions, erc7821Actions } from 'viem/experimental' +import { erc7821Actions } from 'viem/experimental' const account = privateKeyToAccount('0x...') @@ -328,7 +328,6 @@ export const client = createWalletClient({ chain: mainnet, transport: http(), }) - .extend(eip7702Actions()) .extend(erc7821Actions()) // ---cut--- const authorization = await client.signAuthorization({ diff --git a/site/pages/experimental/erc7821/executeBatches.md b/site/pages/experimental/erc7821/executeBatches.md index 379dc4c983..c68da97dd6 100644 --- a/site/pages/experimental/erc7821/executeBatches.md +++ b/site/pages/experimental/erc7821/executeBatches.md @@ -368,7 +368,7 @@ Signed EIP-7702 Authorization list. import { createWalletClient, http, parseEther } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { eip7702Actions, erc7821Actions } from 'viem/experimental' +import { erc7821Actions } from 'viem/experimental' const account = privateKeyToAccount('0x...') @@ -377,7 +377,6 @@ export const client = createWalletClient({ chain: mainnet, transport: http(), }) - .extend(eip7702Actions()) .extend(erc7821Actions()) // ---cut--- const authorization = await client.signAuthorization({ diff --git a/site/pages/experimental/erc7846/client.md b/site/pages/experimental/erc7846/client.md new file mode 100644 index 0000000000..cb05e53057 --- /dev/null +++ b/site/pages/experimental/erc7846/client.md @@ -0,0 +1,16 @@ +# Extending Client with ERC-7846 Actions [Setting up your Viem Client] + +To use the experimental functionality of [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846), you can extend your existing (or new) Viem Client with experimental [ERC-7846](https://eips.ethereum.org/EIPS/eip-7846) Actions. + +```ts +import { createClient, http } from 'viem' +import { mainnet } from 'viem/chains' +import { erc7846Actions } from 'viem/experimental' // [!code focus] + +const client = createClient({ + chain: mainnet, + transport: http(), +}).extend(erc7846Actions()) // [!code focus] + +const hash = await client.connect() +``` diff --git a/site/pages/experimental/erc7846/connect.md b/site/pages/experimental/erc7846/connect.md new file mode 100644 index 0000000000..b94caf56ff --- /dev/null +++ b/site/pages/experimental/erc7846/connect.md @@ -0,0 +1,148 @@ +--- +description: Requests to connect Account(s). +--- + +# connect + +Requests to connect Account(s) with optional [capabilities](#capabilities). + +## Usage + +:::code-group + +```ts twoslash [example.ts] +import { walletClient } from './config' + +const { accounts } = await walletClient.connect() // [!code focus] +``` + +```ts twoslash [config.ts] filename="config.ts" +import 'viem/window' +// ---cut--- +import { createWalletClient, custom } from 'viem' +import { mainnet } from 'viem/chains' +import { erc7846Actions } from 'viem/experimental' + +export const walletClient = createWalletClient({ + chain: mainnet, + transport: custom(window.ethereum!), +}).extend(erc7846Actions()) +``` + +::: + +## Returns + +List of connected accounts. + +```ts +type ReturnType = { + accounts: readonly { + address: Address + capabilities: Record + }[] +} +``` + +## Parameters + +### `capabilities` + +- **Type:** `Record` + +Key-value pairs of [capabilities](#capabilities). + +```ts twoslash +import { walletClient } from './config' + +const { accounts } = await walletClient.connect({ + capabilities: { // [!code focus] + unstable_signInWithEthereum: { // [!code focus] + chainId: 1, // [!code focus] + nonce: 'abcd1234', // [!code focus] + } // [!code focus] + } // [!code focus] +}) +``` + +## Capabilities + +### `unstable_addSubAccount` + +Adds a Sub Account to the connected Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) + +```ts twoslash +import { walletClient } from './config' + +const { accounts } = await walletClient.connect({ + capabilities: { + unstable_addSubAccount: { // [!code focus] + account: { // [!code focus] + keys: [{ // [!code focus] + key: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus] + type: 'address', // [!code focus] + }], // [!code focus] + type: 'create', // [!code focus] + } // [!code focus] + } // [!code focus] + } +}) +// @log: [{ +// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', +// @log: capabilities: { +// @log: unstable_subAccounts: [{ +// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc', +// @log: }], +// @log: }, +// @log: }] +``` + +### `unstable_subAccounts` + +Returns all Sub Accounts of the connected Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) + +```ts twoslash +import { walletClient } from './config' + +const { accounts } = await walletClient.connect() +// @log: [{ +// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', +// @log: capabilities: { +// @log: unstable_subAccounts: [{ +// @log: address: '0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc', +// @log: }], +// @log: }, +// @log: }] +``` + + +### `unstable_signInWithEthereum` + +Authenticate offchain using Sign-In with Ethereum. [See more](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md#signinwithethereum) + +```ts twoslash +import { walletClient } from './config' + +const { accounts } = await walletClient.connect({ + capabilities: { + unstable_signInWithEthereum: { + chainId: 1, + nonce: 'abcd1234', + } + } +}) +// @log: [{ +// @log: address: '0x90F79bf6EB2c4f870365E785982E1f101E93b906', +// @log: capabilities: { +// @log: unstable_signInWithEthereum: { +// @log: message: 'example.com wants you to sign in with your Ethereum account...', +// @log: signature: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef', +// @log: }, +// @log: }, +// @log: }] +``` + +## JSON-RPC Methods + +- [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md) +- Falls back to [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102) diff --git a/site/pages/experimental/erc7846/disconnect.md b/site/pages/experimental/erc7846/disconnect.md new file mode 100644 index 0000000000..6d4369a152 --- /dev/null +++ b/site/pages/experimental/erc7846/disconnect.md @@ -0,0 +1,33 @@ +--- +description: Requests to disconnect account(s). +--- + +# disconnect + +Requests to disconnect account(s). + +## Usage + +:::code-group + +```ts twoslash [example.ts] +import { walletClient } from './config' + +const { accounts } = await walletClient.disconnect() // [!code focus] +``` + +```ts twoslash [config.ts] filename="config.ts" +import 'viem/window' +// ---cut--- +import { createWalletClient, custom } from 'viem' +import { mainnet } from 'viem/chains' +import { erc7846Actions } from 'viem/experimental' + +export const walletClient = createWalletClient({ + chain: mainnet, + transport: custom(window.ethereum!), +}).extend(erc7846Actions()) +``` + +::: + diff --git a/site/pages/experimental/erc7895/addSubAccount.md b/site/pages/experimental/erc7895/addSubAccount.md new file mode 100644 index 0000000000..dc6618f95c --- /dev/null +++ b/site/pages/experimental/erc7895/addSubAccount.md @@ -0,0 +1,211 @@ +--- +description: Requests to add a Sub Account. +--- + +# addSubAccount + +Requests to add a Sub Account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) + +[What is a Sub Account?](https://blog.base.dev/subaccounts) + +## Usage + +:::code-group + +```ts twoslash [example.ts] +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + keys: [{ + publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d', + type: 'address' + }], + type: 'create', +}) +``` + +```ts twoslash [config.ts] filename="config.ts" +import 'viem/window' +// ---cut--- +import { createWalletClient, custom } from 'viem' +import { mainnet } from 'viem/chains' +import { erc7895Actions } from 'viem/experimental' + +export const walletClient = createWalletClient({ + chain: mainnet, + transport: custom(window.ethereum!), +}).extend(erc7895Actions()) +``` + +::: + +## Returns + +The created Sub Account. + +```ts +type ReturnType = { + address: Address + factory?: Address | undefined + factoryData?: Hex | undefined +} +``` + +## Parameters + +### New Accounts + +Allows the wallet to create a Sub Account with a set of known signing keys. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#createaccount) + +#### `keys` + +Set of signing keys that will belong to the Sub Account. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + keys: [{ // [!code focus] + publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus] + type: 'p256' // [!code focus] + }], // [!code focus] + type: 'create', +}) +``` + +#### `keys.publicKey` + +- **Type:** `Hex` + +The public key of the signing key. + +- This is a 32-byte hexadecimal string. +- For `type: "address"`, this is a 20-byte address. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + keys: [{ + publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', // [!code focus] + type: 'p256' + }], + type: 'create', +}) +``` + +#### `keys.type` + +- **Type:** `'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256'` + +The type of signing key. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + keys: [{ + publicKey: '0xefd5fb29a274ea6682673d8b3caa9263e936d48d486e5df68893003e01241522', + type: 'p256' // [!code focus] + }], + type: 'create', +}) +``` + + +### Deployed Accounts + +An existing account that the user wants to link to their global account. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#deployedaccount) + +#### `address` + +Address of the deployed account. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', // [!code focus] + type: 'deployed', +}) +``` + +#### `chainId` + +The chain ID of the deployed account. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', + chainId: 1, // [!code focus] + type: 'deployed', +}) +``` + +### Undeployed Accounts + +An account that has been created, but is not yet deployed. The wallet will decide whether or not to deploy it. [Learn more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md#undeployedaccount) + +#### `address` + +Address of the undeployed account. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', // [!code focus] + factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', + factoryData: '0xdeadbeef', + type: 'undeployed', +}) +``` + +#### `chainId` + +The chain ID the account will be deployed on. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', + chainId: 1, // [!code focus] + factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', + factoryData: '0xdeadbeef', + type: 'undeployed', +}) +``` + +#### `factory` + +The address of the factory contract. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', + factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', // [!code focus] + factoryData: '0xdeadbeef', + type: 'undeployed', +}) +``` + +#### `factoryData` + +The data to be passed to the factory contract. + +```ts twoslash +import { walletClient } from './config' + +const subAccount = await walletClient.addSubAccount({ + address: '0x0000000000000000000000000000000000000000', + factory: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce', + factoryData: '0xdeadbeef', // [!code focus] + type: 'undeployed', +}) +``` + diff --git a/site/pages/experimental/erc7895/client.md b/site/pages/experimental/erc7895/client.md new file mode 100644 index 0000000000..2e3fc17628 --- /dev/null +++ b/site/pages/experimental/erc7895/client.md @@ -0,0 +1,19 @@ +# Extending Client with ERC-7895 Actions [Setting up your Viem Client] + +To use the experimental functionality of [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md), you can extend your existing (or new) Viem Client with experimental [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md) Actions. + +```ts +import { createClient, http } from 'viem' +import { mainnet } from 'viem/chains' +import { erc7895Actions } from 'viem/experimental' // [!code focus] + +const client = createClient({ + chain: mainnet, + transport: http(), +}).extend(erc7895Actions()) // [!code focus] + +const subAccount = await client.addSubAccount({ + keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }], + type: 'create', +}) +``` diff --git a/site/pages/op-stack/actions/estimateFinalizeWithdrawalGas.md b/site/pages/op-stack/actions/estimateFinalizeWithdrawalGas.md index 49e15ba1dc..526a180481 100644 --- a/site/pages/op-stack/actions/estimateFinalizeWithdrawalGas.md +++ b/site/pages/op-stack/actions/estimateFinalizeWithdrawalGas.md @@ -175,7 +175,7 @@ const hash = await client.estimateFinalizeWithdrawalGas({ - **Type:** `Address` - **Default:** `targetChain.contracts.portal[chainId].address` -The address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`. +The address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`. If a `portalAddress` is provided, the `targetChain` parameter becomes optional. @@ -223,4 +223,4 @@ const hash = await client.estimateFinalizeWithdrawalGas({ withdrawal: { /* ... */ }, // [!code focus] targetChain: optimism, }) -``` \ No newline at end of file +``` diff --git a/site/pages/op-stack/actions/estimateProveWithdrawalGas.md b/site/pages/op-stack/actions/estimateProveWithdrawalGas.md index 0096879c6e..16d0bdd913 100644 --- a/site/pages/op-stack/actions/estimateProveWithdrawalGas.md +++ b/site/pages/op-stack/actions/estimateProveWithdrawalGas.md @@ -206,7 +206,7 @@ const hash = await client.estimateProveWithdrawalGas({ - **Type:** `Address` - **Default:** `targetChain.contracts.portal[chainId].address` -The address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the Optimism Portal contract specified on the `targetChain`. +The address of the [Optimism Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the Optimism Portal contract specified on the `targetChain`. If a `portalAddress` is provided, the `targetChain` parameter becomes optional. @@ -275,4 +275,4 @@ const hash = await client.estimateProveWithdrawalGas({ withdrawal: { /* ... */ }, // [!code focus] targetChain: optimism, }) -``` \ No newline at end of file +``` diff --git a/site/pages/op-stack/actions/getTimeToFinalize.md b/site/pages/op-stack/actions/getTimeToFinalize.md index e09af744aa..8e74e282b7 100644 --- a/site/pages/op-stack/actions/getTimeToFinalize.md +++ b/site/pages/op-stack/actions/getTimeToFinalize.md @@ -90,7 +90,7 @@ const { seconds, timestamp } = await publicClientL1.getTimeToFinalize({ - **Type:** `Address` - **Default:** `targetChain.contracts.l2OutputOracle[chainId].address` -The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. +The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. If a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional. @@ -117,4 +117,4 @@ const { seconds } = await publicClientL1.getTimeToFinalize({ l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus] }) -``` \ No newline at end of file +``` diff --git a/site/pages/op-stack/actions/getTimeToProve.md b/site/pages/op-stack/actions/getTimeToProve.md index 85223fd59c..edeee94755 100644 --- a/site/pages/op-stack/actions/getTimeToProve.md +++ b/site/pages/op-stack/actions/getTimeToProve.md @@ -103,7 +103,7 @@ const time = await publicClientL1.getTimeToProve({ - **Type:** `Address` - **Default:** `targetChain.contracts.l2OutputOracle[chainId].address` -The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. +The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. If a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional. @@ -112,4 +112,4 @@ const time = await publicClientL1.getTimeToProve({ l2BlockNumber, l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus] }) -``` \ No newline at end of file +``` diff --git a/site/pages/op-stack/actions/getWithdrawalStatus.md b/site/pages/op-stack/actions/getWithdrawalStatus.md index 0ed4083c12..efb9c8a05b 100644 --- a/site/pages/op-stack/actions/getWithdrawalStatus.md +++ b/site/pages/op-stack/actions/getWithdrawalStatus.md @@ -79,7 +79,7 @@ const status = await publicClientL1.getWithdrawalStatus({ - **Type:** `Address` - **Default:** `targetChain.contracts.l2OutputOracle[chainId].address` -The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/L2OutputOracle.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. +The address of the [L2 Output Oracle contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. If a `l2OutputOracleAddress` is provided, the `targetChain` parameter becomes optional. @@ -96,7 +96,7 @@ const status = await publicClientL1.getWithdrawalStatus({ - **Type:** `Address` - **Default:** `targetChain.contracts.portal[chainId].address` -The address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. +The address of the [Portal contract](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/src/L1/OptimismPortal2.sol). Defaults to the L2 Output Oracle contract specified on the `targetChain`. If a `portalAddress` is provided, the `targetChain` parameter becomes optional. @@ -106,4 +106,4 @@ const status = await publicClientL1.getWithdrawalStatus({ l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed', portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed' // [!code focus] }) -``` \ No newline at end of file +``` diff --git a/site/pages/op-stack/actions/initiateWithdrawal.md b/site/pages/op-stack/actions/initiateWithdrawal.md index 72605e37fc..94ba2e9f3a 100644 --- a/site/pages/op-stack/actions/initiateWithdrawal.md +++ b/site/pages/op-stack/actions/initiateWithdrawal.md @@ -30,11 +30,11 @@ const hash = await walletClientL2.initiateWithdrawal({ ```ts [config.ts] import { createWalletClient, custom } from 'viem' import { privateKeyToAccount } from 'viem/accounts' -import { mainnet } from 'viem/chains' +import { optimism } from 'viem/chains' import { walletActionsL2 } from 'viem/op-stack' export const walletClientL2 = createWalletClient({ - chain: mainnet, + chain: optimism, transport: custom(window.ethereum) }).extend(walletActionsL2()) diff --git a/site/sidebar.ts b/site/sidebar.ts index ba26ee6a22..9b0c2d52ff 100644 --- a/site/sidebar.ts +++ b/site/sidebar.ts @@ -298,6 +298,31 @@ export const sidebar = { }, ], }, + { + text: 'Call Bundles (EIP-5792)', + items: [ + { + text: 'getCallsStatus', + link: '/docs/actions/wallet/getCallsStatus', + }, + { + text: 'getCapabilities', + link: '/docs/actions/wallet/getCapabilities', + }, + { + text: 'sendCalls', + link: '/docs/actions/wallet/sendCalls', + }, + { + text: 'showCallsStatus', + link: '/docs/actions/wallet/showCallsStatus', + }, + { + text: 'waitForCallsStatus', + link: '/docs/actions/wallet/waitForCallsStatus', + }, + ], + }, { text: 'Chain', items: [ @@ -1332,37 +1357,6 @@ export const sidebar = { }, ], }, - { - text: 'EIP-5792', - items: [ - { text: 'Client', link: '/experimental/eip5792/client' }, - { - text: 'Actions', - items: [ - { - text: 'getCallsStatus', - link: '/experimental/eip5792/getCallsStatus', - }, - { - text: 'getCapabilities', - link: '/experimental/eip5792/getCapabilities', - }, - { - text: 'sendCalls', - link: '/experimental/eip5792/sendCalls', - }, - { - text: 'showCallsStatus', - link: '/experimental/eip5792/showCallsStatus', - }, - { - text: 'waitForCallsStatus', - link: '/experimental/eip5792/waitForCallsStatus', - }, - ], - }, - ], - }, { text: 'ERC-7715', items: [ @@ -1446,6 +1440,46 @@ export const sidebar = { }, ], }, + { + text: 'ERC-7846', + items: [ + { + text: 'Client', + link: '/experimental/erc7846/client', + }, + { + text: 'Actions', + items: [ + { + text: 'connect', + link: '/experimental/erc7846/connect', + }, + { + text: 'disconnect', + link: '/experimental/erc7846/disconnect', + }, + ], + }, + ], + }, + { + text: 'ERC-7895', + items: [ + { + text: 'Client', + link: '/experimental/erc7895/client', + }, + { + text: 'Actions', + items: [ + { + text: 'addSubAccount', + link: '/experimental/erc7895/addSubAccount', + }, + ], + }, + ], + }, ], }, '/op-stack': { diff --git a/site/vercel.json b/site/vercel.json index 3757902d50..11df2991a5 100644 --- a/site/vercel.json +++ b/site/vercel.json @@ -67,6 +67,10 @@ { "source": "/docs/eip7702/:path*", "destination": "/docs/eip7702/:path*" + }, + { + "source": "/experimental/eip5792/:path*", + "destination": "/docs/actions/wallet/:path*" } ] } diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md index 218d37fbc3..fbcd61a0bf 100644 --- a/src/CHANGELOG.md +++ b/src/CHANGELOG.md @@ -1,5 +1,204 @@ # viem +## 2.29.1 + +### Patch Changes + +- [#3631](https://github.com/wevm/viem/pull/3631) [`1a49c75e44552c3bbb37f165adbb512fff0ed81b`](https://github.com/wevm/viem/commit/1a49c75e44552c3bbb37f165adbb512fff0ed81b) Thanks [@cruzdanilo](https://github.com/cruzdanilo)! - Added support for `blockOverrides` on `call`. + +- [#3625](https://github.com/wevm/viem/pull/3625) [`c8b6a18a229c8fc7137dfee67cd805c0d6c4f01f`](https://github.com/wevm/viem/commit/c8b6a18a229c8fc7137dfee67cd805c0d6c4f01f) Thanks [@alien-max](https://github.com/alien-max)! - Added arenaz chain. + +- [#3632](https://github.com/wevm/viem/pull/3632) [`31cdcda9383cb880bbe2e63852c5c881f12d1a02`](https://github.com/wevm/viem/commit/31cdcda9383cb880bbe2e63852c5c881f12d1a02) Thanks [@zainbacchus](https://github.com/zainbacchus)! - Updated `disputeGameFactory` contract for World Sepolia. + +- [`f3ec11e0688e57953b48628dde34a23ad9b4a01b`](https://github.com/wevm/viem/commit/f3ec11e0688e57953b48628dde34a23ad9b4a01b) Thanks [@jxom](https://github.com/jxom)! - Added `./experimental/erc7895` to `package.json#exports`. + +- [#3623](https://github.com/wevm/viem/pull/3623) [`5cf857b6d2f1e25b635626c0e3056dc769bbf75d`](https://github.com/wevm/viem/commit/5cf857b6d2f1e25b635626c0e3056dc769bbf75d) Thanks [@aaronmgdr](https://github.com/aaronmgdr)! - **Celo:** Updated `CeloBlock` & `CeloRpcBlock` types. + +## 2.29.0 + +### Minor Changes + +- [#3621](https://github.com/wevm/viem/pull/3621) [`cede184b5ed9519ce8538bd9e99db4961d531798`](https://github.com/wevm/viem/commit/cede184b5ed9519ce8538bd9e99db4961d531798) Thanks [@jxom](https://github.com/jxom)! - **Experimental:** Added `addSubAccount` Action as per [ERC-7895](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md). + +- [#3619](https://github.com/wevm/viem/pull/3619) [`4563ed5147f13c679043fae30d955b7a72cfc60f`](https://github.com/wevm/viem/commit/4563ed5147f13c679043fae30d955b7a72cfc60f) Thanks [@jxom](https://github.com/jxom)! - **Experimental:** Added capabilities for the `connect` Action: + + - `unstable_addSubAccount`: Adds a sub-account to the connected account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md). + - `unstable_getSubAccounts`: Returns all sub-accounts of the connected account. [See more](https://github.com/ethereum/ERCs/blob/4d3d641ee3c84750baf461b8dd71d27c424417a9/ERCS/erc-7895.md). + - `unstable_signInWithEthereum`: Connect + Authenticate using Sign-In with Ethereum.[See more](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md#signinwithethereum). + +- [#3619](https://github.com/wevm/viem/pull/3619) [`4563ed5147f13c679043fae30d955b7a72cfc60f`](https://github.com/wevm/viem/commit/4563ed5147f13c679043fae30d955b7a72cfc60f) Thanks [@jxom](https://github.com/jxom)! - **Experimental:** Added `connect` + `disconnect` Actions as per [ERC-7836: Wallet Connection API (`wallet_connect`)](https://github.com/ethereum/ERCs/pull/779). + +### Patch Changes + +- [#3626](https://github.com/wevm/viem/pull/3626) [`da3a50f01b8383c2c6023a57806aae0fb6e6e585`](https://github.com/wevm/viem/commit/da3a50f01b8383c2c6023a57806aae0fb6e6e585) Thanks [@fubhy](https://github.com/fubhy)! - Updated `watchBlocks` to also work from genesis blocks using `emitMissed`. + +## 2.28.4 + +### Patch Changes + +- [#3615](https://github.com/wevm/viem/pull/3615) [`804187c8c8b48654605f47e4383a57ec66a21064`](https://github.com/wevm/viem/commit/804187c8c8b48654605f47e4383a57ec66a21064) Thanks [@jxom](https://github.com/jxom)! - Added typed EIP-5792 capabilities. + +## 2.28.3 + +### Patch Changes + +- [#3611](https://github.com/wevm/viem/pull/3611) [`6cc31bbc87c788b0ccad15ab648e467222ae9105`](https://github.com/wevm/viem/commit/6cc31bbc87c788b0ccad15ab648e467222ae9105) Thanks [@jxom](https://github.com/jxom)! - Passed `chainId` to `wallet_getCapabilities`. + +## 2.28.2 + +### Patch Changes + +- [#3600](https://github.com/wevm/viem/pull/3600) [`198504d07507e9ece02f00241a567bec43eae38a`](https://github.com/wevm/viem/commit/198504d07507e9ece02f00241a567bec43eae38a) Thanks [@TateB](https://github.com/TateB)! - Added `type` parameter to `sendTransaction`. + +- [#3607](https://github.com/wevm/viem/pull/3607) [`e39d6c1ea4a54866bfeb7eadb445598d20033798`](https://github.com/wevm/viem/commit/e39d6c1ea4a54866bfeb7eadb445598d20033798) Thanks [@Ryan-Adami](https://github.com/Ryan-Adami)! - Updated Fraxtal and Fraxtal testnet native currency to FRAX. + +## 2.28.1 + +### Patch Changes + +- [`982e2cadbe8647fbe59108080b5cb13327cbfbaa`](https://github.com/wevm/viem/commit/982e2cadbe8647fbe59108080b5cb13327cbfbaa) Thanks [@jxom](https://github.com/jxom)! - Added assertion for signature length in signature validation. + +- [#3596](https://github.com/wevm/viem/pull/3596) [`4b960104bd5bd3b277fc697a11dd0b7ff01be065`](https://github.com/wevm/viem/commit/4b960104bd5bd3b277fc697a11dd0b7ff01be065) Thanks [@tech-memecore](https://github.com/tech-memecore)! - Added MemeCore mainnet and testnet. + +- [#3599](https://github.com/wevm/viem/pull/3599) [`4bbab5f3e88268b8a4138460a4701ee3eb07adb8`](https://github.com/wevm/viem/commit/4bbab5f3e88268b8a4138460a4701ee3eb07adb8) Thanks [@Yutaro-Mori-eng](https://github.com/Yutaro-Mori-eng)! - Added Shardeum mainnet. + +## 2.28.0 + +### Minor Changes + +- [#3580](https://github.com/wevm/viem/pull/3580) [`6aa70af8324612d8aeb0bb15ebe9d7b6d1688f4a`](https://github.com/wevm/viem/commit/6aa70af8324612d8aeb0bb15ebe9d7b6d1688f4a) Thanks [@jxom](https://github.com/jxom)! - **Account Abstraction:** Added support for EIP-7702 Authorizations on User Operations. + +- [#3580](https://github.com/wevm/viem/pull/3580) [`6aa70af8324612d8aeb0bb15ebe9d7b6d1688f4a`](https://github.com/wevm/viem/commit/6aa70af8324612d8aeb0bb15ebe9d7b6d1688f4a) Thanks [@jxom](https://github.com/jxom)! - **Account Abstraction:** Added support for EntryPoint 0.8. + +- [#3592](https://github.com/wevm/viem/pull/3592) [`e88edb2087ad31cf80ceb04549c12fb2cb46b62f`](https://github.com/wevm/viem/commit/e88edb2087ad31cf80ceb04549c12fb2cb46b62f) Thanks [@jxom](https://github.com/jxom)! - Stabilized EIP-5792 (moved out of experimental). + +### Patch Changes + +- [#3531](https://github.com/wevm/viem/pull/3531) [`573e7d70ec3a58c2bd395f47987422a5ab6d0475`](https://github.com/wevm/viem/commit/573e7d70ec3a58c2bd395f47987422a5ab6d0475) Thanks [@RobbyUitbeijerse](https://github.com/RobbyUitbeijerse)! - Added ERC-1155 export. + +## 2.27.3 + +### Patch Changes + +- [#3581](https://github.com/wevm/viem/pull/3581) [`bb9398a43ebbb8d9af52832a845c0ebe19495a2e`](https://github.com/wevm/viem/commit/bb9398a43ebbb8d9af52832a845c0ebe19495a2e) Thanks [@Yutaro-Mori-eng](https://github.com/Yutaro-Mori-eng)! - Added Gunz Mainnet. + +- [#3588](https://github.com/wevm/viem/pull/3588) [`0098740f4930a80744efc218303fb986f961d4db`](https://github.com/wevm/viem/commit/0098740f4930a80744efc218303fb986f961d4db) Thanks [@talentlessguy](https://github.com/talentlessguy)! - Updated noble dependencies. + +## 2.27.2 + +### Patch Changes + +- [#3570](https://github.com/wevm/viem/pull/3570) [`a9f33168c0c11ade302bd66373c57c1e2386e2bd`](https://github.com/wevm/viem/commit/a9f33168c0c11ade302bd66373c57c1e2386e2bd) Thanks [@manuelbarbas](https://github.com/manuelbarbas)! - Updated SKALE Network Chains. + +- [#3579](https://github.com/wevm/viem/pull/3579) [`295e4f9e1a8aab79f88f8e59c4d5e7ac25def1ae`](https://github.com/wevm/viem/commit/295e4f9e1a8aab79f88f8e59c4d5e7ac25def1ae) Thanks [@jxom](https://github.com/jxom)! - **Account Abstraction:** Made `toCoinbaseSmartWallet` prefer `signTypedData` on owners. + +- [#3571](https://github.com/wevm/viem/pull/3571) [`b43af337761520f9c4d616d05387e5aae9473348`](https://github.com/wevm/viem/commit/b43af337761520f9c4d616d05387e5aae9473348) Thanks [@gr-akshaya](https://github.com/gr-akshaya)! - Added Core Blockchain Testnet details + +- [#3568](https://github.com/wevm/viem/pull/3568) [`2ad4736e25ddfe8f4ad3f4d031440f6e72f912e2`](https://github.com/wevm/viem/commit/2ad4736e25ddfe8f4ad3f4d031440f6e72f912e2) Thanks [@Markeljan](https://github.com/Markeljan)! - Fixed Metis & Metis Sepolia rpcUrls config + +- [#3567](https://github.com/wevm/viem/pull/3567) [`f28503e0f96f14bc0c75b56d92bf08a00c70f490`](https://github.com/wevm/viem/commit/f28503e0f96f14bc0c75b56d92bf08a00c70f490) Thanks [@Markeljan](https://github.com/Markeljan)! - Fixed Newton chain rpc url typo + +## 2.27.0 + +### Minor Changes + +- [#3440](https://github.com/wevm/viem/pull/3440) [`e06a46a732d075f3a0d3bca916f82f39ee9d4344`](https://github.com/wevm/viem/commit/e06a46a732d075f3a0d3bca916f82f39ee9d4344) Thanks [@adraffy](https://github.com/adraffy)! - Added support for [ENSIP-21: Batch Gateway Offchain Lookup Protocol](https://github.com/ensdomains/ensips/blob/master/ensips/21.md). + +### Patch Changes + +- [#3564](https://github.com/wevm/viem/pull/3564) [`f22fe5ac63a4e403949fe301f548f28ac0c1a070`](https://github.com/wevm/viem/commit/f22fe5ac63a4e403949fe301f548f28ac0c1a070) Thanks [@abs3ntdev](https://github.com/abs3ntdev)! - Added Tron Shasta network + +- [#3561](https://github.com/wevm/viem/pull/3561) [`8053048eaac6d3ad8e800742681ac27cbd8ed18a`](https://github.com/wevm/viem/commit/8053048eaac6d3ad8e800742681ac27cbd8ed18a) Thanks [@menefrego15](https://github.com/menefrego15)! - Added multicall3 contract to Hoodi chain + +- [`151e8944cd2eb2eb742dc84e566e886d0d638d3b`](https://github.com/wevm/viem/commit/151e8944cd2eb2eb742dc84e566e886d0d638d3b) Thanks [@jxom](https://github.com/jxom)! - Fixed ERC-7739 `signMessage` domain to not include salt. + +- [#3565](https://github.com/wevm/viem/pull/3565) [`542371cce67fa2bb2730e24a267629f4a2e89520`](https://github.com/wevm/viem/commit/542371cce67fa2bb2730e24a267629f4a2e89520) Thanks [@foxtrotravi](https://github.com/foxtrotravi)! - Added Lestnet chain. + +- [`4ba1a41f6b309d4d77236b073eb5b9da0f6330f5`](https://github.com/wevm/viem/commit/4ba1a41f6b309d4d77236b073eb5b9da0f6330f5) Thanks [@jxom](https://github.com/jxom)! - Fixed `getCallsStatus` failure status codes. + +## 2.26.5 + +### Patch Changes + +- [#3558](https://github.com/wevm/viem/pull/3558) [`ba55147b8b42552d29c25be6368c6e4bb50bb25c`](https://github.com/wevm/viem/commit/ba55147b8b42552d29c25be6368c6e4bb50bb25c) Thanks [@jxom](https://github.com/jxom)! - Added EIP-5792 errors. + +## 2.26.4 + +### Patch Changes + +- [#3553](https://github.com/wevm/viem/pull/3553) [`7487580941c1527483dca5267bd6817913d01aeb`](https://github.com/wevm/viem/commit/7487580941c1527483dca5267bd6817913d01aeb) Thanks [@Yutaro-Mori-eng](https://github.com/Yutaro-Mori-eng)! - Added Lens mainnet. + +## 2.26.3 + +### Patch Changes + +- [`973d88ea66192c8a73410ca2dea2034e6a2c96a1`](https://github.com/wevm/viem/commit/973d88ea66192c8a73410ca2dea2034e6a2c96a1) Thanks [@jxom](https://github.com/jxom)! - **Experimental (EIP-5792):** Fixed `getCallsStatus` return value + +## 2.26.2 + +### Patch Changes + +- [`f736d9b2a6711a739a1fbae8c3c18fb694b407a4`](https://github.com/wevm/viem/commit/f736d9b2a6711a739a1fbae8c3c18fb694b407a4) Thanks [@jxom](https://github.com/jxom)! - Exported `withCache`. + +## 2.26.1 + +### Patch Changes + +- [#3545](https://github.com/wevm/viem/pull/3545) [`33a01b96554759bb9fa60d3c4bfc1c2cd5974ddc`](https://github.com/wevm/viem/commit/33a01b96554759bb9fa60d3c4bfc1c2cd5974ddc) Thanks [@bmzig](https://github.com/bmzig)! - **OP Stack:** Fixed `Unproven` case. + +## 2.26.0 + +### Minor Changes + +- [#3542](https://github.com/wevm/viem/pull/3542) [`082c3d0fcc2e376954116d380c65c6ac95293681`](https://github.com/wevm/viem/commit/082c3d0fcc2e376954116d380c65c6ac95293681) Thanks [@jxom](https://github.com/jxom)! - **Breaking (Experimental):** Updated EIP-5792 to the latest spec changes. The following APIs have been updated: + + #### `getCallsStatus` + + ```diff + const result = await client.getCallsStatus({ id }) + // ^? + { + + atomic: boolean + + chainId: number + + id: string + receipts: Receipt[] + - status: 'PENDING' | 'CONFIRMED' + + status: 'pending' | 'success' | 'failure' | undefined + + statusCode: number + + version: string + } + ``` + + #### `sendCalls` + + ```diff + const result = await client.sendCalls({ calls }) + // ^? + - string + + { id: string, capabilities?: Capabilities } + ``` + + #### `waitForCallsStatus` + + ```diff + const result = await client.waitForCallsStatus({ id }) + // ^? + { + + atomic: boolean + + chainId: number + + id: string + receipts: Receipt[] + - status: 'PENDING' | 'CONFIRMED' + + status: 'pending' | 'success' | 'failure' | undefined + + statusCode: number + + version: string + } + ``` + +### Patch Changes + +- [#3542](https://github.com/wevm/viem/pull/3542) [`082c3d0fcc2e376954116d380c65c6ac95293681`](https://github.com/wevm/viem/commit/082c3d0fcc2e376954116d380c65c6ac95293681) Thanks [@jxom](https://github.com/jxom)! - **Experimental:** Added `forceAtomic` and `id` parameters to `sendCalls` + ## 2.25.0 ### Minor Changes diff --git a/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.test.ts b/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.test.ts index e6ada3600a..d8df786f04 100644 --- a/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.test.ts +++ b/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.test.ts @@ -415,6 +415,39 @@ describe('return value: sign', () => { expect(result).toBeTruthy() }) + + test('behavior: owner uses `sign` instead of `signTypedData`', async () => { + const owner = privateKeyToAccount(accounts[0].privateKey) + // @ts-expect-error + owner.signTypedData = undefined + + const account = await toCoinbaseSmartAccount({ + client, + owners: [owner], + nonce: 70n, + }) + + await writeContract(client, { + ...account.factory, + functionName: 'createAccount', + args: [[pad(owner.address)], 70n], + }) + await mine(client, { + blocks: 1, + }) + + const signature = await account.sign({ + hash: '0xd9eba16ed0ecae432b71fe008c98cc872bb4cc214d3220a36f365326cf807d68', + }) + + const result = await verifyHash(client, { + address: await account.getAddress(), + hash: '0xd9eba16ed0ecae432b71fe008c98cc872bb4cc214d3220a36f365326cf807d68', + signature, + }) + + expect(result).toBeTruthy() + }) }) describe('return value: signMessage', () => { @@ -466,6 +499,39 @@ describe('return value: signMessage', () => { expect(result).toBeTruthy() }) + + test('behavior: owner uses `sign` instead of `signTypedData`', async () => { + const owner = privateKeyToAccount(accounts[0].privateKey) + // @ts-expect-error + owner.signMessage = undefined + + const account = await toCoinbaseSmartAccount({ + client, + owners: [owner], + nonce: 70n, + }) + + await writeContract(client, { + ...account.factory, + functionName: 'createAccount', + args: [[pad(owner.address)], 70n], + }) + await mine(client, { + blocks: 1, + }) + + const signature = await account.signMessage({ + message: 'hello world', + }) + + const result = await verifyMessage(client, { + address: await account.getAddress(), + message: 'hello world', + signature, + }) + + expect(result).toBeTruthy() + }) }) describe('return value: signTypedData', () => { @@ -519,6 +585,40 @@ describe('return value: signTypedData', () => { }) expect(result).toBeTruthy() }) + + test('behavior: owner uses `sign` instead of `signTypedData`', async () => { + const owner = privateKeyToAccount(accounts[0].privateKey) + // @ts-expect-error + owner.signTypedData = undefined + + const account = await toCoinbaseSmartAccount({ + client, + owners: [owner], + nonce: 515151n, + }) + + await writeContract(client, { + ...account.factory, + functionName: 'createAccount', + args: [[pad(owner.address)], 515151n], + }) + await mine(client, { + blocks: 1, + }) + + const signature = await account.signTypedData({ + ...typedData.basic, + primaryType: 'Mail', + }) + + const result = await verifyTypedData(client, { + address: await account.getAddress(), + signature, + ...typedData.basic, + primaryType: 'Mail', + }) + expect(result).toBeTruthy() + }) }) describe('return value: signUserOperation', () => { @@ -650,7 +750,6 @@ describe('smoke', async () => { client, owners: [owner], }) - await sendTransaction(client, { account: accounts[9].address, to: account.address, diff --git a/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts b/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts index 22551ee3f7..79579714b9 100644 --- a/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +++ b/src/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts @@ -4,7 +4,6 @@ import type * as WebAuthnP256 from 'ox/WebAuthnP256' import type { LocalAccount } from '../../../accounts/types.js' import { readContract } from '../../../actions/public/readContract.js' -import type { Client } from '../../../clients/createClient.js' import { entryPoint06Address } from '../../../constants/address.js' import { BaseError } from '../../../errors/base.js' import type { Hash, Hex } from '../../../types/misc.js' @@ -32,7 +31,7 @@ import type { export type ToCoinbaseSmartAccountParameters = { address?: Address | undefined - client: Client + client: CoinbaseSmartAccountImplementation['client'] ownerIndex?: number | undefined owners: readonly (Address | OneOf)[] nonce?: bigint | undefined @@ -177,14 +176,14 @@ export async function toCoinbaseSmartAccount( async sign(parameters) { const address = await this.getAddress() - const hash = toReplaySafeHash({ + const typedData = toReplaySafeTypedData({ address, chainId: client.chain!.id, hash: parameters.hash, }) if (owner.type === 'address') throw new Error('owner cannot sign') - const signature = await sign({ hash, owner }) + const signature = await signTypedData({ owner, typedData }) return wrapSignature({ ownerIndex, @@ -196,14 +195,14 @@ export async function toCoinbaseSmartAccount( const { message } = parameters const address = await this.getAddress() - const hash = toReplaySafeHash({ + const typedData = toReplaySafeTypedData({ address, chainId: client.chain!.id, hash: hashMessage(message), }) if (owner.type === 'address') throw new Error('owner cannot sign') - const signature = await sign({ hash, owner }) + const signature = await signTypedData({ owner, typedData }) return wrapSignature({ ownerIndex, @@ -216,7 +215,7 @@ export async function toCoinbaseSmartAccount( parameters as TypedDataDefinition const address = await this.getAddress() - const hash = toReplaySafeHash({ + const typedData = toReplaySafeTypedData({ address, chainId: client.chain!.id, hash: hashTypedData({ @@ -228,7 +227,7 @@ export async function toCoinbaseSmartAccount( }) if (owner.type === 'address') throw new Error('owner cannot sign') - const signature = await sign({ hash, owner }) + const signature = await signTypedData({ owner, typedData }) return wrapSignature({ ownerIndex, @@ -278,6 +277,21 @@ export async function toCoinbaseSmartAccount( // Utilities ///////////////////////////////////////////////////////////////////////////////////////////// +/** @internal */ +export async function signTypedData({ + typedData, + owner, +}: { + typedData: TypedDataDefinition + owner: OneOf +}) { + if (owner.type === 'local' && owner.signTypedData) + return owner.signTypedData(typedData) + + const hash = hashTypedData(typedData) + return sign({ hash, owner }) +} + /** @internal */ export async function sign({ hash, @@ -297,12 +311,12 @@ export async function sign({ } /** @internal */ -export function toReplaySafeHash({ +export function toReplaySafeTypedData({ address, chainId, hash, }: { address: Address; chainId: number; hash: Hash }) { - return hashTypedData({ + return { domain: { chainId, name: 'Coinbase Smart Wallet', @@ -321,7 +335,7 @@ export function toReplaySafeHash({ message: { hash, }, - }) + } as const } /** @internal */ diff --git a/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.test.ts b/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.test.ts new file mode 100644 index 0000000000..9ce68f1e17 --- /dev/null +++ b/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.test.ts @@ -0,0 +1,363 @@ +import type { Address } from 'abitype' +import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest' + +import { anvilMainnet } from '../../../../test/src/anvil.js' +import { accounts, typedData } from '../../../../test/src/constants.js' +import { deploySimple7702Account_08 } from '../../../../test/src/utils.js' +import { privateKeyToAccount } from '../../../accounts/privateKeyToAccount.js' +import { + mine, + sendTransaction, + signAuthorization, + verifyMessage, + verifyTypedData, +} from '../../../actions/index.js' +import { zeroAddress } from '../../../constants/address.js' +import { toSimple7702SmartAccount } from './toSimple7702SmartAccount.js' + +const client = anvilMainnet.getClient({ account: true }) + +let implementation: Address +beforeAll(async () => { + const { implementationAddress: _implementation } = + await deploySimple7702Account_08() + implementation = _implementation +}) + +test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + expect({ + ...account, + _internal: null, + abi: null, + entryPoint: null, + client: null, + factory: null, + }).toMatchInlineSnapshot(` + { + "_internal": null, + "abi": null, + "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", + "authorization": { + "account": { + "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", + "nonceManager": undefined, + "publicKey": "0x04ba5734d8f7091719471e7f7ed6b9df170dc70cc661ca05e688601ad984f068b0d67351e5f06073092499336ab0839ef8a521afd334e53807205fa2f08eec74f4", + "sign": [Function], + "signAuthorization": [Function], + "signMessage": [Function], + "signTransaction": [Function], + "signTypedData": [Function], + "source": "privateKey", + "type": "local", + }, + "address": "0xe6Cae83BdE06E4c305530e199D7217f42808555B", + }, + "client": null, + "decodeCalls": [Function], + "encodeCalls": [Function], + "entryPoint": null, + "factory": null, + "getAddress": [Function], + "getFactoryArgs": [Function], + "getNonce": [Function], + "getStubSignature": [Function], + "isDeployed": [Function], + "owner": { + "address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8", + "nonceManager": undefined, + "publicKey": "0x04ba5734d8f7091719471e7f7ed6b9df170dc70cc661ca05e688601ad984f068b0d67351e5f06073092499336ab0839ef8a521afd334e53807205fa2f08eec74f4", + "sign": [Function], + "signAuthorization": [Function], + "signMessage": [Function], + "signTransaction": [Function], + "signTypedData": [Function], + "source": "privateKey", + "type": "local", + }, + "signMessage": [Function], + "signTypedData": [Function], + "signUserOperation": [Function], + "type": "smart", + } + `) +}) + +describe('return value: getAddress', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const address = await account.getAddress() + expect(address).toMatchInlineSnapshot( + `"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"`, + ) + }) +}) + +describe('return value: decodeCalls', () => { + test('single', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const calls = [ + { + to: '0x0000000000000000000000000000000000000000', + value: 69n, + data: '0xdeadbeef', + }, + ] as const + + const data = await account.encodeCalls(calls) + const decoded = await account.decodeCalls?.(data) + expect(decoded).toEqual(calls) + }) + + test('batch', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const calls = [ + { + data: '0x', + to: '0x0000000000000000000000000000000000000000', + value: 0n, + }, + { + data: '0x', + to: '0x0000000000000000000000000000000000000000', + value: 69n, + }, + { + to: '0x0000000000000000000000000000000000000000', + value: 69n, + data: '0xdeadbeef', + }, + ] as const + + const data = await account.encodeCalls(calls) + const decoded = await account.decodeCalls?.(data) + expect(decoded).toEqual(calls) + }) +}) + +describe('return value: encodeCalls', () => { + test('single', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const callData_1 = await account.encodeCalls([ + { to: '0x0000000000000000000000000000000000000000' }, + ]) + const callData_2 = await account.encodeCalls([ + { to: '0x0000000000000000000000000000000000000000', value: 69n }, + ]) + const callData_3 = await account.encodeCalls([ + { + to: '0x0000000000000000000000000000000000000000', + value: 69n, + data: '0xdeadbeef', + }, + ]) + + expect(callData_1).toMatchInlineSnapshot( + `"0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000"`, + ) + expect(callData_2).toMatchInlineSnapshot( + `"0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000"`, + ) + expect(callData_3).toMatchInlineSnapshot( + `"0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004deadbeef00000000000000000000000000000000000000000000000000000000"`, + ) + }) + + test('batch', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const callData = await account.encodeCalls([ + { to: '0x0000000000000000000000000000000000000000' }, + { to: '0x0000000000000000000000000000000000000000', value: 69n }, + { + to: '0x0000000000000000000000000000000000000000', + value: 69n, + data: '0xdeadbeef', + }, + ]) + + expect(callData).toMatchInlineSnapshot( + `"0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004deadbeef00000000000000000000000000000000000000000000000000000000"`, + ) + }) +}) + +describe('return value: getFactoryArgs', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const signature = await account.getFactoryArgs() + expect(signature).toMatchInlineSnapshot( + ` + { + "factory": "0x7702", + "factoryData": "0x", + } + `, + ) + }) +}) + +describe('return value: getSignature', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const signature = await account.getStubSignature() + expect(signature).toMatchInlineSnapshot( + `"0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c"`, + ) + }) +}) + +describe('return value: getNonce', () => { + beforeEach(() => { + vi.useFakeTimers() + vi.setSystemTime(new Date(Date.UTC(2023, 1, 1))) + return () => vi.useRealTimers() + }) + + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const nonce = await account.getNonce() + expect(nonce).toMatchInlineSnapshot('30902162761021348478818713600000n') + }) + + test('args: key', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const nonce = await account.getNonce({ key: 0n }) + expect(nonce).toMatchInlineSnapshot('0n') + }) +}) + +describe('return value: signMessage', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const authorization = await signAuthorization(client, { + address: implementation, + account: privateKeyToAccount(accounts[1].privateKey), + }) + + await sendTransaction(client, { + account: privateKeyToAccount(accounts[1].privateKey), + to: zeroAddress, + value: 0n, + data: '0x', + authorizationList: [authorization], + }) + + await mine(client, { + blocks: 1, + }) + + const signature = await account.signMessage({ + message: 'hello world', + }) + + const result = await verifyMessage(client, { + address: await account.getAddress(), + message: 'hello world', + signature, + }) + + expect(result).toBeTruthy() + }) +}) + +describe('return value: signTypedData', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const signature = await account.signTypedData({ + ...typedData.basic, + primaryType: 'Mail', + }) + + const result = await verifyTypedData(client, { + address: await account.getAddress(), + signature, + ...typedData.basic, + primaryType: 'Mail', + }) + expect(result).toBeTruthy() + }) +}) + +describe('return value: signUserOperation', () => { + test('default', async () => { + const account = await toSimple7702SmartAccount({ + client, + implementation, + owner: privateKeyToAccount(accounts[1].privateKey), + }) + + const signature = await account.signUserOperation({ + callData: '0xdeadbeef', + callGasLimit: 69n, + maxFeePerGas: 69n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 69n, + signature: '0xdeadbeef', + verificationGasLimit: 69n, + }) + + expect(signature).toMatchInlineSnapshot( + `"0xf29d9b44ec09b8542328c9f75a6e36976ac3507b43fa2d86f06b5157e60db7207bafccde8e7a308019dce8b540642e6134a5aebd69bfacb1778928c7f7c774711c"`, + ) + }) +}) diff --git a/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.ts b/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.ts new file mode 100644 index 0000000000..4e55a01258 --- /dev/null +++ b/src/account-abstraction/accounts/implementations/toSimple7702SmartAccount.ts @@ -0,0 +1,317 @@ +import type { Address, TypedData } from 'abitype' + +import type { PrivateKeyAccount } from '../../../accounts/types.js' +import { entryPoint08Address } from '../../../constants/address.js' +import { BaseError } from '../../../errors/base.js' +import type { TypedDataDefinition } from '../../../types/typedData.js' +import type { Prettify } from '../../../types/utils.js' +import { decodeFunctionData } from '../../../utils/abi/decodeFunctionData.js' +import { encodeFunctionData } from '../../../utils/abi/encodeFunctionData.js' +import { entryPoint08Abi } from '../../constants/abis.js' +import { getUserOperationTypedData } from '../../utils/userOperation/getUserOperationTypedData.js' +import { toSmartAccount } from '../toSmartAccount.js' +import type { SmartAccount, SmartAccountImplementation } from '../types.js' + +export type ToSimple7702SmartAccountParameters = { + client: Simple7702SmartAccountImplementation['client'] + implementation?: Address | undefined + getNonce?: SmartAccountImplementation['getNonce'] | undefined + owner: PrivateKeyAccount +} + +export type ToSimple7702SmartAccountReturnType = Prettify< + SmartAccount +> + +export type Simple7702SmartAccountImplementation = SmartAccountImplementation< + typeof entryPoint08Abi, + '0.8', + { abi: typeof abi; owner: PrivateKeyAccount }, + true +> + +/** + * @description Create a Simple7702 Smart Account – based off [eth-infinitism's `Simple7702Account.sol`](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/accounts/Simple7702Account.sol). + * + * @param parameters - {@link ToSimple7702SmartAccountParameters} + * @returns Simple7702 Smart Account. {@link ToSimple7702SmartAccountReturnType} + * + * @example + * import { toSimple7702SmartAccount } from 'viem/account-abstraction' + * import { client } from './client.js' + * + * const implementation = toSimple7702SmartAccount({ + * client, + * owner: '0x...', + * }) + */ +export async function toSimple7702SmartAccount( + parameters: ToSimple7702SmartAccountParameters, +): Promise { + const { + client, + implementation = '0xe6Cae83BdE06E4c305530e199D7217f42808555B', + getNonce, + owner, + } = parameters + + const entryPoint = { + abi: entryPoint08Abi, + address: entryPoint08Address, + version: '0.8', + } as const + + return toSmartAccount({ + authorization: { account: owner, address: implementation }, + abi, + client, + extend: { abi, owner }, // not removing abi from here as this will be a breaking change + entryPoint, + getNonce, + + async decodeCalls(data) { + const result = decodeFunctionData({ + abi, + data, + }) + + if (result.functionName === 'execute') + return [ + { to: result.args[0], value: result.args[1], data: result.args[2] }, + ] + if (result.functionName === 'executeBatch') + return result.args[0].map((arg) => ({ + to: arg.target, + value: arg.value, + data: arg.data, + })) + throw new BaseError(`unable to decode calls for "${result.functionName}"`) + }, + + async encodeCalls(calls) { + if (calls.length === 1) + return encodeFunctionData({ + abi, + functionName: 'execute', + args: [calls[0].to, calls[0].value ?? 0n, calls[0].data ?? '0x'], + }) + return encodeFunctionData({ + abi, + functionName: 'executeBatch', + args: [ + calls.map((call) => ({ + data: call.data ?? '0x', + target: call.to, + value: call.value ?? 0n, + })), + ], + }) + }, + + async getAddress() { + return owner.address + }, + + async getFactoryArgs() { + return { factory: '0x7702', factoryData: '0x' } + }, + + async getStubSignature() { + return '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c' + }, + + async signMessage(parameters) { + const { message } = parameters + return await owner.signMessage({ message }) + }, + + async signTypedData(parameters) { + const { domain, types, primaryType, message } = + parameters as TypedDataDefinition + return await owner.signTypedData({ + domain, + message, + primaryType, + types, + }) + }, + + async signUserOperation(parameters) { + const { chainId = client.chain!.id, ...userOperation } = parameters + + const address = await this.getAddress() + const typedData = getUserOperationTypedData({ + chainId, + entryPointAddress: entryPoint.address, + userOperation: { + ...userOperation, + sender: address, + }, + }) + return await owner.signTypedData(typedData) + }, + }) +} + +///////////////////////////////////////////////////////////////////////////////////////////// +// Constants + +const abi = [ + { inputs: [], name: 'ECDSAInvalidSignature', type: 'error' }, + { + inputs: [{ internalType: 'uint256', name: 'length', type: 'uint256' }], + name: 'ECDSAInvalidSignatureLength', + type: 'error', + }, + { + inputs: [{ internalType: 'bytes32', name: 's', type: 'bytes32' }], + name: 'ECDSAInvalidSignatureS', + type: 'error', + }, + { + inputs: [ + { internalType: 'uint256', name: 'index', type: 'uint256' }, + { internalType: 'bytes', name: 'error', type: 'bytes' }, + ], + name: 'ExecuteError', + type: 'error', + }, + { stateMutability: 'payable', type: 'fallback' }, + { + inputs: [], + name: 'entryPoint', + outputs: [ + { internalType: 'contract IEntryPoint', name: '', type: 'address' }, + ], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: 'target', type: 'address' }, + { internalType: 'uint256', name: 'value', type: 'uint256' }, + { internalType: 'bytes', name: 'data', type: 'bytes' }, + ], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { internalType: 'address', name: 'target', type: 'address' }, + { internalType: 'uint256', name: 'value', type: 'uint256' }, + { internalType: 'bytes', name: 'data', type: 'bytes' }, + ], + internalType: 'struct BaseAccount.Call[]', + name: 'calls', + type: 'tuple[]', + }, + ], + name: 'executeBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'getNonce', + outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { internalType: 'bytes32', name: 'hash', type: 'bytes32' }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + name: 'isValidSignature', + outputs: [{ internalType: 'bytes4', name: 'magicValue', type: 'bytes4' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'uint256[]', name: '', type: 'uint256[]' }, + { internalType: 'uint256[]', name: '', type: 'uint256[]' }, + { internalType: 'bytes', name: '', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'uint256', name: '', type: 'uint256' }, + { internalType: 'uint256', name: '', type: 'uint256' }, + { internalType: 'bytes', name: '', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'uint256', name: '', type: 'uint256' }, + { internalType: 'bytes', name: '', type: 'bytes' }, + ], + name: 'onERC721Received', + outputs: [{ internalType: 'bytes4', name: '', type: 'bytes4' }], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ internalType: 'bytes4', name: 'id', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ internalType: 'bool', name: '', type: 'bool' }], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [ + { + components: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint256', name: 'nonce', type: 'uint256' }, + { internalType: 'bytes', name: 'initCode', type: 'bytes' }, + { internalType: 'bytes', name: 'callData', type: 'bytes' }, + { + internalType: 'bytes32', + name: 'accountGasLimits', + type: 'bytes32', + }, + { + internalType: 'uint256', + name: 'preVerificationGas', + type: 'uint256', + }, + { internalType: 'bytes32', name: 'gasFees', type: 'bytes32' }, + { internalType: 'bytes', name: 'paymasterAndData', type: 'bytes' }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + internalType: 'struct PackedUserOperation', + name: 'userOp', + type: 'tuple', + }, + { internalType: 'bytes32', name: 'userOpHash', type: 'bytes32' }, + { internalType: 'uint256', name: 'missingAccountFunds', type: 'uint256' }, + ], + name: 'validateUserOp', + outputs: [ + { internalType: 'uint256', name: 'validationData', type: 'uint256' }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { stateMutability: 'payable', type: 'receive' }, +] as const diff --git a/src/account-abstraction/accounts/implementations/toSoladySmartAccount.test.ts b/src/account-abstraction/accounts/implementations/toSoladySmartAccount.test.ts index e0edbca4a4..33d49279a5 100644 --- a/src/account-abstraction/accounts/implementations/toSoladySmartAccount.test.ts +++ b/src/account-abstraction/accounts/implementations/toSoladySmartAccount.test.ts @@ -40,7 +40,7 @@ test('default', async () => { { "_internal": null, "abi": null, - "address": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "address": "0x7473Fcb76634352e4CbA37CFad3783B059792b44", "client": null, "decodeCalls": [Function], "encodeCalls": [Function], @@ -941,10 +941,10 @@ test('args: salt', async () => { }) expect(await account_1.getAddress()).toMatchInlineSnapshot( - `"0x6efA2348C36EE137f49a67c66525A1d264FaE926"`, + `"0xc1b7F8B47312df97bdd97A6A4e322335F684A485"`, ) expect(await account_2.getAddress()).toMatchInlineSnapshot( - `"0x44f093A4811cE94D63EC975637E90c1e4132ee69"`, + `"0x820576f0A704fE307eDcd62839C1de2818D860d5"`, ) }) @@ -1840,7 +1840,7 @@ describe('return value: getAddress', () => { const address = await account.getAddress() expect(address).toMatchInlineSnapshot( - `"0x5DE8369D07A58C1d371A091979956d08b40ceA59"`, + `"0x7473Fcb76634352e4CbA37CFad3783B059792b44"`, ) }) }) @@ -1985,7 +1985,7 @@ describe('return value: getFactoryArgs', () => { expect(signature).toMatchInlineSnapshot( ` { - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0xf102f0173707c6726543d65fa38025eb72026c37", "factoryData": "0xf14ddffc00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000000000000000000000", } `, @@ -2164,7 +2164,7 @@ describe('return value: signUserOperation', () => { }) expect(signature).toMatchInlineSnapshot( - `"0xfc5ace60316d66dac8a877b22047be1714d4305e839b5e91e341ee65b24415fb60398e2afe0bf02bb1fe765349a77ce052fc2c495551e68aa9a05171841d4f631b"`, + `"0x3cbd8967bdd01a3786caa915ed1fe27ed67dd339db3a3c8329e886d4f7feafb26c2bbdc474175f773db1b695347d409befe2ee0ae3e9d3a2454d469325e42c201c"`, ) }) }) diff --git a/src/account-abstraction/accounts/implementations/toSoladySmartAccount.ts b/src/account-abstraction/accounts/implementations/toSoladySmartAccount.ts index 8a54851789..aa32f7eb4b 100644 --- a/src/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +++ b/src/account-abstraction/accounts/implementations/toSoladySmartAccount.ts @@ -3,7 +3,6 @@ import type { Abi, Address, TypedData } from 'abitype' import { parseAccount } from '../../../accounts/utils/parseAccount.js' import { readContract } from '../../../actions/public/readContract.js' import { signMessage as signMessage_ } from '../../../actions/wallet/signMessage.js' -import type { Client } from '../../../clients/createClient.js' import { entryPoint07Address } from '../../../constants/address.js' import { BaseError } from '../../../errors/base.js' import { signMessage } from '../../../experimental/erc7739/actions/signMessage.js' @@ -27,7 +26,7 @@ export type ToSoladySmartAccountParameters< entryPointVersion extends EntryPointVersion = EntryPointVersion, > = { address?: Address | undefined - client: Client + client: SoladySmartAccountImplementation['client'] entryPoint?: | { abi: entryPointAbi diff --git a/src/account-abstraction/accounts/toSmartAccount.test.ts b/src/account-abstraction/accounts/toSmartAccount.test.ts index f314fec784..9b40fadff9 100644 --- a/src/account-abstraction/accounts/toSmartAccount.test.ts +++ b/src/account-abstraction/accounts/toSmartAccount.test.ts @@ -29,7 +29,7 @@ test('default', async () => { { "_internal": null, "abi": null, - "address": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "address": "0x7473Fcb76634352e4CbA37CFad3783B059792b44", "client": null, "decodeCalls": [Function], "encodeCalls": [Function], @@ -982,7 +982,7 @@ test('return value: `getFactoryArgs`', async () => { expect(await account.getFactoryArgs()).toMatchInlineSnapshot(` { - "factory": "0x88777418972fb3f58489303d763d4daf398a6527", + "factory": "0xfc3983de3f7cbe1ba01084469779470ad0bbeffa", "factoryData": "0xf14ddffc00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000000000000000000000", } `) diff --git a/src/account-abstraction/accounts/toSmartAccount.ts b/src/account-abstraction/accounts/toSmartAccount.ts index e3ca0c2a0f..a4537229dd 100644 --- a/src/account-abstraction/accounts/toSmartAccount.ts +++ b/src/account-abstraction/accounts/toSmartAccount.ts @@ -115,7 +115,7 @@ export async function toSmartAccount< this.getFactoryArgs(), implementation.signMessage(parameters), ]) - if (factory && factoryData) + if (factory && factoryData && factory !== '0x7702') return serializeErc6492Signature({ address: factory, data: factoryData, @@ -128,7 +128,7 @@ export async function toSmartAccount< this.getFactoryArgs(), implementation.signTypedData(parameters), ]) - if (factory && factoryData) + if (factory && factoryData && factory !== '0x7702') return serializeErc6492Signature({ address: factory, data: factoryData, diff --git a/src/account-abstraction/accounts/types.ts b/src/account-abstraction/accounts/types.ts index 7005de9fdc..7d4348782a 100644 --- a/src/account-abstraction/accounts/types.ts +++ b/src/account-abstraction/accounts/types.ts @@ -1,7 +1,14 @@ import type { Abi, Address, TypedData } from 'abitype' import type * as WebAuthnP256 from 'ox/WebAuthnP256' +import type { + JsonRpcAccount, + LocalAccount, + PrivateKeyAccount, +} from '../../accounts/types.js' import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import type { Chain } from '../../types/chain.js' import type { Hash, Hex, SignableMessage } from '../../types/misc.js' import type { TypedDataDefinition } from '../../types/typedData.js' import type { Assign, ExactPartial, UnionPartialBy } from '../../types/utils.js' @@ -23,9 +30,14 @@ export type SmartAccountImplementation< entryPointAbi extends Abi | readonly unknown[] = Abi, entryPointVersion extends EntryPointVersion = EntryPointVersion, extend extends object = object, + eip7702 extends boolean = boolean, > = { /** Client used to retrieve Smart Account data, and perform signing (if owner is a JSON-RPC Account). */ - client: Client + client: Client< + Transport, + Chain | undefined, + JsonRpcAccount | LocalAccount | undefined + > /** Compatible EntryPoint of the Smart Account. */ entryPoint: { /** Compatible EntryPoint ABI. */ @@ -189,7 +201,19 @@ export type SmartAccountImplementation< | undefined } | undefined -} +} & (eip7702 extends true + ? { + /** EIP-7702 authorization properties, if applicable. */ + authorization: { + /** EOA to delegate to. */ + account: PrivateKeyAccount + /** Delegation address. */ + address: Address + } + } + : { + authorization?: undefined + }) export type SmartAccount< implementation extends diff --git a/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts b/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts index 5fd3bca6eb..b02cbb1ec6 100644 --- a/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts +++ b/src/account-abstraction/actions/bundler/estimateUserOperationGas.test.ts @@ -5,7 +5,9 @@ import { createVerifyingPaymasterServer, getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, getVerifyingPaymaster_07, + getVerifyingPaymaster_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' @@ -35,8 +37,8 @@ beforeEach(async () => { return () => vi.useRealTimers() }) -describe('entryPointVersion: 0.7', async () => { - const [account, account_2, account_3] = await getSmartAccounts_07() +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() test('default', async () => { const gas = await estimateUserOperationGas(bundlerClient, { @@ -56,11 +58,11 @@ describe('entryPointVersion: 0.7', async () => { }) expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53000n) - expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(220000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(95000n) }) test('args: paymaster (client)', async () => { - const paymaster = await getVerifyingPaymaster_07() + const paymaster = await getVerifyingPaymaster_08() const server = await createVerifyingPaymasterServer(client, { paymaster }) const paymasterClient = createPaymasterClient({ @@ -86,13 +88,13 @@ describe('entryPointVersion: 0.7', async () => { expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53000n) - expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(190000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(50000n) expect(gas.paymasterVerificationGasLimit).toBeGreaterThanOrEqual(20000n) expect(gas.paymasterPostOpGasLimit).toBeGreaterThanOrEqual(0n) }) test('behavior: client.paymaster (client)', async () => { - const paymaster = await getVerifyingPaymaster_07() + const paymaster = await getVerifyingPaymaster_08() const server = await createVerifyingPaymasterServer(client, { paymaster }) const paymasterClient = createPaymasterClient({ @@ -121,23 +123,613 @@ describe('entryPointVersion: 0.7', async () => { expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) expect(gas.preVerificationGas).toBeGreaterThanOrEqual(59000n) - expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(190000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(50000n) expect(gas.paymasterVerificationGasLimit).toBeGreaterThanOrEqual(20000n) expect(gas.paymasterPostOpGasLimit).toBeGreaterThanOrEqual(0n) }) test('behavior: prepared user operation', async () => { + const userOp = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + ...fees, + }) + const request = { - ...(await prepareUserOperation(bundlerClient, { + ...userOp, + account: undefined, + } as const + + expectTypeOf(request).toMatchTypeOf() + + const gas = await estimateUserOperationGas(bundlerClient, { + ...request, + entryPointAddress: account.entryPoint?.address, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(51000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(95000n) + expect(gas.paymasterVerificationGasLimit).toBeGreaterThanOrEqual(0n) + expect(gas.paymasterPostOpGasLimit).toBeGreaterThanOrEqual(0n) + }) + + test('error: insufficient funds', async () => { + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1000000'), + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: Execution reverted with reason: UserOperation reverted during simulation with reason: 0x. + + Request Arguments: + callData: 0xb61d27f6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761095135455113551806464 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Details: UserOperation reverted during simulation with reason: 0x + Version: viem@x.y.z] + `) + }) + + test('error: contract revert', async () => { + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + args: [420n], + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "mint" reverted with the following reason: + Token ID is taken + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: mint(uint256 tokenId) + args: (420) + + Request Arguments: + callData: 0xb61d27f6000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024a0712d6800000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761113582199187261358080 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Version: viem@x.y.z] + `) + }) + + test('error: contract revert', async () => { + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'approve', + args: ['0x0000000000000000000000000000000000000000', 420n], + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "approve" reverted with the following reason: + ERC721: approve caller is not owner nor approved for all + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: approve(address to, uint256 tokenId) + args: (0x0000000000000000000000000000000000000000, 420) + + Request Arguments: + callData: 0xb61d27f6000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761132028943260970909696 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Version: viem@x.y.z] + `) + }) + + test('error: contract revert (multiple calls)', async () => { + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'approve', + args: ['0x0000000000000000000000000000000000000000', 420n], + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "mint | approve" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761150475687334680461312 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: function does not exist', async () => { + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + // 7702 implementation has a fallback so sending it to uniswap factory instead + to: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', + abi: wagmiContractConfig.abi, + functionName: 'mint', + args: [420n], + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "mint" returned no data ("0x"). + + This could be due to any of the following: + - The contract does not have the function "mint", + - The parameters passed to the contract function may be invalid, or + - The address is not a contract. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: mint(uint256 tokenId) + args: (420) + + Request Arguments: + callData: 0xb61d27f60000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024a0712d6800000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761168922431408390012928 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Version: viem@x.y.z] + `) + }) + + test('error: generic revert', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { account, calls: [ { to: '0x0000000000000000000000000000000000000000', value: parseEther('1'), }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'revertWrite', + }, ], ...fees, - })), + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "revertWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: revertWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63db9682ff11707cadbd72bf1a0354a7fef143b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004940b880200000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761187369175482099564544 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: assert', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'assertWrite', + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "assertWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: assertWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fc3983de3f7cbe1ba01084469779470ad0bbeffa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040469615200000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761205815919555809116160 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: overflow', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'overflowWrite', + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "overflowWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: overflowWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8b1d4d0a2dd9dd53200a4c6783a69c15e3a25f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004d44de86600000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761224262663629518667776 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: divide by zero', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'divideByZeroWrite', + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "divideByZeroWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: divideByZeroWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d6b8eb34413f07a1a67a469345cfea6633efd58d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004c66cf13300000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761242709407703228219392 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: custom error', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'simpleCustomWrite', + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "simpleCustomWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: simpleCustomWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009cc87998ba85d81e017e6b7662ac00ee2ab8fe13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004a997732e00000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761261156151776937771008 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) + + test('error: custom error', async () => { + const { contractAddress } = await deployErrorExample() + + await expect(async () => + estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + abi: ErrorsExample.abi, + to: contractAddress!, + functionName: 'complexCustomWrite', + }, + ], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: The contract function "complexCustomWrite" reverted with the following signature: + 0x5a154675 + + Unable to decode signature "0x5a154675" as it was not found on the provided ABI. + Make sure you are using the correct ABI and that the error exists on it. + You can look up the decoded signature here: https://openchain.xyz/signatures?query=0x5a154675. + + Contract Call: + address: 0x0000000000000000000000000000000000000000 + function: complexCustomWrite() + + Request Arguments: + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1fc11f03b084fff8dae95fa08e8d69ad2547ec10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048de18b9100000000000000000000000000000000000000000000000000000000 + factory: 0x7702 + factoryData: 0x + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761279602895850647322624 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + + Docs: https://viem.sh/docs/contract/decodeErrorResult + Version: viem@x.y.z] + `) + }) +}) + +describe('entryPointVersion: 0.7', async () => { + const [account, account_2, account_3] = await getSmartAccounts_07() + + test('default', async () => { + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(220000n) + }) + + test('args: paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_07() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: paymasterClient, + ...fees, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(53000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(190000n) + expect(gas.paymasterVerificationGasLimit).toBeGreaterThanOrEqual(20000n) + expect(gas.paymasterPostOpGasLimit).toBeGreaterThanOrEqual(0n) + }) + + test('behavior: client.paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_07() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + paymaster: paymasterClient, + }) + + const gas = await estimateUserOperationGas(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(gas.callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(gas.preVerificationGas).toBeGreaterThanOrEqual(59000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(190000n) + expect(gas.paymasterVerificationGasLimit).toBeGreaterThanOrEqual(20000n) + expect(gas.paymasterPostOpGasLimit).toBeGreaterThanOrEqual(0n) + }) + + test('behavior: prepared user operation', async () => { + const userOp = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + ...fees, + }) + + const request = { + ...userOp, account: undefined, } as const @@ -172,12 +764,12 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0xb61d27f6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761095135455113551806464 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Details: UserOperation reverted during simulation with reason: 0x @@ -210,12 +802,12 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0xb61d27f6000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024a0712d6800000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761113582199187261358080 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -247,12 +839,12 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0xb61d27f6000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761132028943260970909696 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -285,12 +877,12 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761150475687334680461312 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -325,13 +917,13 @@ describe('entryPointVersion: 0.7', async () => { args: (420) Request Arguments: - callData: 0xb61d27f60000000000000000000000005de8369d07a58c1d371a091979956d08b40cea59000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024a0712d6800000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0xb61d27f6000000000000000000000000f2f83eb89c48abd7ad93ba42c3ce904895337cea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024a0712d6800000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761168922431408390012928 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -366,13 +958,13 @@ describe('entryPointVersion: 0.7', async () => { function: revertWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da796117bf6905dd8db2ff1ab4397f6d2c4adda3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004940b880200000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4c5c29b14f0237131f7510a51684c8191f98e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004940b880200000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761187369175482099564544 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -407,13 +999,13 @@ describe('entryPointVersion: 0.7', async () => { function: assertWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000222d74f33b0d07687a769a44399e2272a4cb9ffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040469615200000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000934a389cabfb84cdb3f0260b2a4fd575b8b345a30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040469615200000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761205815919555809116160 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -448,13 +1040,13 @@ describe('entryPointVersion: 0.7', async () => { function: overflowWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088777418972fb3f58489303d763d4daf398a6527000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004d44de86600000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c91b651f770ed996a223a16da9ccd6f7df56c987000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004d44de86600000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761224262663629518667776 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -489,13 +1081,13 @@ describe('entryPointVersion: 0.7', async () => { function: divideByZeroWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004728af32823cf144586dab95632156cc81bb0203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004c66cf13300000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b90acf57c3bfe8e0e8215defc282b5f48b3edc74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004c66cf13300000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761242709407703228219392 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -532,13 +1124,13 @@ describe('entryPointVersion: 0.7', async () => { function: simpleCustomWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037d0ed258f37a966f33b75b5ae7486917a0ae614000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004a997732e00000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000787c6666213624d788522d516847978d7f348902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000004a997732e00000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761261156151776937771008 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -575,13 +1167,13 @@ describe('entryPointVersion: 0.7', async () => { function: complexCustomWrite() Request Arguments: - callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000294c69bd8415219b41b68a2f065deabb950dd4890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048de18b9100000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + callData: 0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088d3caad49fc2e8e38c812c5f4acdd0a8b065f660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048de18b9100000000000000000000000000000000000000000000000000000000 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761279602895850647322624 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Version: viem@x.y.z] @@ -619,12 +1211,12 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761021348478818713600000 - sender: 0x6efA2348C36EE137f49a67c66525A1d264FaE926 + sender: 0xC6B426A3272a812dD1B3EDB601447bbAA8C1294C signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Details: UserOperation reverted during simulation with reason: AA10 sender already constructed @@ -659,7 +1251,7 @@ describe('entryPointVersion: 0.7', async () => { maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761298049639924356874240 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Details: UserOperation reverted during simulation with reason: AA13 initCode failed or OOG @@ -695,18 +1287,18 @@ describe('entryPointVersion: 0.7', async () => { This could arise when: Smart Account initialization implementation does not return a sender address - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000002 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea Request Arguments: callData: 0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000002 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761316496383998066425856 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Details: UserOperation reverted during simulation with reason: AA14 initCode must return sender @@ -731,7 +1323,7 @@ describe('entryPointVersion: 0.6', async () => { }) expect(gas.callGasLimit).toBeGreaterThanOrEqual(80000n) expect(gas.preVerificationGas).toBeGreaterThanOrEqual(55000n) - expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(258000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(256000n) }) test('behavior: prepared user operation', async () => { @@ -757,7 +1349,7 @@ describe('entryPointVersion: 0.6', async () => { }) expect(gas.callGasLimit).toBeGreaterThanOrEqual(80000n) expect(gas.preVerificationGas).toBeGreaterThanOrEqual(55000n) - expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(258000n) + expect(gas.verificationGasLimit).toBeGreaterThanOrEqual(256000n) }) test('error: aa13', async () => { @@ -785,7 +1377,7 @@ describe('entryPointVersion: 0.6', async () => { maxPriorityFeePerGas: 2 gwei nonce: 30902162761058241966966132703232 paymasterAndData: 0x - sender: 0x5d146EE4f31D852361f18B9CFCc510f773d6BC78 + sender: 0xc312a51324F449CF2389749B84Df3617373F2397 signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c Details: UserOperation reverted during simulation with reason: AA13 initCode failed or OOG diff --git a/src/account-abstraction/actions/bundler/estimateUserOperationGas.ts b/src/account-abstraction/actions/bundler/estimateUserOperationGas.ts index b6eb4d5970..5649a10485 100644 --- a/src/account-abstraction/actions/bundler/estimateUserOperationGas.ts +++ b/src/account-abstraction/actions/bundler/estimateUserOperationGas.ts @@ -174,7 +174,13 @@ export async function estimateUserOperationGas< 'prepareUserOperation', )({ ...parameters, - parameters: ['factory', 'nonce', 'paymaster', 'signature'], + parameters: [ + 'authorization', + 'factory', + 'nonce', + 'paymaster', + 'signature', + ], } as unknown as PrepareUserOperationParameters) : parameters @@ -183,6 +189,7 @@ export async function estimateUserOperationGas< formatUserOperationRequest(request as UserOperation), (entryPointAddress ?? account?.entryPoint?.address)!, ] as const + const result = await client.request({ method: 'eth_estimateUserOperationGas', params: rpcStateOverride ? [...params, rpcStateOverride] : [...params], diff --git a/src/account-abstraction/actions/bundler/getSupportedEntryPoints.test.ts b/src/account-abstraction/actions/bundler/getSupportedEntryPoints.test.ts index 34bda9af7a..419dec6f8e 100644 --- a/src/account-abstraction/actions/bundler/getSupportedEntryPoints.test.ts +++ b/src/account-abstraction/actions/bundler/getSupportedEntryPoints.test.ts @@ -2,13 +2,14 @@ import { expect, test } from 'vitest' import { bundlerMainnet } from '../../../../test/src/bundler.js' import { getSupportedEntryPoints } from './getSupportedEntryPoints.js' -const client = bundlerMainnet.getBundlerClient() +const bundlerClient = bundlerMainnet.getBundlerClient() test('default', async () => { - expect(await getSupportedEntryPoints(client)).toMatchInlineSnapshot(` + expect(await getSupportedEntryPoints(bundlerClient)).toMatchInlineSnapshot(` [ "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", "0x0000000071727De22E5E9d8BAf0edAc6f37da032", + "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108", ] `) }) diff --git a/src/account-abstraction/actions/bundler/getUserOperation.test.ts b/src/account-abstraction/actions/bundler/getUserOperation.test.ts index f0d1a8788a..57d37f6556 100644 --- a/src/account-abstraction/actions/bundler/getUserOperation.test.ts +++ b/src/account-abstraction/actions/bundler/getUserOperation.test.ts @@ -2,9 +2,11 @@ import { beforeEach, describe, expect, test } from 'vitest' import { getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' +import { signAuthorization } from '../../../actions/index.js' import { mine } from '../../../actions/test/mine.js' import { parseEther, parseGwei } from '../../../utils/index.js' import { getUserOperation } from './getUserOperation.js' @@ -21,6 +23,61 @@ const fees = { beforeEach(async () => { await bundlerMainnet.restart() }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + + test('default', async () => { + const authorization = await signAuthorization( + account.client, + account.authorization, + ) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + + const result = await getUserOperation(bundlerClient, { + hash, + }) + + expect(result).toBeDefined() + }) + + test('error: user operation not found', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await expect(() => + getUserOperation(bundlerClient, { + hash, + }), + ).rejects.toThrow('User Operation with hash') + }) +}) describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() diff --git a/src/account-abstraction/actions/bundler/getUserOperationReceipt.test.ts b/src/account-abstraction/actions/bundler/getUserOperationReceipt.test.ts index 1858b6cb73..5c261d8c50 100644 --- a/src/account-abstraction/actions/bundler/getUserOperationReceipt.test.ts +++ b/src/account-abstraction/actions/bundler/getUserOperationReceipt.test.ts @@ -2,10 +2,11 @@ import { beforeEach, describe, expect, test } from 'vitest' import { getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' -import { mine } from '../../../actions/index.js' +import { mine, signAuthorization } from '../../../actions/index.js' import { parseEther, parseGwei } from '../../../utils/index.js' import { getUserOperationReceipt } from './getUserOperationReceipt.js' import { sendUserOperation } from './sendUserOperation.js' @@ -22,6 +23,64 @@ beforeEach(async () => { await bundlerMainnet.restart() }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + + test('default', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + + const receipt = await getUserOperationReceipt(bundlerClient, { + hash, + }) + + expect(receipt.success).toBeTruthy() + }) + + test('error: receipt not found', async () => { + const authorization = await signAuthorization( + account.client, + account.authorization, + ) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await expect(() => + getUserOperationReceipt(bundlerClient, { + hash, + }), + ).rejects.toThrowError( + 'The User Operation may not have been processed yet.', + ) + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() diff --git a/src/account-abstraction/actions/bundler/prepareUserOperation.test-d.ts b/src/account-abstraction/actions/bundler/prepareUserOperation.test-d.ts index 61c19640ec..df2b385ddf 100644 --- a/src/account-abstraction/actions/bundler/prepareUserOperation.test-d.ts +++ b/src/account-abstraction/actions/bundler/prepareUserOperation.test-d.ts @@ -2,6 +2,7 @@ import { describe, expectTypeOf, test } from 'vitest' import { getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, } from '../../../../test/src/account-abstraction.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' import type { Hex } from '../../../types/misc.js' @@ -10,6 +11,177 @@ import { prepareUserOperation } from './prepareUserOperation.js' const bundlerClient = bundlerMainnet.getBundlerClient() +describe('entryPointVersion: 0.8', async () => { + const [, , account] = await getSmartAccounts_08() + + test('default', async () => { + const result = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x' }], + }) + + expectTypeOf(result.account).toMatchTypeOf(account) + expectTypeOf(result.callData).toMatchTypeOf() + expectTypeOf(result.callGasLimit).toMatchTypeOf() + expectTypeOf(result.factory).toMatchTypeOf() + expectTypeOf(result.factoryData).toMatchTypeOf() + expectTypeOf(result.nonce).toMatchTypeOf() + expectTypeOf(result.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result.sender).toMatchTypeOf() + }) + + test('cast (widened)', async () => { + const result = await prepareUserOperation(bundlerClient, { + account, + ...({} as UserOperation), + }) + + expectTypeOf(result.initCode).toMatchTypeOf() + expectTypeOf(result.factory).toMatchTypeOf() + expectTypeOf(result.factoryData).toMatchTypeOf() + expectTypeOf(result.paymasterAndData).toMatchTypeOf() + + expectTypeOf(result.account).toMatchTypeOf(account) + expectTypeOf(result.callData).toMatchTypeOf() + expectTypeOf(result.callGasLimit).toMatchTypeOf() + expectTypeOf(result.nonce).toMatchTypeOf() + expectTypeOf(result.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result.sender).toMatchTypeOf() + }) + + test('cast (narrowed)', async () => { + const result = await prepareUserOperation(bundlerClient, { + account, + ...({} as UserOperation<'0.8'>), + }) + + // @ts-expect-error + result.initCode + + expectTypeOf(result.factory).toMatchTypeOf() + expectTypeOf(result.factoryData).toMatchTypeOf() + + expectTypeOf(result.account).toMatchTypeOf(account) + expectTypeOf(result.callData).toMatchTypeOf() + expectTypeOf(result.callGasLimit).toMatchTypeOf() + expectTypeOf(result.nonce).toMatchTypeOf() + expectTypeOf(result.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result.sender).toMatchTypeOf() + }) + + test('args: parameters', async () => { + const result = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x' }], + parameters: ['gas'], + }) + + // @ts-expect-error + result.factory + // @ts-expect-error + result.factoryData + // @ts-expect-error + result.nonce + // @ts-expect-error + result.signature + + expectTypeOf(result.callGasLimit).toMatchTypeOf() + expectTypeOf(result.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result.preVerificationGas).toMatchTypeOf() + expectTypeOf(result.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + + const result_2 = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x' }], + parameters: ['gas', 'nonce'], + }) + + // @ts-expect-error + result_2.factory + // @ts-expect-error + result_2.factoryData + // @ts-expect-error + result_2.signature + + expectTypeOf(result_2.nonce).toMatchTypeOf() + expectTypeOf(result_2.callGasLimit).toMatchTypeOf() + expectTypeOf(result_2.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result_2.preVerificationGas).toMatchTypeOf() + expectTypeOf(result_2.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result_2.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + + const result_3 = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x' }], + parameters: ['gas', 'nonce', 'signature'], + }) + + // @ts-expect-error + result_3.factory + // @ts-expect-error + result_3.factoryData + + expectTypeOf(result_3.nonce).toMatchTypeOf() + expectTypeOf(result_3.callGasLimit).toMatchTypeOf() + expectTypeOf(result_3.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result_3.preVerificationGas).toMatchTypeOf() + expectTypeOf(result_3.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result_3.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result_3.signature).toMatchTypeOf() + + const result_4 = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x' }], + parameters: ['factory', 'gas', 'nonce', 'signature'], + }) + + expectTypeOf(result_4.factory).toMatchTypeOf() + expectTypeOf(result_4.factoryData).toMatchTypeOf() + expectTypeOf(result_4.nonce).toMatchTypeOf() + expectTypeOf(result_4.callGasLimit).toMatchTypeOf() + expectTypeOf(result_4.verificationGasLimit).toMatchTypeOf() + expectTypeOf(result_4.preVerificationGas).toMatchTypeOf() + expectTypeOf(result_4.paymasterPostOpGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result_4.paymasterVerificationGasLimit).toMatchTypeOf< + bigint | undefined + >() + expectTypeOf(result_4.signature).toMatchTypeOf() + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() diff --git a/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts b/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts index 76b50d0847..cc35a08b6e 100644 --- a/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts +++ b/src/account-abstraction/actions/bundler/prepareUserOperation.test.ts @@ -4,7 +4,9 @@ import { createVerifyingPaymasterServer, getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, getVerifyingPaymaster_07, + getVerifyingPaymaster_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' @@ -34,6 +36,1273 @@ beforeEach(async () => { return () => vi.useRealTimers() }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + + test('default', async () => { + const { + account: account_, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761021348478818713600000n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 93882n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: callData', async () => { + const { + account: account_, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + callData: + '0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000', + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761039795222892423151616n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: parameters (no factory)', async () => { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + parameters: ['authorization', 'gas', 'nonce'], + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761058241966966132703232n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + } + `) + }) + + test('args: parameters (no nonce)', async () => { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + parameters: ['authorization', 'gas', 'factory'], + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + } + `) + }) + + test('args: nonce', async () => { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + nonce: 0n, + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 0n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: fees', async () => { + { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxFeePerGas: 2n, + maxPriorityFeePerGas: 1n, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 1n, + "nonce": 30902162761095135455113551806464n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } + + { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxFeePerGas: 2n, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761113582199187261358080n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } + + { + const { + account: _, + callGasLimit, + maxFeePerGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + maxPriorityFeePerGas: 2n, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(16000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 958, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2n, + "nonce": 30902162761132028943260970909696n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "preVerificationGas": 92087n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + } + }) + + test('args: paymaster (address)', async () => { + await expect(async () => + prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: '0x0000000000000000000000000000000000000000', + + ...fees, + }), + ).rejects.toThrowError() + }) + + test('args: paymaster (true)', async () => { + await expect(async () => + prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: true, + + ...fees, + }), + ).rejects.toThrowError() + }) + + test('args: paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: paymasterClient, + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(paymasterData?.length).toBe(260) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 959, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0x831c6c334f8ddee62246a5c81b82c8e18008b38f", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "preVerificationGas": 100271n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: paymaster (client w/ no chain)', async () => { + const client = anvilMainnet.getClient({ account: true, chain: false }) + + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + chain: false, + }) + + const request = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: paymasterClient, + ...fees, + }) + + expect(request).toBeDefined() + }) + + test('args: paymaster.getPaymasterData', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: { + async getPaymasterData(parameters) { + return getPaymasterData(paymasterClient, parameters) + }, + }, + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(paymasterData?.length).toBe(260) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 961, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0xc63db9682ff11707cadbd72bf1a0354a7fef143b", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "preVerificationGas": 100271n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: paymaster.getPaymasterStubData + paymaster.getPaymasterData', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: { + async getPaymasterStubData(parameters) { + return getPaymasterStubData(paymasterClient, parameters) + }, + async getPaymasterData(parameters) { + return getPaymasterData(paymasterClient, parameters) + }, + }, + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(paymasterData?.length).toBe(260) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 962, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0xfc3983de3f7cbe1ba01084469779470ad0bbeffa", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: paymasterContext', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: paymasterClient, + paymasterContext: { validUntil: 3735928600 }, + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(paymasterData?.length).toBe(260) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 963, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0xf8b1d4d0a2dd9dd53200a4c6783a69c15e3a25f4", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('args: signature', async () => { + const { + callGasLimit, + maxFeePerGas, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + signature: + '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c', + ...fees, + }) + + expect(account).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(maxFeePerGas).toBeGreaterThanOrEqual(0n) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect({ ...request, account: undefined }).toMatchInlineSnapshot(` + { + "account": undefined, + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 963, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761279602895850647322624n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: account.userOperation.estimateGas', async () => { + const { + account: _, + callGasLimit, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account: { + ...account, + userOperation: { + async estimateGas() { + return { verificationGasLimit: 1_000_000n } + }, + }, + }, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 963, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761298049639924356874240n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: account.userOperation.estimateGas (all filled)', async () => { + const { + account: _, + callGasLimit, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account: { + ...account, + userOperation: { + async estimateGas() { + return { + callGasLimit: 1_000_000n, + preVerificationGas: 1_000_000n, + verificationGasLimit: 1_000_000n, + } + }, + }, + }, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(1000000n) + expect(preVerificationGas).toBeGreaterThanOrEqual(1000000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(1000000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 963, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "nonce": 30902162761316496383998066425856n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: account.userOperation.estimateGas (all filled – paymaster)', async () => { + await prepareUserOperation(bundlerClient, { + account: { + ...account, + userOperation: { + async estimateGas() { + return { + callGasLimit: 1_000_000n, + preVerificationGas: 1_000_000n, + verificationGasLimit: 1_000_000n, + paymasterPostOpGasLimit: 1_000_000n, + paymasterVerificationGasLimit: 1_000_000n, + } + }, + }, + }, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + paymaster: '0x0000000000000000000000000000000000000000', + ...fees, + }) + }) + + test('behavior: client.userOperation.estimateFeesPerGas', async () => { + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + userOperation: { + async estimateFeesPerGas() { + return { maxFeePerGas: 3_000_000n, maxPriorityFeePerGas: 1_000_000n } + }, + }, + }) + + const { + account: _, + callGasLimit, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + }) + + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(90000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 963, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 3000000n, + "maxPriorityFeePerGas": 1000000n, + "nonce": 30902162761353389872145485529088n, + "paymasterPostOpGasLimit": 0n, + "paymasterVerificationGasLimit": 0n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: bundlerClient.paymaster', async () => { + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: true, + }) + + await expect(async () => + prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + + ...fees, + }), + ).rejects.toThrowError() + }) + + test('behavior: bundlerClient.paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: paymasterClient, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(paymasterData?.length).toBe(260) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 964, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0xd6b8eb34413f07a1a67a469345cfea6633efd58d", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: client.paymaster.getPaymasterData', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: { + async getPaymasterData(parameters) { + return getPaymasterData(paymasterClient, parameters) + }, + }, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(paymasterData?.length).toBe(260) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 965, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0x9cc87998ba85d81e017e6b7662ac00ee2ab8fe13", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: client.paymaster.getPaymasterStubData + client.paymaster.getPaymasterData', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: { + async getPaymasterStubData(parameters) { + return getPaymasterStubData(paymasterClient, parameters) + }, + async getPaymasterData(parameters) { + return getPaymasterData(paymasterClient, parameters) + }, + }, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(paymasterData?.length).toBe(260) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 966, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0xb1fc11f03b084fff8dae95fa08e8d69ad2547ec1", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('behavior: bundlerClient.paymasterContext', async () => { + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: paymasterClient, + paymasterContext: { validUntil: 3735928600 }, + }) + + const { + account: _, + callGasLimit, + nonce, + paymasterData, + preVerificationGas, + verificationGasLimit, + ...request + } = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + { + to: wagmiContractConfig.address, + abi: wagmiContractConfig.abi, + functionName: 'mint', + }, + ], + ...fees, + }) + + expect(nonce).toBeDefined() + expect(callGasLimit).toBeGreaterThanOrEqual(70000n) + expect(paymasterData?.length).toBe(260) + expect(preVerificationGas).toBeGreaterThanOrEqual(50000n) + expect(verificationGasLimit).toBeGreaterThanOrEqual(50000n) + expect(request).toMatchInlineSnapshot(` + { + "authorization": { + "address": "0x081f08945fd17c5470f7bcee23fb57ab1099428e", + "chainId": 1, + "nonce": 967, + "r": "0xfffffffffffffffffffffffffffffff000000000000000000000000000000000", + "s": "0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "yParity": 1, + }, + "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", + "factory": "0x7702", + "factoryData": "0x", + "maxFeePerGas": 15000000000n, + "maxPriorityFeePerGas": 2000000000n, + "paymaster": "0x453439300b6c5c645737324b990f2d51137027bc", + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sender": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", + } + `) + }) + + test('error: no account', async () => { + await expect(() => + // @ts-expect-error + prepareUserOperation(bundlerClient, { + calls: [{ to: '0x0000000000000000000000000000000000000000' }], + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [AccountNotFoundError: Could not find an Account to execute with this Action. + Please provide an Account with the \`account\` argument on the Action, or by supplying an \`account\` to the Client. + + Version: viem@x.y.z] + `) + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() @@ -69,13 +1338,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 53477n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -103,13 +1372,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -140,7 +1409,7 @@ describe('entryPointVersion: 0.7', async () => { "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", } `) }) @@ -165,13 +1434,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", } `) }) @@ -197,13 +1466,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -232,13 +1501,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 1n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -265,13 +1534,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -298,13 +1567,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, "preVerificationGas": 51682n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -396,15 +1665,15 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x2c56932223cde0d363266f1308c48ff1bf9f9041", + "paymaster": "0x7306a649b451ae08781108445425bd4e8acf1e00", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, "preVerificationGas": 59866n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -492,15 +1761,15 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0xda796117bf6905dd8db2ff1ab4397f6d2c4adda3", + "paymaster": "0x934a389cabfb84cdb3f0260b2a4fd575b8b345a3", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, "preVerificationGas": 59866n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -558,14 +1827,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x222d74f33b0d07687a769a44399e2272a4cb9ffe", + "paymaster": "0xc91b651f770ed996a223a16da9ccd6f7df56c987", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -617,14 +1886,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x88777418972fb3f58489303d763d4daf398a6527", + "paymaster": "0xb90acf57c3bfe8e0e8215defc282b5f48b3edc74", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -665,12 +1934,12 @@ describe('entryPointVersion: 0.7', async () => { { "account": undefined, "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xdeadbeef", } `) @@ -714,13 +1983,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -768,11 +2037,11 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -849,13 +2118,13 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 3000000n, "maxPriorityFeePerGas": 1000000n, "paymasterPostOpGasLimit": 0n, "paymasterVerificationGasLimit": 0n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -931,14 +2200,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x4728af32823cf144586dab95632156cc81bb0203", + "paymaster": "0x787c6666213624d788522d516847978d7f348902", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -993,14 +2262,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x37d0ed258f37a966f33b75b5ae7486917a0ae614", + "paymaster": "0x88d3caad49fc2e8e38c812c5f4acdd0a8b065f66", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -1058,14 +2327,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x294c69bd8415219b41b68a2f065deabb950dd489", + "paymaster": "0x10d16e2a026c4b5264a2aac51ca65749cdf2037e", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -1117,14 +2386,14 @@ describe('entryPointVersion: 0.7', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0x34fcd5be00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fba3912ca04dd458c843e2ee08967fc04f3579c20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041249c58b00000000000000000000000000000000000000000000000000000000", - "factory": "0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73", + "factory": "0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688", "factoryData": "0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxFeePerGas": 15000000000n, "maxPriorityFeePerGas": 2000000000n, - "paymaster": "0x48288d0e3079a03f6ec1846554cfc58c2696aaee", + "paymaster": "0xaf7868a9bb72e16b930d50636519038d7f057470", "paymasterPostOpGasLimit": 1000000n, "paymasterVerificationGasLimit": 1000000n, - "sender": "0x5DE8369D07A58C1d371A091979956d08b40ceA59", + "sender": "0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -1171,12 +2440,12 @@ describe('entryPointVersion: 0.6', async () => { expect(request).toMatchInlineSnapshot(` { "callData": "0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "initCode": "0xc565eb7363769f8ffae0005285ccd854c631a0a0f14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", + "initCode": "0x98f74b7c96497070ba5052e02832ef9892962e62f14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000000", "maxPriorityFeePerGas": 2000000000n, "paymasterAndData": "0x", "paymasterPostOpGasLimit": undefined, "paymasterVerificationGasLimit": undefined, - "sender": "0x5d146EE4f31D852361f18B9CFCc510f773d6BC78", + "sender": "0xc312a51324F449CF2389749B84Df3617373F2397", "signature": "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c", } `) @@ -1218,7 +2487,7 @@ describe('entryPointVersion: 0.6', async () => { "paymasterAndData": "0x", "paymasterPostOpGasLimit": undefined, "paymasterVerificationGasLimit": undefined, - "sender": "0x5d146EE4f31D852361f18B9CFCc510f773d6BC78", + "sender": "0xc312a51324F449CF2389749B84Df3617373F2397", } `) }) diff --git a/src/account-abstraction/actions/bundler/prepareUserOperation.ts b/src/account-abstraction/actions/bundler/prepareUserOperation.ts index f5705663b1..d8b90d459d 100644 --- a/src/account-abstraction/actions/bundler/prepareUserOperation.ts +++ b/src/account-abstraction/actions/bundler/prepareUserOperation.ts @@ -3,6 +3,7 @@ import { type ParseAccountErrorType, parseAccount, } from '../../../accounts/utils/parseAccount.js' +import { prepareAuthorization } from '../../../actions/index.js' import { type EstimateFeesPerGasErrorType, estimateFeesPerGas, @@ -12,6 +13,7 @@ import type { Client } from '../../../clients/createClient.js' import type { Transport } from '../../../clients/transports/createTransport.js' import { AccountNotFoundError } from '../../../errors/account.js' import type { ErrorType } from '../../../errors/utils.js' +import type { SignedAuthorization } from '../../../types/authorization.js' import type { Call, Calls } from '../../../types/calls.js' import type { Chain } from '../../../types/chain.js' import type { Hex } from '../../../types/misc.js' @@ -63,6 +65,7 @@ const defaultParameters = [ 'paymaster', 'nonce', 'signature', + 'authorization', ] as const export type PrepareUserOperationParameterType = @@ -72,10 +75,17 @@ export type PrepareUserOperationParameterType = | 'paymaster' | 'nonce' | 'signature' + | 'authorization' type FactoryProperties< entryPointVersion extends EntryPointVersion = EntryPointVersion, > = + | (entryPointVersion extends '0.8' + ? { + factory: UserOperation['factory'] + factoryData: UserOperation['factoryData'] + } + : never) | (entryPointVersion extends '0.7' ? { factory: UserOperation['factory'] @@ -91,6 +101,15 @@ type FactoryProperties< type GasProperties< entryPointVersion extends EntryPointVersion = EntryPointVersion, > = + | (entryPointVersion extends '0.8' + ? { + callGasLimit: UserOperation['callGasLimit'] + preVerificationGas: UserOperation['preVerificationGas'] + verificationGasLimit: UserOperation['verificationGasLimit'] + paymasterPostOpGasLimit: UserOperation['paymasterPostOpGasLimit'] + paymasterVerificationGasLimit: UserOperation['paymasterVerificationGasLimit'] + } + : never) | (entryPointVersion extends '0.7' ? { callGasLimit: UserOperation['callGasLimit'] @@ -120,6 +139,14 @@ type NonceProperties = { type PaymasterProperties< entryPointVersion extends EntryPointVersion = EntryPointVersion, > = + | (entryPointVersion extends '0.8' + ? { + paymaster: UserOperation['paymaster'] + paymasterData: UserOperation['paymasterData'] + paymasterPostOpGasLimit: UserOperation['paymasterPostOpGasLimit'] + paymasterVerificationGasLimit: UserOperation['paymasterVerificationGasLimit'] + } + : never) | (entryPointVersion extends '0.7' ? { paymaster: UserOperation['paymaster'] @@ -138,6 +165,10 @@ type SignatureProperties = { signature: UserOperation['signature'] } +type AuthorizationProperties = { + authorization: UserOperation['authorization'] +} + export type PrepareUserOperationRequest< account extends SmartAccount | undefined = SmartAccount | undefined, accountOverride extends SmartAccount | undefined = SmartAccount | undefined, @@ -208,7 +239,10 @@ export type PrepareUserOperationReturnType< callData: Hex paymasterAndData: _derivedVersion extends '0.6' ? Hex : undefined sender: UserOperation['sender'] - } & (Extract<_parameters, 'factory'> extends never + } & (Extract<_parameters, 'authorization'> extends never + ? {} + : AuthorizationProperties) & + (Extract<_parameters, 'factory'> extends never ? {} : FactoryProperties<_derivedVersion>) & (Extract<_parameters, 'nonce'> extends never ? {} : NonceProperties) & @@ -359,7 +393,7 @@ export async function prepareUserOperation< // Concurrently prepare properties required to fill the User Operation. //////////////////////////////////////////////////////////////////////////////// - const [callData, factory, fees, nonce] = await Promise.all([ + const [callData, factory, fees, nonce, authorization] = await Promise.all([ (async () => { if (parameters.calls) return account.encodeCalls( @@ -457,6 +491,24 @@ export async function prepareUserOperation< if (typeof parameters.nonce === 'bigint') return parameters.nonce return account.getNonce() })(), + (async () => { + if (!properties.includes('authorization')) return undefined + if (typeof parameters.authorization === 'object') + return parameters.authorization + if (account.authorization && !(await account.isDeployed())) { + const authorization = await prepareAuthorization( + account.client, + account.authorization, + ) + return { + ...authorization, + r: '0xfffffffffffffffffffffffffffffff000000000000000000000000000000000', + s: '0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', + yParity: 1, + } satisfies SignedAuthorization + } + return undefined + })(), ]) //////////////////////////////////////////////////////////////////////////////// @@ -468,6 +520,8 @@ export async function prepareUserOperation< request = { ...request, ...(factory as any) } if (typeof fees !== 'undefined') request = { ...request, ...(fees as any) } if (typeof nonce !== 'undefined') request.nonce = nonce + if (typeof authorization !== 'undefined') + request.authorization = authorization //////////////////////////////////////////////////////////////////////////////// // Fill User Operation with the `signature` property. diff --git a/src/account-abstraction/actions/bundler/sendUserOperation.test.ts b/src/account-abstraction/actions/bundler/sendUserOperation.test.ts index ce2ff769e9..2a5c4844a1 100644 --- a/src/account-abstraction/actions/bundler/sendUserOperation.test.ts +++ b/src/account-abstraction/actions/bundler/sendUserOperation.test.ts @@ -4,7 +4,9 @@ import { createVerifyingPaymasterServer, getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, getVerifyingPaymaster_07, + getVerifyingPaymaster_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' @@ -15,6 +17,7 @@ import { mine, readContract, setBalance, + signAuthorization, writeContract, } from '../../../actions/index.js' import { sepolia } from '../../../chains/index.js' @@ -50,12 +53,14 @@ beforeEach(async () => { return () => vi.useRealTimers() }) -describe('entryPointVersion: 0.7', async () => { - const [account, account_2, account_3] = await getSmartAccounts_07() +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() test('default', async () => { + const authorization = await signAuthorization(client, account.authorization) const hash = await sendUserOperation(bundlerClient, { account, + authorization, calls: [ { to: alice, @@ -92,18 +97,38 @@ describe('entryPointVersion: 0.7', async () => { args: [69420451n], }), ).toBe(account.address) + + await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: alice, + value: parseEther('1'), + }, + ], + ...fees, + }) + + await bundlerClient.request({ method: 'debug_bundler_sendBundleNow' }) + await mine(client, { blocks: 1 }) + + expect(await getBalance(client, { address: alice })).toMatchInlineSnapshot( + '10002000000000000000000n', + ) }) test('args: paymaster (client)', async () => { - const paymaster = await getVerifyingPaymaster_07() + const paymaster = await getVerifyingPaymaster_08() const server = await createVerifyingPaymasterServer(client, { paymaster }) const paymasterClient = createPaymasterClient({ transport: http(server.url), }) + const authorization = await signAuthorization(client, account.authorization) const hash = await sendUserOperation(bundlerClient, { account, + authorization, calls: [ { to: alice, @@ -124,7 +149,7 @@ describe('entryPointVersion: 0.7', async () => { }) test('behavior: client.paymaster (client)', async () => { - const paymaster = await getVerifyingPaymaster_07() + const paymaster = await getVerifyingPaymaster_08() const server = await createVerifyingPaymasterServer(client, { paymaster }) const paymasterClient = createPaymasterClient({ @@ -178,10 +203,12 @@ describe('entryPointVersion: 0.7', async () => { expectTypeOf(request).toMatchTypeOf() + const authorization = await signAuthorization(client, account.authorization) const hash = await sendUserOperation(bundlerClient, { ...request, entryPointAddress: account.entryPoint.address, signature, + authorization, }) expect(hash).toBeDefined() @@ -203,6 +230,216 @@ describe('entryPointVersion: 0.7', async () => { ).toBe(account.address) }) + test('error: no account', async () => { + await expect(() => + // @ts-expect-error + sendUserOperation(bundlerClient, { + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + signature: '0xdeadbeef', + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [AccountNotFoundError: Could not find an Account to execute with this Action. + Please provide an Account with the \`account\` argument on the Action, or by supplying an \`account\` to the Client. + + Version: viem@x.y.z] + `) + }) + + test('error: aa24', async () => { + const authorization = await signAuthorization(client, account.authorization) + await expect(() => + sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + signature: + '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c', + callGasLimit: 80000n, + verificationGasLimit: 79141n, + authorization, + ...fees, + }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UserOperationExecutionError: Signature provided for the User Operation is invalid. + + This could arise when: + - the \`signature\` for the User Operation is incorrectly computed, and unable to be verified by the Smart Account + + Request Arguments: + callData: 0xb61d27f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 + callGasLimit: 80000 + maxFeePerGas: 15 gwei + maxPriorityFeePerGas: 2 gwei + nonce: 30902162761113582199187261358080 + paymasterPostOpGasLimit: 0 + paymasterVerificationGasLimit: 0 + preVerificationGas: 91968 + sender: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c + verificationGasLimit: 79141 + + Details: UserOperation reverted with reason: AA24 signature error + Version: viem@x.y.z] + `) + }) +}) + +describe('entryPointVersion: 0.7', async () => { + const [account, account_2, account_3] = await getSmartAccounts_07() + + test('default', async () => { + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: alice, + value: parseEther('1'), + }, + { + to: bob, + value: parseEther('2'), + }, + { + abi: wagmiContractConfig.abi, + functionName: 'mint', + to: wagmiContractConfig.address, + args: [69420511n], + }, + ], + ...fees, + }) + expect(hash).toBeDefined() + + await bundlerClient.request({ method: 'debug_bundler_sendBundleNow' }) + await mine(client, { blocks: 1 }) + + expect(await getBalance(client, { address: alice })).toMatchInlineSnapshot( + '10001000000000000000000n', + ) + expect(await getBalance(client, { address: bob })).toMatchInlineSnapshot( + '10002000000000000000000n', + ) + expect( + await readContract(client, { + ...wagmiContractConfig, + functionName: 'ownerOf', + args: [69420511n], + }), + ).toBe(account.address) + }) + + test('args: paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_07() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: alice, + value: parseEther('1'), + }, + { + to: bob, + value: parseEther('2'), + }, + ], + paymaster: paymasterClient, + ...fees, + }) + expect(hash).toBeDefined() + + await bundlerClient.request({ method: 'debug_bundler_sendBundleNow' }) + await mine(client, { blocks: 1 }) + }) + + test('behavior: client.paymaster (client)', async () => { + const paymaster = await getVerifyingPaymaster_07() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const bundlerClient = bundlerMainnet.getBundlerClient({ + client, + paymaster: paymasterClient, + }) + + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: alice, + value: parseEther('1'), + }, + { + to: bob, + value: parseEther('2'), + }, + ], + ...fees, + }) + expect(hash).toBeDefined() + + await bundlerClient.request({ method: 'debug_bundler_sendBundleNow' }) + await mine(client, { blocks: 1 }) + }) + + test('behavior: prepared user operation', async () => { + const request = { + ...(await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: alice, + value: parseEther('1'), + }, + { + to: bob, + value: parseEther('2'), + }, + ], + ...fees, + })), + account: undefined, + } as const + const signature = await account.signUserOperation(request) + + expectTypeOf(request).toMatchTypeOf() + + const hash = await sendUserOperation(bundlerClient, { + ...request, + entryPointAddress: account.entryPoint.address, + signature, + }) + expect(hash).toBeDefined() + + await bundlerClient.request({ method: 'debug_bundler_sendBundleNow' }) + await mine(client, { blocks: 1 }) + + expect(await getBalance(client, { address: alice })).toMatchInlineSnapshot( + '10001000000000000000000n', + ) + expect(await getBalance(client, { address: bob })).toMatchInlineSnapshot( + '10002000000000000000000n', + ) + }) + test('error: no account', async () => { await expect(() => // @ts-expect-error @@ -256,13 +493,13 @@ describe('entryPointVersion: 0.7', async () => { Request Arguments: callData: 0xb61d27f60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000 callGasLimit: 0 - factory: 0xea2e668d430e5aa15baba2f5c5edfd4f9ef6eb73 + factory: 0x5edb3ff1ea450d1ff6d614f24f5c760761f7f688 factoryData: 0xf14ddffc000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001 maxFeePerGas: 15 gwei maxPriorityFeePerGas: 2 gwei nonce: 30902162761021348478818713600000 preVerificationGas: 0 - sender: 0x6efA2348C36EE137f49a67c66525A1d264FaE926 + sender: 0xC6B426A3272a812dD1B3EDB601447bbAA8C1294C signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c verificationGasLimit: 0 @@ -305,7 +542,7 @@ describe('entryPointVersion: 0.7', async () => { maxPriorityFeePerGas: 2 gwei nonce: 30902162761021348478818713600000 preVerificationGas: 0 - sender: 0x44f093A4811cE94D63EC975637E90c1e4132ee69 + sender: 0xd90Fd455cB571186372581209e0491337B736Ad4 signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c verificationGasLimit: 0 @@ -344,7 +581,7 @@ describe('entryPointVersion: 0.7', async () => { paymasterPostOpGasLimit: 0 paymasterVerificationGasLimit: 0 preVerificationGas: 48527 - sender: 0x5DE8369D07A58C1d371A091979956d08b40ceA59 + sender: 0xF2F83Eb89C48abd7aD93bA42C3ce904895337cea signature: 0xdeadbeef verificationGasLimit: 79141 @@ -423,7 +660,7 @@ describe('entryPointVersion: 0.6', async () => { nonce: 30902162761021348478818713600000 paymasterAndData: 0x preVerificationGas: 0 - sender: 0xbB2bD8ef42490AF89c9a35e529c53bC39844AD11 + sender: 0x9e445784532eb3534bF7259bd9C1Df92DE5d65D1 signature: 0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c verificationGasLimit: 0 diff --git a/src/account-abstraction/actions/bundler/sendUserOperation.ts b/src/account-abstraction/actions/bundler/sendUserOperation.ts index 1ea0e79122..463356ca3a 100644 --- a/src/account-abstraction/actions/bundler/sendUserOperation.ts +++ b/src/account-abstraction/actions/bundler/sendUserOperation.ts @@ -135,7 +135,7 @@ export async function sendUserOperation< : parameters const signature = (parameters.signature || - (await account?.signUserOperation(request as UserOperation)))! + (await account?.signUserOperation?.(request as UserOperation)))! const rpcParameters = formatUserOperationRequest({ ...request, @@ -148,7 +148,7 @@ export async function sendUserOperation< method: 'eth_sendUserOperation', params: [ rpcParameters, - (entryPointAddress ?? account?.entryPoint.address)!, + (entryPointAddress ?? account?.entryPoint?.address)!, ], }, { retryCount: 0 }, diff --git a/src/account-abstraction/actions/bundler/waitForUserOperationReceipt.test.ts b/src/account-abstraction/actions/bundler/waitForUserOperationReceipt.test.ts index 9c7af24ab9..8ab91eaff2 100644 --- a/src/account-abstraction/actions/bundler/waitForUserOperationReceipt.test.ts +++ b/src/account-abstraction/actions/bundler/waitForUserOperationReceipt.test.ts @@ -2,10 +2,11 @@ import { beforeEach, describe, expect, test, vi } from 'vitest' import { getSmartAccounts_06, getSmartAccounts_07, + getSmartAccounts_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' -import { mine } from '../../../actions/index.js' +import { mine, signAuthorization } from '../../../actions/index.js' import { parseEther, parseGwei } from '../../../utils/index.js' import { wait } from '../../../utils/wait.js' import * as getUserOperationReceipt from './getUserOperationReceipt.js' @@ -24,6 +25,173 @@ beforeEach(async () => { await bundlerMainnet.restart() }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + + test('default', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + const [receipt] = await Promise.all([ + waitForUserOperationReceipt(bundlerClient, { + hash, + }), + (async () => { + // Simulate some delay to send the bundle + mine block. + await wait(500) + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + })(), + ]) + + expect(receipt.success).toBeTruthy() + }) + + test('args: pollingInterval', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + const [receipt] = await Promise.all([ + waitForUserOperationReceipt(bundlerClient, { + hash, + pollingInterval: 100, + }), + (async () => { + // Simulate some delay to send the bundle + mine block. + await wait(100) + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + })(), + ]) + + expect(receipt.success).toBeTruthy() + }) + + test('error: retryCount exceeded', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await expect(() => + Promise.all([ + waitForUserOperationReceipt(bundlerClient, { + hash, + retryCount: 6, + }), + (async () => { + // Simulate some delay + await wait(500) + })(), + ]), + ).rejects.toThrowError('Timed out while waiting for User Operation') + }) + + test('error: timeout exceeded', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + await expect(() => + Promise.all([ + waitForUserOperationReceipt(bundlerClient, { + hash, + timeout: 100, + }), + (async () => { + // Simulate some delay + await wait(500) + })(), + ]), + ).rejects.toThrowError('Timed out while waiting for User Operation') + }) + + test('error: generic error', async () => { + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + authorization, + ...fees, + }) + + vi.spyOn( + getUserOperationReceipt, + 'getUserOperationReceipt', + ).mockRejectedValueOnce(new Error('test')) + + await expect(() => + Promise.all([ + waitForUserOperationReceipt(bundlerClient, { + hash, + }), + (async () => { + // Simulate some delay to send the bundle + mine block. + await wait(100) + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + })(), + ]), + ).rejects.toMatchInlineSnapshot(` + [Error: test] + `) + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() @@ -45,7 +213,7 @@ describe('entryPointVersion: 0.7', async () => { }), (async () => { // Simulate some delay to send the bundle + mine block. - await wait(100) + await wait(500) await bundlerClient.request({ method: 'debug_bundler_sendBundleNow', }) @@ -202,7 +370,7 @@ describe('entryPointVersion: 0.6', async () => { }), (async () => { // Simulate some delay to send the bundle + mine block. - await wait(50) + await wait(500) await bundlerClient.request({ method: 'debug_bundler_sendBundleNow', }) diff --git a/src/account-abstraction/actions/paymaster/getPaymasterData.test.ts b/src/account-abstraction/actions/paymaster/getPaymasterData.test.ts index 0a3b616d6a..833402eba9 100644 --- a/src/account-abstraction/actions/paymaster/getPaymasterData.test.ts +++ b/src/account-abstraction/actions/paymaster/getPaymasterData.test.ts @@ -2,11 +2,13 @@ import { describe, expect, test } from 'vitest' import { createVerifyingPaymasterServer, getSmartAccounts_07, + getSmartAccounts_08, getVerifyingPaymaster_07, + getVerifyingPaymaster_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' -import { mine } from '../../../actions/index.js' +import { mine, signAuthorization } from '../../../actions/index.js' import { http } from '../../../clients/transports/http.js' import { parseEther } from '../../../utils/index.js' import { createPaymasterClient } from '../../clients/createPaymasterClient.js' @@ -20,6 +22,90 @@ import { getPaymasterStubData } from './getPaymasterStubData.js' const client = anvilMainnet.getClient({ account: true }) const bundlerClient = bundlerMainnet.getBundlerClient({ client }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + test('default', async () => { + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const userOperation = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + parameters: ['authorization', 'factory', 'fees', 'nonce', 'signature'], + }) + + const { paymaster, paymasterData, ...userOperation_paymasterStub } = + await getPaymasterStubData(paymasterClient, { + chainId: bundlerClient.chain.id, + entryPointAddress: account.entryPoint.address, + ...userOperation, + }) + expect(paymaster).toBeDefined() + expect(paymasterData).toBeDefined() + expect(userOperation_paymasterStub).toMatchInlineSnapshot(` + { + "isFinal": false, + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sponsor": { + "name": "Viem Sugar Daddy", + }, + } + `) + + const userOperation_gas = await estimateUserOperationGas(bundlerClient, { + ...userOperation, + ...userOperation_paymasterStub, + }) + userOperation_gas.preVerificationGas = 100_000n + + expect(userOperation_gas.callGasLimit).toBeGreaterThanOrEqual(10000n) + expect(userOperation_gas.preVerificationGas).toBeGreaterThanOrEqual(100000n) + expect(userOperation_gas.verificationGasLimit).toBeGreaterThanOrEqual( + 50000n, + ) + expect(userOperation_gas.paymasterPostOpGasLimit).toBe(0n) + expect(userOperation_gas.paymasterVerificationGasLimit).toBe(0n) + + const userOperation_paymaster = await getPaymasterData(paymasterClient, { + chainId: bundlerClient.chain.id, + entryPointAddress: account.entryPoint.address, + ...userOperation, + ...userOperation_gas, + ...userOperation_paymasterStub, + }) + + const authorization = await signAuthorization(client, account.authorization) + const hash = await sendUserOperation(bundlerClient, { + ...userOperation, + ...userOperation_gas, + ...userOperation_paymaster, + authorization, + signature: undefined, + }) + expect(hash).toBeDefined() + + await bundlerClient.request({ + method: 'debug_bundler_sendBundleNow', + }) + await mine(client, { + blocks: 1, + }) + + const receipt = await getUserOperationReceipt(bundlerClient, { hash }) + expect(receipt.success).toBeTruthy() + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() const paymaster = await getVerifyingPaymaster_07() diff --git a/src/account-abstraction/actions/paymaster/getPaymasterData.ts b/src/account-abstraction/actions/paymaster/getPaymasterData.ts index 16685698d0..77e15d2d29 100644 --- a/src/account-abstraction/actions/paymaster/getPaymasterData.ts +++ b/src/account-abstraction/actions/paymaster/getPaymasterData.ts @@ -57,6 +57,30 @@ export type GetPaymasterDataParameters = OneOf< | 'preVerificationGas' | 'verificationGasLimit' > + | PartialBy< + Pick< + UserOperation<'0.8'>, + | 'callData' + | 'callGasLimit' + | 'factory' + | 'factoryData' + | 'maxFeePerGas' + | 'maxPriorityFeePerGas' + | 'nonce' + | 'sender' + | 'preVerificationGas' + | 'verificationGasLimit' + | 'paymasterPostOpGasLimit' + | 'paymasterVerificationGasLimit' + >, + | 'callGasLimit' + | 'factory' + | 'factoryData' + | 'maxFeePerGas' + | 'maxPriorityFeePerGas' + | 'preVerificationGas' + | 'verificationGasLimit' + > > & { context?: unknown | undefined chainId: number diff --git a/src/account-abstraction/actions/paymaster/getPaymasterStubData.test.ts b/src/account-abstraction/actions/paymaster/getPaymasterStubData.test.ts index 06741529b0..d52939f29a 100644 --- a/src/account-abstraction/actions/paymaster/getPaymasterStubData.test.ts +++ b/src/account-abstraction/actions/paymaster/getPaymasterStubData.test.ts @@ -2,7 +2,9 @@ import { describe, expect, test } from 'vitest' import { createVerifyingPaymasterServer, getSmartAccounts_07, + getSmartAccounts_08, getVerifyingPaymaster_07, + getVerifyingPaymaster_08, } from '../../../../test/src/account-abstraction.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { bundlerMainnet } from '../../../../test/src/bundler.js' @@ -16,6 +18,61 @@ import { getPaymasterStubData } from './getPaymasterStubData.js' const client = anvilMainnet.getClient({ account: true }) const bundlerClient = bundlerMainnet.getBundlerClient({ client }) +describe('entryPointVersion: 0.8', async () => { + const [account] = await getSmartAccounts_08() + const paymaster = await getVerifyingPaymaster_08() + const server = await createVerifyingPaymasterServer(client, { paymaster }) + + test('default', async () => { + const paymasterClient = createPaymasterClient({ + transport: http(server.url), + }) + + const userOperation = await prepareUserOperation(bundlerClient, { + account, + calls: [ + { + to: '0x0000000000000000000000000000000000000000', + value: parseEther('1'), + }, + ], + parameters: ['authorization', 'factory', 'fees', 'nonce', 'signature'], + }) + + const { paymaster, paymasterData, ...userOperation_paymaster } = + await getPaymasterStubData(paymasterClient, { + chainId: bundlerClient.chain.id, + entryPointAddress: account.entryPoint.address, + ...userOperation, + }) + expect(paymaster).toBeDefined() + expect(paymasterData).toBeDefined() + expect(userOperation_paymaster).toMatchInlineSnapshot(` + { + "isFinal": false, + "paymasterPostOpGasLimit": 1000000n, + "paymasterVerificationGasLimit": 1000000n, + "sponsor": { + "name": "Viem Sugar Daddy", + }, + } + `) + + const { preVerificationGas, ...userOperation_gas } = + await estimateUserOperationGas(bundlerClient, { + ...userOperation, + ...userOperation_paymaster, + }) + expect(preVerificationGas).toBeDefined() + expect(userOperation_gas.callGasLimit).toBeGreaterThanOrEqual(10000n) + expect(userOperation_gas.verificationGasLimit).toBeGreaterThanOrEqual( + 97000n, + ) + expect(userOperation_gas.paymasterPostOpGasLimit).toBe(0n) + expect(userOperation_gas.paymasterVerificationGasLimit).toBe(0n) + }) +}) + describe('entryPointVersion: 0.7', async () => { const [account] = await getSmartAccounts_07() const paymaster = await getVerifyingPaymaster_07() diff --git a/src/account-abstraction/constants/abis.ts b/src/account-abstraction/constants/abis.ts index 518f192fe0..5ea816997b 100644 --- a/src/account-abstraction/constants/abis.ts +++ b/src/account-abstraction/constants/abis.ts @@ -1402,3 +1402,694 @@ export const entryPoint07Abi = [ }, { stateMutability: 'payable', type: 'receive' }, ] as const + +export const entryPoint08Abi = [ + { inputs: [], stateMutability: 'nonpayable', type: 'constructor' }, + { + inputs: [ + { internalType: 'bool', name: 'success', type: 'bool' }, + { internalType: 'bytes', name: 'ret', type: 'bytes' }, + ], + name: 'DelegateAndRevert', + type: 'error', + }, + { + inputs: [ + { internalType: 'uint256', name: 'opIndex', type: 'uint256' }, + { internalType: 'string', name: 'reason', type: 'string' }, + ], + name: 'FailedOp', + type: 'error', + }, + { + inputs: [ + { internalType: 'uint256', name: 'opIndex', type: 'uint256' }, + { internalType: 'string', name: 'reason', type: 'string' }, + { internalType: 'bytes', name: 'inner', type: 'bytes' }, + ], + name: 'FailedOpWithRevert', + type: 'error', + }, + { inputs: [], name: 'InvalidShortString', type: 'error' }, + { + inputs: [{ internalType: 'bytes', name: 'returnData', type: 'bytes' }], + name: 'PostOpReverted', + type: 'error', + }, + { inputs: [], name: 'ReentrancyGuardReentrantCall', type: 'error' }, + { + inputs: [{ internalType: 'address', name: 'sender', type: 'address' }], + name: 'SenderAddressResult', + type: 'error', + }, + { + inputs: [{ internalType: 'address', name: 'aggregator', type: 'address' }], + name: 'SignatureValidationFailed', + type: 'error', + }, + { + inputs: [{ internalType: 'string', name: 'str', type: 'string' }], + name: 'StringTooLong', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'userOpHash', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'factory', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'paymaster', + type: 'address', + }, + ], + name: 'AccountDeployed', + type: 'event', + }, + { anonymous: false, inputs: [], name: 'BeforeExecution', type: 'event' }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalDeposit', + type: 'uint256', + }, + ], + name: 'Deposited', + type: 'event', + }, + { anonymous: false, inputs: [], name: 'EIP712DomainChanged', type: 'event' }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'userOpHash', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bytes', + name: 'revertReason', + type: 'bytes', + }, + ], + name: 'PostOpRevertReason', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'aggregator', + type: 'address', + }, + ], + name: 'SignatureAggregatorChanged', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'totalStaked', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'unstakeDelaySec', + type: 'uint256', + }, + ], + name: 'StakeLocked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'withdrawTime', + type: 'uint256', + }, + ], + name: 'StakeUnlocked', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'withdrawAddress', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'StakeWithdrawn', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'userOpHash', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'paymaster', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + { indexed: false, internalType: 'bool', name: 'success', type: 'bool' }, + { + indexed: false, + internalType: 'uint256', + name: 'actualGasCost', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'actualGasUsed', + type: 'uint256', + }, + ], + name: 'UserOperationEvent', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'userOpHash', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + ], + name: 'UserOperationPrefundTooLow', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'bytes32', + name: 'userOpHash', + type: 'bytes32', + }, + { + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'nonce', + type: 'uint256', + }, + { + indexed: false, + internalType: 'bytes', + name: 'revertReason', + type: 'bytes', + }, + ], + name: 'UserOperationRevertReason', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: false, + internalType: 'address', + name: 'withdrawAddress', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, + ], + name: 'Withdrawn', + type: 'event', + }, + { + inputs: [ + { internalType: 'uint32', name: 'unstakeDelaySec', type: 'uint32' }, + ], + name: 'addStake', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [{ internalType: 'address', name: 'account', type: 'address' }], + name: 'balanceOf', + outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: 'target', type: 'address' }, + { internalType: 'bytes', name: 'data', type: 'bytes' }, + ], + name: 'delegateAndRevert', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ internalType: 'address', name: 'account', type: 'address' }], + name: 'depositTo', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + { + inputs: [], + name: 'eip712Domain', + outputs: [ + { internalType: 'bytes1', name: 'fields', type: 'bytes1' }, + { internalType: 'string', name: 'name', type: 'string' }, + { internalType: 'string', name: 'version', type: 'string' }, + { internalType: 'uint256', name: 'chainId', type: 'uint256' }, + { internalType: 'address', name: 'verifyingContract', type: 'address' }, + { internalType: 'bytes32', name: 'salt', type: 'bytes32' }, + { internalType: 'uint256[]', name: 'extensions', type: 'uint256[]' }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ internalType: 'address', name: 'account', type: 'address' }], + name: 'getDepositInfo', + outputs: [ + { + components: [ + { internalType: 'uint256', name: 'deposit', type: 'uint256' }, + { internalType: 'bool', name: 'staked', type: 'bool' }, + { internalType: 'uint112', name: 'stake', type: 'uint112' }, + { internalType: 'uint32', name: 'unstakeDelaySec', type: 'uint32' }, + { internalType: 'uint48', name: 'withdrawTime', type: 'uint48' }, + ], + internalType: 'struct IStakeManager.DepositInfo', + name: 'info', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getDomainSeparatorV4', + outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint192', name: 'key', type: 'uint192' }, + ], + name: 'getNonce', + outputs: [{ internalType: 'uint256', name: 'nonce', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'getPackedUserOpTypeHash', + outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }], + stateMutability: 'pure', + type: 'function', + }, + { + inputs: [{ internalType: 'bytes', name: 'initCode', type: 'bytes' }], + name: 'getSenderAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint256', name: 'nonce', type: 'uint256' }, + { internalType: 'bytes', name: 'initCode', type: 'bytes' }, + { internalType: 'bytes', name: 'callData', type: 'bytes' }, + { + internalType: 'bytes32', + name: 'accountGasLimits', + type: 'bytes32', + }, + { + internalType: 'uint256', + name: 'preVerificationGas', + type: 'uint256', + }, + { internalType: 'bytes32', name: 'gasFees', type: 'bytes32' }, + { internalType: 'bytes', name: 'paymasterAndData', type: 'bytes' }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + internalType: 'struct PackedUserOperation', + name: 'userOp', + type: 'tuple', + }, + ], + name: 'getUserOpHash', + outputs: [{ internalType: 'bytes32', name: '', type: 'bytes32' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + components: [ + { + components: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint256', name: 'nonce', type: 'uint256' }, + { internalType: 'bytes', name: 'initCode', type: 'bytes' }, + { internalType: 'bytes', name: 'callData', type: 'bytes' }, + { + internalType: 'bytes32', + name: 'accountGasLimits', + type: 'bytes32', + }, + { + internalType: 'uint256', + name: 'preVerificationGas', + type: 'uint256', + }, + { internalType: 'bytes32', name: 'gasFees', type: 'bytes32' }, + { + internalType: 'bytes', + name: 'paymasterAndData', + type: 'bytes', + }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + internalType: 'struct PackedUserOperation[]', + name: 'userOps', + type: 'tuple[]', + }, + { + internalType: 'contract IAggregator', + name: 'aggregator', + type: 'address', + }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + internalType: 'struct IEntryPoint.UserOpsPerAggregator[]', + name: 'opsPerAggregator', + type: 'tuple[]', + }, + { internalType: 'address payable', name: 'beneficiary', type: 'address' }, + ], + name: 'handleAggregatedOps', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + components: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint256', name: 'nonce', type: 'uint256' }, + { internalType: 'bytes', name: 'initCode', type: 'bytes' }, + { internalType: 'bytes', name: 'callData', type: 'bytes' }, + { + internalType: 'bytes32', + name: 'accountGasLimits', + type: 'bytes32', + }, + { + internalType: 'uint256', + name: 'preVerificationGas', + type: 'uint256', + }, + { internalType: 'bytes32', name: 'gasFees', type: 'bytes32' }, + { internalType: 'bytes', name: 'paymasterAndData', type: 'bytes' }, + { internalType: 'bytes', name: 'signature', type: 'bytes' }, + ], + internalType: 'struct PackedUserOperation[]', + name: 'ops', + type: 'tuple[]', + }, + { internalType: 'address payable', name: 'beneficiary', type: 'address' }, + ], + name: 'handleOps', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [{ internalType: 'uint192', name: 'key', type: 'uint192' }], + name: 'incrementNonce', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { internalType: 'bytes', name: 'callData', type: 'bytes' }, + { + components: [ + { + components: [ + { internalType: 'address', name: 'sender', type: 'address' }, + { internalType: 'uint256', name: 'nonce', type: 'uint256' }, + { + internalType: 'uint256', + name: 'verificationGasLimit', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'callGasLimit', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'paymasterVerificationGasLimit', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'paymasterPostOpGasLimit', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'preVerificationGas', + type: 'uint256', + }, + { internalType: 'address', name: 'paymaster', type: 'address' }, + { + internalType: 'uint256', + name: 'maxFeePerGas', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'maxPriorityFeePerGas', + type: 'uint256', + }, + ], + internalType: 'struct EntryPoint.MemoryUserOp', + name: 'mUserOp', + type: 'tuple', + }, + { internalType: 'bytes32', name: 'userOpHash', type: 'bytes32' }, + { internalType: 'uint256', name: 'prefund', type: 'uint256' }, + { internalType: 'uint256', name: 'contextOffset', type: 'uint256' }, + { internalType: 'uint256', name: 'preOpGas', type: 'uint256' }, + ], + internalType: 'struct EntryPoint.UserOpInfo', + name: 'opInfo', + type: 'tuple', + }, + { internalType: 'bytes', name: 'context', type: 'bytes' }, + ], + name: 'innerHandleOp', + outputs: [ + { internalType: 'uint256', name: 'actualGasCost', type: 'uint256' }, + ], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { internalType: 'address', name: '', type: 'address' }, + { internalType: 'uint192', name: '', type: 'uint192' }, + ], + name: 'nonceSequenceNumber', + outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'senderCreator', + outputs: [ + { internalType: 'contract ISenderCreator', name: '', type: 'address' }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ internalType: 'bool', name: '', type: 'bool' }], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [], + name: 'unlockStake', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address payable', + name: 'withdrawAddress', + type: 'address', + }, + ], + name: 'withdrawStake', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address payable', + name: 'withdrawAddress', + type: 'address', + }, + { internalType: 'uint256', name: 'withdrawAmount', type: 'uint256' }, + ], + name: 'withdrawTo', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { stateMutability: 'payable', type: 'receive' }, +] as const diff --git a/src/account-abstraction/constants/address.ts b/src/account-abstraction/constants/address.ts index b62184fc73..ec5cac696e 100644 --- a/src/account-abstraction/constants/address.ts +++ b/src/account-abstraction/constants/address.ts @@ -2,3 +2,5 @@ export const entryPoint06Address = '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789' as const export const entryPoint07Address = '0x0000000071727De22E5E9d8BAf0edAc6f37da032' as const +export const entryPoint08Address = + '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108' as const diff --git a/src/account-abstraction/index.ts b/src/account-abstraction/index.ts index ba49ec759c..76ad7f38d8 100644 --- a/src/account-abstraction/index.ts +++ b/src/account-abstraction/index.ts @@ -17,6 +17,12 @@ export { type ToSoladySmartAccountReturnType, toSoladySmartAccount, } from './accounts/implementations/toSoladySmartAccount.js' +export { + type Simple7702SmartAccountImplementation, + type ToSimple7702SmartAccountParameters, + type ToSimple7702SmartAccountReturnType, + toSimple7702SmartAccount, +} from './accounts/implementations/toSimple7702SmartAccount.js' export { type ToSmartAccountParameters, type ToSmartAccountReturnType, @@ -112,10 +118,15 @@ export { createPaymasterClient, } from './clients/createPaymasterClient.js' -export { entryPoint06Abi, entryPoint07Abi } from './constants/abis.js' +export { + entryPoint06Abi, + entryPoint07Abi, + entryPoint08Abi, +} from './constants/abis.js' export { entryPoint06Address, entryPoint07Address, + entryPoint08Address, } from './constants/address.js' export { @@ -236,4 +247,9 @@ export { type GetUserOperationHashReturnType, getUserOperationHash, } from './utils/userOperation/getUserOperationHash.js' +export { + type GetUserOperationTypedDataParameters, + type GetUserOperationTypedDataReturnType, + getUserOperationTypedData, +} from './utils/userOperation/getUserOperationTypedData.js' export { toPackedUserOperation } from './utils/userOperation/toPackedUserOperation.js' diff --git a/src/account-abstraction/types/entryPointVersion.ts b/src/account-abstraction/types/entryPointVersion.ts index 663bb40abc..ce968db10d 100644 --- a/src/account-abstraction/types/entryPointVersion.ts +++ b/src/account-abstraction/types/entryPointVersion.ts @@ -1,7 +1,7 @@ import type { SmartAccount } from '../accounts/types.js' /** @link https://github.com/eth-infinitism/account-abstraction/releases */ -export type EntryPointVersion = '0.6' | '0.7' +export type EntryPointVersion = '0.6' | '0.7' | '0.8' export type DeriveEntryPointVersion = account extends SmartAccount diff --git a/src/account-abstraction/types/rpc.ts b/src/account-abstraction/types/rpc.ts index e45487a171..81ddb7f7c6 100644 --- a/src/account-abstraction/types/rpc.ts +++ b/src/account-abstraction/types/rpc.ts @@ -1,4 +1,5 @@ import type { Hex } from '../../types/misc.js' +import type { RpcAuthorization } from '../../types/rpc.js' import type { EntryPointVersion } from './entryPointVersion.js' import type { EstimateUserOperationGasReturnType, @@ -14,11 +15,13 @@ export type RpcEstimateUserOperationGasReturnType< export type RpcGetUserOperationByHashReturnType< entryPointVersion extends EntryPointVersion = EntryPointVersion, -> = GetUserOperationByHashReturnType +> = GetUserOperationByHashReturnType export type RpcUserOperation< entryPointVersion extends EntryPointVersion = EntryPointVersion, -> = UserOperation +> = UserOperation & { + eip7702Auth?: RpcAuthorization +} export type RpcUserOperationReceipt< entryPointVersion extends EntryPointVersion = EntryPointVersion, @@ -26,4 +29,4 @@ export type RpcUserOperationReceipt< export type RpcUserOperationRequest< entryPointVersion extends EntryPointVersion = EntryPointVersion, -> = UserOperationRequest +> = UserOperationRequest diff --git a/src/account-abstraction/types/userOperation.ts b/src/account-abstraction/types/userOperation.ts index 7d73dd62bb..c3b11f36de 100644 --- a/src/account-abstraction/types/userOperation.ts +++ b/src/account-abstraction/types/userOperation.ts @@ -1,4 +1,5 @@ import type { Address } from 'abitype' +import type { SignedAuthorization } from '../../types/authorization.js' import type { Log } from '../../types/log.js' import type { Hash, Hex } from '../../types/misc.js' import type { TransactionReceipt } from '../../types/transaction.js' @@ -10,6 +11,15 @@ export type EstimateUserOperationGasReturnType< entryPointVersion extends EntryPointVersion = EntryPointVersion, uint256 = bigint, > = OneOf< + | (entryPointVersion extends '0.8' + ? { + preVerificationGas: uint256 + verificationGasLimit: uint256 + callGasLimit: uint256 + paymasterVerificationGasLimit?: uint256 | undefined + paymasterPostOpGasLimit?: uint256 | undefined + } + : never) | (entryPointVersion extends '0.7' ? { preVerificationGas: uint256 @@ -32,12 +42,13 @@ export type EstimateUserOperationGasReturnType< export type GetUserOperationByHashReturnType< entryPointVersion extends EntryPointVersion = EntryPointVersion, uint256 = bigint, + uint32 = number, > = { blockHash: Hash blockNumber: uint256 entryPoint: Address transactionHash: Hash - userOperation: UserOperation + userOperation: UserOperation } /** @link https://eips.ethereum.org/EIPS/eip-4337#entrypoint-definition */ @@ -66,9 +77,48 @@ export type PackedUserOperation = { export type UserOperation< entryPointVersion extends EntryPointVersion = EntryPointVersion, uint256 = bigint, + uint32 = number, > = OneOf< + | (entryPointVersion extends '0.8' + ? { + /** Authorization data. */ + authorization?: SignedAuthorization | undefined + /** The data to pass to the `sender` during the main execution call. */ + callData: Hex + /** The amount of gas to allocate the main execution call */ + callGasLimit: uint256 + /** Account factory. Only for new accounts. */ + factory?: Address | undefined + /** Data for account factory. */ + factoryData?: Hex | undefined + /** Maximum fee per gas. */ + maxFeePerGas: uint256 + /** Maximum priority fee per gas. */ + maxPriorityFeePerGas: uint256 + /** Anti-replay parameter. */ + nonce: uint256 + /** Address of paymaster contract. */ + paymaster?: Address | undefined + /** Data for paymaster. */ + paymasterData?: Hex | undefined + /** The amount of gas to allocate for the paymaster post-operation code. */ + paymasterPostOpGasLimit?: uint256 | undefined + /** The amount of gas to allocate for the paymaster validation code. */ + paymasterVerificationGasLimit?: uint256 | undefined + /** Extra gas to pay the Bundler. */ + preVerificationGas: uint256 + /** The account making the operation. */ + sender: Address + /** Data passed into the account to verify authorization. */ + signature: Hex + /** The amount of gas to allocate for the verification step. */ + verificationGasLimit: uint256 + } + : never) | (entryPointVersion extends '0.7' ? { + /** Authorization data. */ + authorization?: SignedAuthorization | undefined /** The data to pass to the `sender` during the main execution call. */ callData: Hex /** The amount of gas to allocate the main execution call */ @@ -103,6 +153,8 @@ export type UserOperation< : never) | (entryPointVersion extends '0.6' ? { + /** Authorization data. */ + authorization?: SignedAuthorization | undefined /** The data to pass to the `sender` during the main execution call. */ callData: Hex /** The amount of gas to allocate the main execution call */ @@ -132,10 +184,24 @@ export type UserOperation< export type UserOperationRequest< entryPointVersion extends EntryPointVersion = EntryPointVersion, uint256 = bigint, + uint32 = number, > = OneOf< + | (entryPointVersion extends '0.8' + ? UnionPartialBy< + UserOperation<'0.8', uint256, uint32>, + // We are able to calculate these via `prepareUserOperation`. + | keyof EstimateUserOperationGasReturnType<'0.8'> + | 'callData' + | 'maxFeePerGas' + | 'maxPriorityFeePerGas' + | 'nonce' + | 'sender' + | 'signature' + > + : never) | (entryPointVersion extends '0.7' ? UnionPartialBy< - UserOperation<'0.7', uint256>, + UserOperation<'0.7', uint256, uint32>, // We are able to calculate these via `prepareUserOperation`. | keyof EstimateUserOperationGasReturnType<'0.7'> | 'callData' @@ -148,7 +214,7 @@ export type UserOperationRequest< : never) | (entryPointVersion extends '0.6' ? UnionPartialBy< - UserOperation<'0.6', uint256>, + UserOperation<'0.6', uint256, uint32>, // We are able to calculate these via `prepareUserOperation`. | keyof EstimateUserOperationGasReturnType<'0.6'> | 'callData' diff --git a/src/account-abstraction/utils/formatters/userOperationRequest.ts b/src/account-abstraction/utils/formatters/userOperationRequest.ts index 803af44cf4..a817e2114d 100644 --- a/src/account-abstraction/utils/formatters/userOperationRequest.ts +++ b/src/account-abstraction/utils/formatters/userOperationRequest.ts @@ -1,6 +1,8 @@ import type { ErrorType } from '../../../errors/utils.js' +import type { SignedAuthorization } from '../../../types/authorization.js' import type { ExactPartial } from '../../../types/utils.js' import { numberToHex } from '../../../utils/encoding/toHex.js' +import { pad } from '../../../utils/index.js' import type { RpcUserOperation } from '../../types/rpc.js' import type { UserOperation } from '../../types/userOperation.js' @@ -48,6 +50,25 @@ export function formatUserOperationRequest( rpcRequest.signature = request.signature if (typeof request.verificationGasLimit !== 'undefined') rpcRequest.verificationGasLimit = numberToHex(request.verificationGasLimit) + if (typeof request.authorization !== 'undefined') + rpcRequest.eip7702Auth = formatAuthorization(request.authorization) return rpcRequest } + +function formatAuthorization(authorization: SignedAuthorization) { + return { + address: authorization.address, + chainId: numberToHex(authorization.chainId), + nonce: numberToHex(authorization.nonce), + r: authorization.r + ? numberToHex(BigInt(authorization.r), { size: 32 }) + : pad('0x', { size: 32 }), + s: authorization.s + ? numberToHex(BigInt(authorization.s), { size: 32 }) + : pad('0x', { size: 32 }), + yParity: authorization.yParity + ? numberToHex(authorization.yParity, { size: 1 }) + : pad('0x', { size: 32 }), + } +} diff --git a/src/account-abstraction/utils/userOperation/getInitCode.ts b/src/account-abstraction/utils/userOperation/getInitCode.ts new file mode 100644 index 0000000000..10f7f19d42 --- /dev/null +++ b/src/account-abstraction/utils/userOperation/getInitCode.ts @@ -0,0 +1,21 @@ +import { concat } from '../../../utils/data/concat.js' +import type { UserOperation } from '../../types/userOperation.js' + +export function getInitCode( + userOperation: Pick< + UserOperation, + 'authorization' | 'factory' | 'factoryData' + >, +) { + const { authorization, factory, factoryData } = userOperation + if ( + factory === '0x7702' || + factory === '0x7702000000000000000000000000000000000000' + ) { + if (!authorization) return '0x7702000000000000000000000000000000000000' + const delegation = authorization.address + return concat([delegation, factoryData ?? '0x']) + } + if (!factory) return '0x' + return concat([factory, factoryData ?? '0x']) +} diff --git a/src/account-abstraction/utils/userOperation/getUserOperationHash.test.ts b/src/account-abstraction/utils/userOperation/getUserOperationHash.test.ts index f448c80bb9..a43cb2c133 100644 --- a/src/account-abstraction/utils/userOperation/getUserOperationHash.test.ts +++ b/src/account-abstraction/utils/userOperation/getUserOperationHash.test.ts @@ -1,6 +1,229 @@ import { describe, expect, test } from 'vitest' import { getUserOperationHash } from './getUserOperationHash.js' +describe('entryPoint: 0.8', () => { + test('default', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + }, + }), + ).toMatchInlineSnapshot( + `"0xa2224e732a1d4e2f923c7c05d586a0aa6cbc42172ec02f31d35fa9a2b8ba9208"`, + ) + }) + + test('args: factory + factoryData', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + factory: '0x1234567890123456789012345678901234567890', + factoryData: '0xdeadbeef', + }, + }), + ).toMatchInlineSnapshot( + `"0x3146c70a9ef7538e9b9aca8b00ad4b127ca7eef7817a557f1801acbf8d68c206"`, + ) + }) + + test('args: paymaster', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + }, + }), + ).toMatchInlineSnapshot( + `"0x364bff8f9104a3854dce4f61f8479ce3019a3bd23e1c8db4da0d7c22850835b9"`, + ) + }) + + test('args: paymasterVerificationGasLimit', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + }, + }), + ).toMatchInlineSnapshot( + `"0x9cb735eb4278caf0a9f53ad81e5f592e965c9d034f6e2780befa4cd09a990b04"`, + ) + }) + + test('args: paymasterPostOpGasLimit', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + }, + }), + ).toMatchInlineSnapshot( + `"0x745602113988c3a6f18215d96eecc85775998dcb190e374a0955e637d40fe018"`, + ) + }) + + test('args: paymasterData', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + paymasterData: '0xdeadbeef', + }, + }), + ).toMatchInlineSnapshot( + `"0xf10ef9afcf27a4fd17e477cd19f37e588e3ff7d48eade07ab5b7eb8caf75667f"`, + ) + }) + + test('args: authorization', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + paymasterData: '0xdeadbeef', + factory: '0x7702', + factoryData: '0xdeadbeef', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + `"0xd96232eb5d02f483166b9b23dca3ec2b963d70f09b961fce348c51d306278462"`, + ) + + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + entryPointVersion: '0.8', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + paymasterData: '0xdeadbeef', + factory: '0x7702', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + `"0x66fe6eaaaf1d6727d404384354a720cb24694c697bfbab77b3d02345c2d6e1da"`, + ) + }) +}) + describe('entryPoint: 0.7', () => { test('default', () => { expect( @@ -224,4 +447,66 @@ describe('entryPoint: 0.6', () => { `"0x72bb2d82af9e9da2079fab165bc219c967c6ca0a63dfa55f382c5914ba2f77c5"`, ) }) + + test('args: authorization', () => { + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x1234567890123456789012345678901234567890', + entryPointVersion: '0.6', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + initCode: '0x7702', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + `"0xa9b77f87a292b7246c08f1846691b5d1c474e086f6d7daa0e47476fbaa516a22"`, + ) + + expect( + getUserOperationHash({ + chainId: 1, + entryPointAddress: '0x1234567890123456789012345678901234567890', + entryPointVersion: '0.6', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + initCode: '0x7702000000000000000000000000000000000000deadbeef', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + `"0xaa4a4fa863b3018e0e23291ca82a8747d06c6a92548eb9198f54f4a63540d06e"`, + ) + }) }) diff --git a/src/account-abstraction/utils/userOperation/getUserOperationHash.ts b/src/account-abstraction/utils/userOperation/getUserOperationHash.ts index 7f4bae965c..8b407d23d0 100644 --- a/src/account-abstraction/utils/userOperation/getUserOperationHash.ts +++ b/src/account-abstraction/utils/userOperation/getUserOperationHash.ts @@ -1,12 +1,14 @@ import type { Address } from 'abitype' -import type { Hash } from '../../../types/misc.js' + +import type { Hash, Hex } from '../../../types/misc.js' import { encodeAbiParameters } from '../../../utils/abi/encodeAbiParameters.js' -import { concat } from '../../../utils/data/concat.js' -import { pad } from '../../../utils/data/pad.js' -import { numberToHex } from '../../../utils/encoding/toHex.js' import { keccak256 } from '../../../utils/hash/keccak256.js' +import { hashTypedData } from '../../../utils/signature/hashTypedData.js' import type { EntryPointVersion } from '../../types/entryPointVersion.js' import type { UserOperation } from '../../types/userOperation.js' +import { getInitCode } from './getInitCode.js' +import { getUserOperationTypedData } from './getUserOperationTypedData.js' +import { toPackedUserOperation } from './toPackedUserOperation.js' export type GetUserOperationHashParameters< entryPointVersion extends EntryPointVersion = EntryPointVersion, @@ -27,20 +29,36 @@ export function getUserOperationHash< const { chainId, entryPointAddress, entryPointVersion } = parameters const userOperation = parameters.userOperation as UserOperation const { - callData, + authorization, + callData = '0x', callGasLimit, - initCode, maxFeePerGas, maxPriorityFeePerGas, nonce, - paymasterAndData, + paymasterAndData = '0x', preVerificationGas, sender, verificationGasLimit, } = userOperation + if (entryPointVersion === '0.8') + return hashTypedData( + getUserOperationTypedData({ + chainId, + entryPointAddress, + userOperation, + }), + ) + const packedUserOp = (() => { if (entryPointVersion === '0.6') { + const factory = userOperation.initCode?.slice(0, 42) as Hex + const factoryData = userOperation.initCode?.slice(42) as Hex | undefined + const initCode = getInitCode({ + authorization, + factory, + factoryData, + }) return encodeAbiParameters( [ { type: 'address' }, @@ -57,51 +75,20 @@ export function getUserOperationHash< [ sender, nonce, - keccak256(initCode ?? '0x'), - keccak256(callData ?? '0x'), + keccak256(initCode), + keccak256(callData), callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas, - keccak256(paymasterAndData ?? '0x'), + keccak256(paymasterAndData), ], ) } if (entryPointVersion === '0.7') { - const accountGasLimits = concat([ - pad(numberToHex(userOperation.verificationGasLimit), { size: 16 }), - pad(numberToHex(userOperation.callGasLimit), { size: 16 }), - ]) - const callData_hashed = keccak256(callData) - const gasFees = concat([ - pad(numberToHex(userOperation.maxPriorityFeePerGas), { size: 16 }), - pad(numberToHex(userOperation.maxFeePerGas), { size: 16 }), - ]) - const initCode_hashed = keccak256( - userOperation.factory && userOperation.factoryData - ? concat([userOperation.factory, userOperation.factoryData]) - : '0x', - ) - const paymasterAndData_hashed = keccak256( - userOperation.paymaster - ? concat([ - userOperation.paymaster, - pad( - numberToHex(userOperation.paymasterVerificationGasLimit || 0), - { - size: 16, - }, - ), - pad(numberToHex(userOperation.paymasterPostOpGasLimit || 0), { - size: 16, - }), - userOperation.paymasterData || '0x', - ]) - : '0x', - ) - + const packedUserOp = toPackedUserOperation(userOperation) return encodeAbiParameters( [ { type: 'address' }, @@ -114,14 +101,14 @@ export function getUserOperationHash< { type: 'bytes32' }, ], [ - sender, - nonce, - initCode_hashed, - callData_hashed, - accountGasLimits, - preVerificationGas, - gasFees, - paymasterAndData_hashed, + packedUserOp.sender, + packedUserOp.nonce, + keccak256(packedUserOp.initCode), + keccak256(packedUserOp.callData), + packedUserOp.accountGasLimits, + packedUserOp.preVerificationGas, + packedUserOp.gasFees, + keccak256(packedUserOp.paymasterAndData), ], ) } diff --git a/src/account-abstraction/utils/userOperation/getUserOperationTypedData.test.ts b/src/account-abstraction/utils/userOperation/getUserOperationTypedData.test.ts new file mode 100644 index 0000000000..4aa05dec54 --- /dev/null +++ b/src/account-abstraction/utils/userOperation/getUserOperationTypedData.test.ts @@ -0,0 +1,266 @@ +import { describe, expect, test } from 'vitest' +import { getUserOperationTypedData } from './getUserOperationTypedData.js' + +describe('entryPoint: 0.8', () => { + test('default', () => { + expect( + getUserOperationTypedData({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + }, + }), + ).toMatchInlineSnapshot( + ` + { + "domain": { + "chainId": 1, + "name": "ERC4337", + "verifyingContract": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108", + "version": "1", + }, + "message": { + "accountGasLimits": "0x0000000000000000000000000069ed750000000000000000000000000069ed75", + "callData": "0x", + "gasFees": "0x0000000000000000000000000000004500000000000000000000000000010f2c", + "initCode": "0x", + "nonce": 0n, + "paymasterAndData": "0x", + "preVerificationGas": 6942069n, + "sender": "0x1234567890123456789012345678901234567890", + "signature": "0x", + }, + "primaryType": "PackedUserOperation", + "types": { + "PackedUserOperation": [ + { + "name": "sender", + "type": "address", + }, + { + "name": "nonce", + "type": "uint256", + }, + { + "name": "initCode", + "type": "bytes", + }, + { + "name": "callData", + "type": "bytes", + }, + { + "name": "accountGasLimits", + "type": "bytes32", + }, + { + "name": "preVerificationGas", + "type": "uint256", + }, + { + "name": "gasFees", + "type": "bytes32", + }, + { + "name": "paymasterAndData", + "type": "bytes", + }, + ], + }, + } + `, + ) + }) + + test('args: authorization', () => { + expect( + getUserOperationTypedData({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + paymasterData: '0xdeadbeef', + factory: '0x7702', + factoryData: '0xdeadbeef', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + ` + { + "domain": { + "chainId": 1, + "name": "ERC4337", + "verifyingContract": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108", + "version": "1", + }, + "message": { + "accountGasLimits": "0x0000000000000000000000000069ed750000000000000000000000000069ed75", + "callData": "0x", + "gasFees": "0x0000000000000000000000000000004500000000000000000000000000010f2c", + "initCode": "0x1234567890123456789012345678901234567890deadbeef", + "nonce": 0n, + "paymasterAndData": "0x12345678901234567890123456789012345678900000000000000000000000000069ed750000000000000000000000000069ed75deadbeef", + "preVerificationGas": 6942069n, + "sender": "0x1234567890123456789012345678901234567890", + "signature": "0x", + }, + "primaryType": "PackedUserOperation", + "types": { + "PackedUserOperation": [ + { + "name": "sender", + "type": "address", + }, + { + "name": "nonce", + "type": "uint256", + }, + { + "name": "initCode", + "type": "bytes", + }, + { + "name": "callData", + "type": "bytes", + }, + { + "name": "accountGasLimits", + "type": "bytes32", + }, + { + "name": "preVerificationGas", + "type": "uint256", + }, + { + "name": "gasFees", + "type": "bytes32", + }, + { + "name": "paymasterAndData", + "type": "bytes", + }, + ], + }, + } + `, + ) + + expect( + getUserOperationTypedData({ + chainId: 1, + entryPointAddress: '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', + userOperation: { + callData: '0x', + callGasLimit: 6942069n, + maxFeePerGas: 69420n, + maxPriorityFeePerGas: 69n, + nonce: 0n, + preVerificationGas: 6942069n, + sender: '0x1234567890123456789012345678901234567890', + signature: '0x', + verificationGasLimit: 6942069n, + paymaster: '0x1234567890123456789012345678901234567890', + paymasterVerificationGasLimit: 6942069n, + paymasterPostOpGasLimit: 6942069n, + paymasterData: '0xdeadbeef', + factory: '0x7702', + authorization: { + address: '0x1234567890123456789012345678901234567890', + chainId: 1, + nonce: 0, + yParity: 0, + r: '0x0000000000000000000000000000000000000000000000000000000000000000', + s: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }), + ).toMatchInlineSnapshot( + ` + { + "domain": { + "chainId": 1, + "name": "ERC4337", + "verifyingContract": "0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108", + "version": "1", + }, + "message": { + "accountGasLimits": "0x0000000000000000000000000069ed750000000000000000000000000069ed75", + "callData": "0x", + "gasFees": "0x0000000000000000000000000000004500000000000000000000000000010f2c", + "initCode": "0x1234567890123456789012345678901234567890", + "nonce": 0n, + "paymasterAndData": "0x12345678901234567890123456789012345678900000000000000000000000000069ed750000000000000000000000000069ed75deadbeef", + "preVerificationGas": 6942069n, + "sender": "0x1234567890123456789012345678901234567890", + "signature": "0x", + }, + "primaryType": "PackedUserOperation", + "types": { + "PackedUserOperation": [ + { + "name": "sender", + "type": "address", + }, + { + "name": "nonce", + "type": "uint256", + }, + { + "name": "initCode", + "type": "bytes", + }, + { + "name": "callData", + "type": "bytes", + }, + { + "name": "accountGasLimits", + "type": "bytes32", + }, + { + "name": "preVerificationGas", + "type": "uint256", + }, + { + "name": "gasFees", + "type": "bytes32", + }, + { + "name": "paymasterAndData", + "type": "bytes", + }, + ], + }, + } + `, + ) + }) +}) diff --git a/src/account-abstraction/utils/userOperation/getUserOperationTypedData.ts b/src/account-abstraction/utils/userOperation/getUserOperationTypedData.ts new file mode 100644 index 0000000000..8c8366e751 --- /dev/null +++ b/src/account-abstraction/utils/userOperation/getUserOperationTypedData.ts @@ -0,0 +1,49 @@ +import type { Address } from 'abitype' + +import type { TypedDataDefinition } from '../../../types/typedData.js' +import type { UserOperation } from '../../types/userOperation.js' +import { toPackedUserOperation } from './toPackedUserOperation.js' + +export type GetUserOperationTypedDataParameters = { + chainId: number + entryPointAddress: Address + userOperation: UserOperation<'0.8'> +} + +export type GetUserOperationTypedDataReturnType = TypedDataDefinition< + typeof types, + 'PackedUserOperation' +> + +const types = { + PackedUserOperation: [ + { type: 'address', name: 'sender' }, + { type: 'uint256', name: 'nonce' }, + { type: 'bytes', name: 'initCode' }, + { type: 'bytes', name: 'callData' }, + { type: 'bytes32', name: 'accountGasLimits' }, + { type: 'uint256', name: 'preVerificationGas' }, + { type: 'bytes32', name: 'gasFees' }, + { type: 'bytes', name: 'paymasterAndData' }, + ], +} as const + +export function getUserOperationTypedData( + parameters: GetUserOperationTypedDataParameters, +): GetUserOperationTypedDataReturnType { + const { chainId, entryPointAddress, userOperation } = parameters + + const packedUserOp = toPackedUserOperation(userOperation) + + return { + types, + primaryType: 'PackedUserOperation', + domain: { + name: 'ERC4337', + version: '1', + chainId, + verifyingContract: entryPointAddress, + }, + message: packedUserOp, + } +} diff --git a/src/account-abstraction/utils/userOperation/toPackedUserOperation.ts b/src/account-abstraction/utils/userOperation/toPackedUserOperation.ts index 0fbdeb1e62..f9bccafd84 100644 --- a/src/account-abstraction/utils/userOperation/toPackedUserOperation.ts +++ b/src/account-abstraction/utils/userOperation/toPackedUserOperation.ts @@ -5,6 +5,7 @@ import type { PackedUserOperation, UserOperation, } from '../../types/userOperation.js' +import { getInitCode } from './getInitCode.js' export function toPackedUserOperation( userOperation: UserOperation, @@ -12,8 +13,6 @@ export function toPackedUserOperation( const { callGasLimit, callData, - factory, - factoryData, maxPriorityFeePerGas, maxFeePerGas, paymaster, @@ -29,8 +28,7 @@ export function toPackedUserOperation( pad(numberToHex(verificationGasLimit || 0n), { size: 16 }), pad(numberToHex(callGasLimit || 0n), { size: 16 }), ]) - const initCode = - factory && factoryData ? concat([factory, factoryData]) : '0x' + const initCode = getInitCode(userOperation) const gasFees = concat([ pad(numberToHex(maxPriorityFeePerGas || 0n), { size: 16 }), pad(numberToHex(maxFeePerGas || 0n), { size: 16 }), diff --git a/src/actions/ens/getEnsAddress.test.ts b/src/actions/ens/getEnsAddress.test.ts index 85981751f7..b88a7072f1 100644 --- a/src/actions/ens/getEnsAddress.test.ts +++ b/src/actions/ens/getEnsAddress.test.ts @@ -87,8 +87,8 @@ test('name with resolver that does not support addr - strict', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x07766974616c696b0365746800, 0x3b3b57deee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x07766974616c696b0365746800, 0x3b3b57deee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] @@ -247,8 +247,8 @@ test('invalid universal resolver address', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x0661776b7765620365746800, 0x3b3b57de52d0f5fbf348925621be297a61b88ec492ebbbdfa9477d82892e2786020ad61c) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x0661776b7765620365746800, 0x3b3b57de52d0f5fbf348925621be297a61b88ec492ebbbdfa9477d82892e2786020ad61c, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] diff --git a/src/actions/ens/getEnsAddress.ts b/src/actions/ens/getEnsAddress.ts index c2e5f0b131..64772069f4 100644 --- a/src/actions/ens/getEnsAddress.ts +++ b/src/actions/ens/getEnsAddress.ts @@ -24,6 +24,7 @@ import { import { type TrimErrorType, trim } from '../../utils/data/trim.js' import { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js' import { isNullUniversalResolverError } from '../../utils/ens/errors.js' +import { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js' import { type NamehashErrorType, namehash } from '../../utils/ens/namehash.js' import { type PacketToBytesErrorType, @@ -128,19 +129,18 @@ export async function getEnsAddress( address: universalResolverAddress, abi: universalResolverResolveAbi, functionName: 'resolve', - args: [toHex(packetToBytes(name)), functionData], + args: [ + toHex(packetToBytes(name)), + functionData, + gatewayUrls ?? [localBatchGatewayUrl], + ], blockNumber, blockTag, } as const const readContractAction = getAction(client, readContract, 'readContract') - const res = gatewayUrls - ? await readContractAction({ - ...readContractParameters, - args: [...readContractParameters.args, gatewayUrls], - }) - : await readContractAction(readContractParameters) + const res = await readContractAction(readContractParameters) if (res[0] === '0x') return null diff --git a/src/actions/ens/getEnsName.test.ts b/src/actions/ens/getEnsName.test.ts index e2a24bccad..844861c9dc 100644 --- a/src/actions/ens/getEnsName.test.ts +++ b/src/actions/ens/getEnsName.test.ts @@ -10,7 +10,7 @@ import { createClient, encodeErrorResult, encodeFunctionResult, -} from '~viem/index.js' +} from '~zkr-viem/index.js' import { anvilMainnet } from '../../../test/src/anvil.js' import { optimism } from '../../chains/index.js' import { http } from '../../clients/transports/http.js' diff --git a/src/actions/ens/getEnsText.test.ts b/src/actions/ens/getEnsText.test.ts index 89b7451f01..3ed8973bfa 100644 --- a/src/actions/ens/getEnsText.test.ts +++ b/src/actions/ens/getEnsText.test.ts @@ -11,7 +11,7 @@ import { encodeErrorResult, encodeFunctionResult, parseAbi, -} from '~viem/index.js' +} from '~zkr-viem/index.js' import { reset } from '../test/reset.js' import { getEnsText } from './getEnsText.js' @@ -81,8 +81,8 @@ test('name with resolver that does not support text() - strict', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x07766974616c696b0365746800, 0x59d1d43cee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a534758350000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x07766974616c696b0365746800, 0x59d1d43cee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a534758350000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] @@ -112,8 +112,8 @@ test('name without resolver - strict', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x1072616e646f6d313232333233323232320365746800, 0x59d1d43c08e69c7f3b86ec46d8fb6fcebf6b6512306f0171375c6309b751a585ab24864b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x1072616e646f6d313232333233323232320365746800, 0x59d1d43c08e69c7f3b86ec46d8fb6fcebf6b6512306f0171375c6309b751a585ab24864b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] @@ -142,8 +142,8 @@ test('name with non-contract resolver - strict', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x08766275746572696e0365746800, 0x59d1d43c133a0d6e787307c1bdb6a3cde083ac5096ad9d67298908427642512fa2f6aa4f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x08766275746572696e0365746800, 0x59d1d43c133a0d6e787307c1bdb6a3cde083ac5096ad9d67298908427642512fa2f6aa4f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] @@ -239,8 +239,8 @@ describe('universal resolver with generic errors', () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x1072616e646f6d313232333233323232320365746800, 0x59d1d43c08e69c7f3b86ec46d8fb6fcebf6b6512306f0171375c6309b751a585ab24864b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x1072616e646f6d313232333233323232320365746800, 0x59d1d43c08e69c7f3b86ec46d8fb6fcebf6b6512306f0171375c6309b751a585ab24864b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] @@ -315,8 +315,8 @@ test('invalid universal resolver address', async () => { Contract Call: address: 0x0000000000000000000000000000000000000000 - function: resolve(bytes name, bytes data) - args: (0x097761676d692d6465760365746800, 0x59d1d43cf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a7478013590000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000) + function: resolve(bytes name, bytes data, string[] gateways) + args: (0x097761676d692d6465760365746800, 0x59d1d43cf246651c1b9a6b141d19c2604e9a58f567973833990f830d882534a7478013590000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b636f6d2e74776974746572000000000000000000000000000000000000000000, ["x-batch-gateway:true"]) Docs: https://viem.sh/docs/contract/readContract Version: viem@x.y.z] diff --git a/src/actions/ens/getEnsText.ts b/src/actions/ens/getEnsText.ts index caad1177a7..a104786c4d 100644 --- a/src/actions/ens/getEnsText.ts +++ b/src/actions/ens/getEnsText.ts @@ -22,6 +22,7 @@ import { } from '../../utils/chain/getChainContractAddress.js' import { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js' import { isNullUniversalResolverError } from '../../utils/ens/errors.js' +import { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js' import { type NamehashErrorType, namehash } from '../../utils/ens/namehash.js' import { type PacketToBytesErrorType, @@ -125,6 +126,7 @@ export async function getEnsText( functionName: 'text', args: [namehash(name), key], }), + gatewayUrls ?? [localBatchGatewayUrl], ], blockNumber, blockTag, @@ -132,12 +134,7 @@ export async function getEnsText( const readContractAction = getAction(client, readContract, 'readContract') - const res = gatewayUrls - ? await readContractAction({ - ...readContractParameters, - args: [...readContractParameters.args, gatewayUrls], - }) - : await readContractAction(readContractParameters) + const res = await readContractAction(readContractParameters) if (res[0] === '0x') return null diff --git a/src/actions/index.test.ts b/src/actions/index.test.ts index 82751cca46..73eac86747 100644 --- a/src/actions/index.test.ts +++ b/src/actions/index.test.ts @@ -35,6 +35,8 @@ test('exports actions', () => { "getBlockNumber": [Function], "getBlockTransactionCount": [Function], "getBytecode": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getCode": [Function], "getContractEvents": [Function], @@ -72,6 +74,7 @@ test('exports actions', () => { "requestPermissions": [Function], "reset": [Function], "revert": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], "sendUnsignedTransaction": [Function], @@ -89,6 +92,7 @@ test('exports actions', () => { "setNonce": [Function], "setRpcUrl": [Function], "setStorageAt": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -104,6 +108,7 @@ test('exports actions', () => { "verifyHash": [Function], "verifyMessage": [Function], "verifyTypedData": [Function], + "waitForCallsStatus": [Function], "waitForTransactionReceipt": [Function], "watchAsset": [Function], "watchBlockNumber": [Function], diff --git a/src/actions/index.ts b/src/actions/index.ts index 95b68eff49..b4ca5254ea 100644 --- a/src/actions/index.ts +++ b/src/actions/index.ts @@ -316,6 +316,37 @@ export { type GetPermissionsReturnType, getPermissions, } from './wallet/getPermissions.js' +export { + type GetCapabilitiesParameters, + type GetCapabilitiesErrorType, + type GetCapabilitiesReturnType, + getCapabilities, +} from './wallet/getCapabilities.js' +export { + type SendCallsErrorType, + type SendCallsParameters, + type SendCallsReturnType, + sendCalls, +} from './wallet/sendCalls.js' +export { + type GetCallsStatusErrorType, + type GetCallsStatusParameters, + type GetCallsStatusReturnType, + getCallsStatus, +} from './wallet/getCallsStatus.js' +export { + type ShowCallsStatusErrorType, + type ShowCallsStatusParameters, + type ShowCallsStatusReturnType, + showCallsStatus, +} from './wallet/showCallsStatus.js' +export { + type WaitForCallsStatusErrorType, + type WaitForCallsStatusParameters, + type WaitForCallsStatusReturnType, + type WaitForCallsStatusTimeoutErrorType, + waitForCallsStatus, +} from './wallet/waitForCallsStatus.js' export { type GetProofErrorType, type GetProofParameters, diff --git a/src/actions/public/call.test.ts b/src/actions/public/call.test.ts index bb2248c03d..8bc452e0e2 100644 --- a/src/actions/public/call.test.ts +++ b/src/actions/public/call.test.ts @@ -7,6 +7,7 @@ import { } from '~contracts/generated.js' import { baycContractConfig, + multicall3ContractConfig, usdcContractConfig, wagmiContractConfig, } from '~test/src/abis.js' @@ -51,6 +52,7 @@ const wagmiContractAddress = '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2' const name4bytes = '0x06fdde03' const mint4bytes = '0x1249c58b' const mintWithParams4bytes = '0xa0712d68' +const getCurrentBlockTimestamp4bytes = '0x0f28c97d' const fourTwenty = '00000000000000000000000000000000000000000000000000000000000001a4' const sixHundred = @@ -200,6 +202,16 @@ test('args: override', async () => { ) }) +test.skip('args: blockOverrides', async () => { + // TODO: don't skip once block overrides are supported in Anvil. + const { data } = await call(client, { + data: getCurrentBlockTimestamp4bytes, + code: multicall3ContractConfig.bytecode, + blockOverrides: { time: 420n }, + }) + expect(data).toMatchInlineSnapshot(fourTwenty) +}) + test.skip('args: blobs', async () => { // TODO: migrate to `client` once 4844 is supported in Anvil. const blobs = toBlobs({ data: stringToHex(blobData) }) @@ -423,14 +435,14 @@ describe('errors', () => { }), ).rejects.toThrowErrorMatchingInlineSnapshot( ` - [CallExecutionError: Execution reverted with reason: revert: Token ID is taken. + [CallExecutionError: Execution reverted with reason: Token ID is taken. Raw Call Arguments: from: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 to: 0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2 data: 0xa0712d6800000000000000000000000000000000000000000000000000000000000001a4 - Details: execution reverted: revert: Token ID is taken + Details: execution reverted: Token ID is taken Version: viem@x.y.z] `, ) diff --git a/src/actions/public/call.ts b/src/actions/public/call.ts index aa401c061e..886e1e0394 100644 --- a/src/actions/public/call.ts +++ b/src/actions/public/call.ts @@ -1,4 +1,5 @@ import { type Address, parseAbi } from 'abitype' +import * as BlockOverrides from 'ox/BlockOverrides' import type { Account } from '../../accounts/types.js' import { @@ -83,6 +84,8 @@ export type CallParameters< account?: Account | Address | undefined /** Whether or not to enable multicall batching on this call. */ batch?: boolean | undefined + /** Block overrides for the call. */ + blockOverrides?: BlockOverrides.BlockOverrides | undefined /** Bytecode to perform the call on. */ code?: Hex | undefined /** Contract deployment factory address (ie. Create2 factory, Smart Account factory, etc). */ @@ -159,6 +162,7 @@ export async function call( blockTag = 'latest', accessList, blobs, + blockOverrides, code, data: data_, factory, @@ -208,9 +212,13 @@ export async function call( try { assertRequest(args as AssertRequestParameters) - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag + const rpcBlockOverrides = blockOverrides + ? BlockOverrides.toRpc(blockOverrides) + : undefined const rpcStateOverride = serializeStateOverride(stateOverride) const chainFormat = client.chain?.formatters?.transactionRequest?.format @@ -233,7 +241,12 @@ export async function call( value, } as TransactionRequest) as TransactionRequest - if (batch && shouldPerformMulticall({ request }) && !rpcStateOverride) { + if ( + batch && + shouldPerformMulticall({ request }) && + !rpcStateOverride && + !rpcBlockOverrides + ) { try { return await scheduleMulticall(client, { ...request, @@ -249,15 +262,21 @@ export async function call( } } + const params = (() => { + const base = [ + request as ExactPartial, + block, + ] as const + if (rpcStateOverride && rpcBlockOverrides) + return [...base, rpcStateOverride, rpcBlockOverrides] as const + if (rpcStateOverride) return [...base, rpcStateOverride] as const + if (rpcBlockOverrides) return [...base, {}, rpcBlockOverrides] as const + return base + })() + const response = await client.request({ method: 'eth_call', - params: rpcStateOverride - ? [ - request as ExactPartial, - block, - rpcStateOverride, - ] - : [request as ExactPartial, block], + params, }) if (response === '0x') return { data: undefined } return { data: response } @@ -347,7 +366,8 @@ async function scheduleMulticall( }) } - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag const { schedule } = createBatchScheduler({ diff --git a/src/actions/public/createAccessList.test.ts b/src/actions/public/createAccessList.test.ts index d4f3f63d0a..8f3d0d0369 100644 --- a/src/actions/public/createAccessList.test.ts +++ b/src/actions/public/createAccessList.test.ts @@ -32,7 +32,7 @@ test('default', async () => { test('args: blockNumber', async () => { const result = await createAccessList(client, { - blockNumber: 17080000n, + blockNumber: 22263623n, data: encodeFunctionData({ abi: wagmiContractConfig.abi, functionName: 'name', @@ -41,7 +41,14 @@ test('args: blockNumber', async () => { }) expect(result).toMatchInlineSnapshot(` { - "accessList": [], + "accessList": [ + { + "address": "0xfba3912ca04dd458c843e2ee08967fc04f3579c2", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + ], + }, + ], "gasUsed": 26671n, } `) @@ -58,13 +65,13 @@ test('behavior: revert', async () => { to: wagmiContractConfig.address, }), ).rejects.toMatchInlineSnapshot(` - [CallExecutionError: Execution reverted with reason: revert: ERC721: operator query for nonexistent token. + [CallExecutionError: Execution reverted with reason: ERC721: operator query for nonexistent token. Raw Call Arguments: to: 0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2 data: 0x42842e0e000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c80000000000000000000000000000000000000000000000000de0b6b3a7640000 - Details: execution reverted: revert: ERC721: operator query for nonexistent token + Details: execution reverted: ERC721: operator query for nonexistent token Version: viem@x.y.z] `) }) diff --git a/src/actions/public/createAccessList.ts b/src/actions/public/createAccessList.ts index 6367f5a930..b220c6930d 100644 --- a/src/actions/public/createAccessList.ts +++ b/src/actions/public/createAccessList.ts @@ -120,7 +120,8 @@ export async function createAccessList( try { assertRequest(args as AssertRequestParameters) - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag const chainFormat = client.chain?.formatters?.transactionRequest?.format diff --git a/src/actions/public/estimateFeesPerGas.test.ts b/src/actions/public/estimateFeesPerGas.test.ts index 3ff1c8bb62..17d7ebc232 100644 --- a/src/actions/public/estimateFeesPerGas.test.ts +++ b/src/actions/public/estimateFeesPerGas.test.ts @@ -5,7 +5,7 @@ import { mainnet } from '../../chains/index.js' import { createPublicClient } from '../../clients/createPublicClient.js' import { http } from '../../clients/transports/http.js' -import { createTestClient } from '~viem/index.js' +import { createTestClient } from '~zkr-viem/index.js' import { estimateFeesPerGas, internal_estimateFeesPerGas, diff --git a/src/actions/public/estimateGas.ts b/src/actions/public/estimateGas.ts index b876b54604..b8905c5a33 100644 --- a/src/actions/public/estimateGas.ts +++ b/src/actions/public/estimateGas.ts @@ -136,7 +136,8 @@ export async function estimateGas< account?.type === 'local' ? undefined : ['blobVersionedHashes'], } as PrepareTransactionRequestParameters)) as EstimateGasParameters - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag const rpcStateOverride = serializeStateOverride(stateOverride) diff --git a/src/actions/public/getBalance.ts b/src/actions/public/getBalance.ts index 4659f11857..d99948b774 100644 --- a/src/actions/public/getBalance.ts +++ b/src/actions/public/getBalance.ts @@ -73,7 +73,8 @@ export async function getBalance( client: Client, { address, blockNumber, blockTag = 'latest' }: GetBalanceParameters, ): Promise { - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const balance = await client.request({ method: 'eth_getBalance', diff --git a/src/actions/public/getBlock.test.ts b/src/actions/public/getBlock.test.ts index 28e0a24eeb..456fe9458b 100644 --- a/src/actions/public/getBlock.test.ts +++ b/src/actions/public/getBlock.test.ts @@ -116,389 +116,295 @@ describe('args: blockNumber', () => { }) expect(block).toMatchInlineSnapshot(` { - "baseFeePerGas": 556703106n, - "blobGasUsed": 524288n, + "baseFeePerGas": 638630382n, + "blobGasUsed": 786432n, "difficulty": 0n, - "excessBlobGas": 0n, - "extraData": "0x6265617665726275696c642e6f7267", + "excessBlobGas": 1179648n, + "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", "gasLimit": 36000000n, - "gasUsed": 23718021n, - "hash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "logsBloom": "0xfeab77f9ebbff3ffdedceefebffbf67fefffbde77ffbfffffffdff57fff2ffe3ff73ff7f3ff97fefdfdefffeeffeaf9bef7ffafddffefff57ff5777f5f6fbf5fffb7f7efd677fbfffadfffbfffebdafeffa4fffffdffbbffff771d76bdff7fff7f735fbdfbe3f9f7f754fdf9ee753ebdbffe2ddeffb76cfdbf6b7ffe8bffb7fffffcbffbdfffdbafeffdffebbffeefffffdfdfe7ffffdedfffb3ffdf9bf9eebebf7daffbffbf7fef7fbe5ffdbdffdcddfefdffbbfbfee6efedefaffb2fbdcbffbbfffdfa7dffaffbbffccff7fdffdbfeffff2fefbfef14f8ffff79ff2cfcebffeff7bfffff2fddffdffdbbf8f9b6fbf6dfffdf7fdbfdfeeeffdfbffe6f6fffef", - "miner": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", - "mixHash": "0xf073d9b5001b6101d889fb36b48ffd6fc4917273e13dc145baaedf8037b0e06e", + "gasUsed": 17334457n, + "hash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "logsBloom": "0xcda3b1e63155a898a93999e387a05eb1b1cbfb76c4616163a28b881936d3c7d71849480530edf32ce4361bc50ea6cd053ef9b2a2beee76a443ddf666042e96d926f5854a32958b2eea5052dc0c704de92b8759b9117f7ea13c31da7ec8679653104a5780fb7e22f23d0c9d27ac26b8cca26e7dbe143c5670960450be989e97359822a41d0d4ad1dea8cb3beade73042aa90187e36506e40d27222dc641bf75bb9f69f46493b0a8a0585951e0d089c6f5169459df9faed8a96bf2cf3e46aa597d67509cbad50ecef967990fb24f3bf8f60effa67f776f0c9b64cc0b2aa1b26fe39717ac7fe7343432127d7614b5d23bd29572d1044b2f80c0ff2ec1dd20dbe49d", + "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "mixHash": "0xa1ff4358dc937c824424ce1271cd648e537acea45e05f2469dda6e1298cb20b9", "nonce": "0x0000000000000000", - "number": 22180096n, - "parentBeaconBlockRoot": "0xca1d53a0c315d2a56d441b61eb4954f889ad633128ac6ac428dcc7301b689f99", - "parentHash": "0x52d48f5fcc8cc64b880d1c60ca30450c34c7f2921ed3ea81f736a7b3623e3763", - "receiptsRoot": "0x4f11ed7dfb80e2b440c75a952457edc28aea2364afad8a51d717a7ef4b808116", + "number": 22263622n, + "parentBeaconBlockRoot": "0xc469f9aab4da404f6a81a44e9b4396b0e612ddc9d997a9f7cef600e28277064a", + "parentHash": "0xbdcf8d6c1b3f3da147a760db3a13747580369054ab84d65fef01da26b992a678", + "receiptsRoot": "0xd63f3521779ec6e06e309d19cc99851bdaa0728c74e9d46e0f121c973e7a0c61", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": 157292n, - "stateRoot": "0xcd41dd77206a202ec059270685c6119a80bdfd43dc2b3f34876733589abba3e8", - "timestamp": 1743583271n, + "size": 168825n, + "stateRoot": "0xc77f77fae13e4710d82decb78a620f46a4fb832d64f6c832fee3a46ce4713098", + "timestamp": 1744590287n, "totalDifficulty": null, "transactions": [ - "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", - "0x69ddbf53482ed9eb3fad596829e45257ce2f5a0e1b4c6deae01ee09d7115bc96", - "0xe0ec5857258d37d07cad51648242b6a08d31042ef371c94e88746558750c8a1f", - "0xc0459020483568da3dca876a3f000aedcf61371fec49d45d50d950c546015075", - "0x3a82f4efded90a0887f0cbdcb842fb38eca709533ed13645f575d595be1cd292", - "0x9aa2d7883ecad03486e60f9a8df53fb6b6e0649cd604c513c55420b4fcc4cfea", - "0xf110781221d72dc2ff57a409587e08fa2cf256ff581e97d250d7c234acbca4c2", - "0xfc169bff1374b542df18c616b8aab0a952afd263debf67aa74518f916feb7cd1", - "0x2352b97a88250e7a0bcca9b57187215a77036abbfd5bbdfe321961478c7d5011", - "0xed25bce4ea8f4a396e6e50b8bd5bc40c74600b2544d300ea2d0ff34f2829bdb7", - "0x07fd77e40cb895db36e02e6717e887ca1ac7e4690f0ca30cca8cd408978f3404", - "0xc097b51151a07e0f3ff1eb0a22711eac86450a575e384e5b0fa5b7342f2bda65", - "0x70f8bde4374237e0050cd882c17c9f0196e20102e9e35963f6934fbc630d190d", - "0x15b3d0499cd3ac0378b1001de16afeed967b0bfbc419d84dafcd3527485a5660", - "0x0f3af329aba384eb24fe9ae50c3b5ec5b7e091261e6790ed6e3ac1a3e7fcf71a", - "0x69ec2b88d39acaa73b48f80928d63e4ef7e757d349785a04b30a58c9b8a20b79", - "0x6833f671c9552d8ab8fa7c9db3f284014ec5492e71c0eb858c2c596955b0ff6f", - "0xa0ed6f048a60e74b65c052a63c79072b05ca7bf76ae40ce7be08e8d5b346de8d", - "0x2d8dc10944387debf68374e6aa0b83c77c5876baa03469b2bc7be813d1a6e506", - "0x7a5d311d4a64f41dcc580851ef984645bdbc6d9c139b8c2d3f669fdd623ad0c7", - "0xaf82913d6af8ce144a6dd86c9c39253f15b5a687bc3ff6e87e356c83f8b79b1a", - "0x299f655c1ec17e764ef766c2463ccd95b5aeca1619cea77fe1a52abbdc074efe", - "0x606808f9f74b6916ed00e027173340d848a3e6c4495e4d14339dcc38e03a13cc", - "0x839552a7a20a249d05750c5ed8da48e27017a757181babaf182413f9d6d74a7a", - "0x3635ef1d92ec27cfa5eec38ed7e31ff5a8d527f475e51d2d7fe8a23d4c421815", - "0x9e5a53ae81a0dcec282555650ea4a9acd7a4fbe169ded6a3f7ed2a14b43a759e", - "0xaaf36423b2224f45d9cfffd97584a25e46d2c10cecd7709543118d457952f9a1", - "0xbc020b70a2c5322ff2c7be84140e22caae81f1aaa39bee7114642c190b7e6c69", - "0x38a186930dd07bd5fef9a6abd9c4d163555145935204d0d4e96fd2b130a5598e", - "0x15694510c429df140aac2c97c070edbd3ade7d5f9139276f6e2cfcf7c81a8d2c", - "0xfab1d4e19114a34f5b989825066c50121f60e870383c1b3019aaf6b914f05006", - "0xb3ae62706d2baf9e67017bf3e989fe26e29c77bbe987c24d8336daa977a1f454", - "0xddebad407c74405e74120370008f1bdcf5e6f8d4a44691e4130c1aa04810e5b1", - "0x243fb860ab695d420bf57c0fad9149200e7ebcd8f33f8ecc976c797e36632e4b", - "0x76194b708dc02893aec55fa925f3b3fada7f3541f9985ca8d919c6bb9c4ee8ec", - "0xa1aa1d3ef46f21568e7e9825f824a0cb6e568ce7495a1474d118e4ed56efd892", - "0x8bc30f2a69811a6f51d6dd1ca456bfd82a0897d4fbe25bca110dbdc980540342", - "0xf28f61ad95bef578d9bed317a57d5673f55855d1a8839bf6dfce83bb2816254e", - "0xdf32dce2b025155f54eef2ae4171516563963bb9917a359d6867ca8b4d99f83e", - "0xc827d2bb6e28fb80ae7a54358e11b8c6045da15937b55e0449f9f18dccbd6f91", - "0xf2862406f8140f9b87be64bd7f4e07819755d422dea18e345a177244fdfaa776", - "0x9a270b63adc7d116d76569f0d62d7f1ed4c953b092117513abe938893b63a429", - "0x26cffa9d1ce1a10c24879c7f572ba9c06023d8be4cf8eb9e7dc5a89afbfbefc7", - "0x141b773352de3d2d5e8adfe35871a3f4a9eda979101f318e24274cf8049c7999", - "0xec4f1ae56b422dac9f85efa00f8459c175bdcdd48b653f4e06fcc9605cd4599d", - "0x83e1ec0278752233b112e2fb3770b31e7ef425831e8aec9d4882d76593401854", - "0x5d77d78deccd13887e954c6c22e31c28a1a540ef5e1c22a30eef5dbb14534802", - "0x5ab01b3e72450a7a4468aa35bc960650a60933899d855b14e722a6494f13ae39", - "0x634754269a38c561da0d524b567758ea28ce77a350389969903731a312c928de", - "0xac0b40779ae6ac8294f2178cb06fd9277cde52d14422e83d2c5c1e024653b781", - "0x822b8b84dee769e5c3e3ce958603a18bcd19f93fec5dfde38b7673983091c96d", - "0x5bf500cb71d5317e67786aa46b64295ff6550506582e22e6cce716b60fc00b32", - "0x48191a23265db5445f6b9c4b4d7a36df1659082e03e99a8a3a186829b616348c", - "0x1bdde1c38e628d4e93a550a4d97322b8dec59e8096f4bc8da3df963282c8b280", - "0xd1f972c887e4445e1267d78c91c6c9b5f402629fed3fbd584f01f2ea48c79fa0", - "0xfb65896d157991869132aee933f1ab9041f9bbbe34d194a73376ed86ea385425", - "0x74f9f5b52c417d5e406d29f91099575d83ebd3104e0535e7327d41897a64b7ed", - "0x8b3831518d4dcc53bc64175b0afea32f93431d43b142b96ecbd6bb3f2011a99a", - "0xfcf49a900634a5ed4b36d9510c4b26f104757a254c1759517a19cda68d4c2646", - "0x11db35659111e84bd178112cdbac12d64504363eb73fb0b8e1f69db1a01fe4cd", - "0x0cbff1b4400f5ede67b787cc383c51c99005f38e5ad16ea035f4fbe4c1fd46c6", - "0x76484b1b67d8889c22a9e2617f71fb14147580f640a572a77ace482865300291", - "0x87de188d855e3da8127b2708c983d41485aa5fcf0a3dbf2a392d9970099be5d9", - "0x1dc2970515117b76476ae138b50b22e356ebbb33e7846a9d75680ebb9f5bcd24", - "0x59f9707c8e234b65f817400dccb67dac4c34177952090ea40923153e97156d08", - "0xddb872871b7f3a9dde278154bdb334df251b084462ecb07c56f48cab6752a4cc", - "0x09de724e3f812aa68d7efdaf19275ce263bb2f4134e25b9e1ce429f663c34ccf", - "0xd0bb07d7f4d45d9eb54510ee66aece5fb7aa785c8fc45eb5b4684e4dc7d814ab", - "0xef08a741f3afa32ad811846d6d2aad4f24ad1c3412147d97eef0af23a790de52", - "0xb0d7ca53d703b0113b7272ff395ae3a68973c2808feb9d9ca0198ad1e50ac600", - "0xf299665e6b79c5e0b5a3e69bb28d0562ed9957a0bd7d51f80a1f72d77fa27278", - "0x84c4c4c40ec803b9d4444b436e0a0f9a2079678c71c19fe1e7f29a2e5b5f490f", - "0x8f619c82c0f356ba082177175747a58b6f992957d9bb51db711757fba50122f4", - "0x033f56825a5c8ee61eec2b25780814ff57efee8e039d8f21d307ad9333d2d3be", - "0x936b112dd719eeeabba69155f7571266f0fe59d33185314fa35352326fd68b96", - "0xdf4138476447c76df8ebb8959d44a9841d0786b0cab1f7fc8f33342f74891abb", - "0x25046811b0972eacf5ae40a01b669180679c05d7ede564d711158b7279919613", - "0x8f1fc37662ffe2bc415c48824f9909e860c7dd4790bf92e98aa252211ea17570", - "0x1c0be789661f599f19fb7962a968f32a3d4a05f417dc4bed784b86b817f726ef", - "0xb3472cbe333ae742e0622afae64762a8636b8f6d21527046ade1050332ccd452", - "0xe23efffa788164b48dffa2f38df9794212a5d5f4e9abb2207ed3b77c6ef3da25", - "0x5cbadb509afb16a3cd949af8890d84d98bdd795b9a9cdd4ffb3dbe750aeff1ce", - "0xe32892452f18c41a3db497343a14e0fb685a3269f4da8c71a14eb5491d10f366", - "0xd6486430a5b0d51d013f35a2c897464361e917363f2ca5b446b984772d562dcd", - "0x12e7a7987f75e1a76d020bc90d24a135ebd37656813f9ea4d9b2ff6d50c1eeb5", - "0x7a086cd3a6e5f8d47ea726a2e67ce15d3b9f967e6ae26e18daa2f0da0fe64b1f", - "0x965dae2b2b3a506f7081115dc0857b72ccd7600a3e026231e7ab68ceb13fed23", - "0x9515cb3387483b30bdff2d3d35d1e60686f1ffbe4e89d983c5711554a3b867ae", - "0x7fa00aa250702dc324896774ae113d53520cffeb5ed9752760cf2b2b5bb9e757", - "0x21f725b8e948ec95ea97e7b56967783e8658d2736678a9509ac7b063d29b2fa7", - "0x45732c494562daeed5b8f4d354cd31f0b7c4125b5bf4161982e0b96c460ecd32", - "0xc4fc6120449f2f4c03361fd983dde17e1f636f723784728d706e231e23b36692", - "0xed33a670d4f8c3c8e0bbd46d2b30aeafa282d2bcc2119c248a4f44e5895c4e47", - "0xd4220157ad2656db7422d66aab994165b8cbe7514f6a14effeed9db174359354", - "0x3313105e49921761b89580cdf6863c5f80886f9ed7fe1b54e85cb6d2bcb048ac", - "0x13fbe931ab0114ebcc425dfc72629a5f402e128bb1172310919d649a9484121c", - "0x64df0cd1693c2fca1bc05dab3b3b8f549436c94a92f26ce5255c036e7c707273", - "0x30bbaaad563f92e9c2be2c602c6b6b9765cd8c8e9e599b334efc4bb4bc795d4f", - "0x4366c0151e4120c0864f2a9b688ec47be83756fefb4deb876b3aadfaf904abde", - "0x9b92a86220a37e4d77e06a26f1b8ec57120d702e0756b8567c6e495a4908719b", - "0xc931ae7d8fbb6272d6584fbd0e392245753120dec6d7bc6d734478dd34e58b24", - "0xc3d47a8a98d8bf771a0c4492b78b48f14734f30d30a3bb95695a1657d83089fe", - "0xb561ff66bbd8d7c0bd6244a6be5e1977073556d2661dd72465314e9cfa5555a0", - "0xdca28aa9376143111039475903f89a6016b8f25ec28a0fcd410cf96285a0da5b", - "0x1df0a9b08d55a52c2f562eb53e0fd258e231737fbc1af61d310d413c9fbbdee5", - "0xfdd9b448d6e5864144bad34d9c10d48157d1eacab7703cc1f3d5ea830f56436a", - "0x569ec62272a6570895287d0c4d3d109a78bc066fd001b18cb4fc68fe6b995357", - "0x01728172a35157c99f730eead31bc04e267cc38080d894a1502d0293e3264d3d", - "0x09754f89f94b75c30b629cf5e3f93550ab6011d063463c9dc70b3f2f24b00f6e", - "0xb614269ec56b0f1ecc23e103705023670cbc0af1ef3f3e7243990d61eb22b6e9", - "0xb27d1362d143ec3a26acfc11a0297808c8fb31bbdd79a54931384a5de70adcc8", - "0x26a39f3d49a78380ceeffdba10a13bb54ce546157ee56607c25af4bae1696f28", - "0x4cf8be94e6a8806b4c1f882fa51c8a7f4ce82d342cbd805d69d9ea7d4d858180", - "0x995ef4cf53e51558ddb1cebd1802738955c65055a5dbb087a792aaf120d1e97f", - "0x7f5b0faefce86e4d602e80214787a40652c234df8f7cf02912fc6e3859cdb847", - "0x18087d347d235463e29dc2fe0da15c5f8f612d8f3ded58ef68284e8d01b72e0a", - "0x83dd88051f11e1e0bb658bdc122e75cde6fbff1801bb580686c28a35e868a671", - "0x7fad852270886a8104c14bbbcf1c1cc81cc708585c3e75bbdd08cae5d9464562", - "0x094cc63c6bba81c9e7c1c2a887bc270e49c4053d7893c825ea0369a1b45f189a", - "0x80166dcdeaa38466ad612fac6afdc6adc2d92f56147ff45e9196b395f580814b", - "0xd1dde9e0502fa4fa5432b43aef62ae5364db0a104376b181dea632476cdf8e80", - "0x5d8f29d6aa92ff3f50823e879b7e9532ea452757dbb282037750eca0ced606db", - "0x144a26c17ad43ea9a1f5d82398b7148ec6bb18a03071a75f1cb3afdd388c13a9", - "0x04d9c2bde88ab4856ce3491ccdc4a1c759a2dfa0001146681a12edf59e797456", - "0x4146c1abb53c4beeb723c212474d640b779548a056598a68c8852ccb1e54d645", - "0x1d77452891d9af7610ef8950db43c3280427530077dae12bcfd41fbe1af653a3", - "0xf5ca08d5080ed6ea6c9ae41df57b7669d7cce6feacc7168e0c51a3ab7b0e502c", - "0xa56a631b48e342f9666736db434f425b92d77a80dbb342797d9ac82f7f42b404", - "0xef2851d2ec8da28595d3229ea10b9d8762e0bc90b1ce89843ed390c824875153", - "0x9b0b30e5b3a9e84d282d87d20c6e99764972872009d00e2661950bd1f085d4bd", - "0xdc14aee112aa911832cc4578b5b5614c0e70a021cb592196f226b4c4726cd906", - "0xc3fafb47071c967e5a1db5f6db32d8e15658b1bc8aa8f16a66df3e049a5d1b84", - "0xb6992783d1369c0d62daf12707fad537699b7e6280de1134e6d7add4500b0f7a", - "0x5f89c48c044aa05cb04cac924b6cf0a80e4bd2c37e07c5d81fcf99558459ca0d", - "0xf69ee17f6c1dca082e02e1077c89571ef2100252bb32cf162e7dc3fc82fe9841", - "0xacf0276d05a501ea26d2b0887232d71947cf62400570de93643e4e8c2e713365", - "0x16fcdcd045d240a3362413b82a2dc1f961ae3fb5e061e85594cb6bb01ff9c01b", - "0x7886be5532a121b88835668bc7a7992ad5e8dbee93e9e49f31ced858cd036ed4", - "0x76d0c3f4c4beb41ac816cde0d681052838828593e2f12766dc033e1b725b359f", - "0xe02c2bee1f5d2a12699d537b67d1494a157264fb9381551f80adbf97bfad404b", - "0xe59ae7fefb5d2b54f1a70781deff8a9396af688365d4db6cdd6e9e86c77c09fe", - "0x180c3f4adb0addd43cedd8be232ff0bb005aa8cddcc67addc3e77599dbc18721", - "0x8f46120e1c9a211354e355afaeee987bc50ad0a40c6d6b5f45f69fc64bc9fef1", - "0x13bd5e26c5936b99d07add30e8ea0a8c2aa448c3941d582eb792551bf054151b", - "0x6d669c716aa001f9b53ebad549c94bdcd36b2c934d7870c14212e7581938543b", - "0x7913741894ccbbcc18ec87bdf5592cbd469d30cfdf211ef83d8364c1cfbb4489", - "0x83d1dae842bddb1df7eb0537445f95cfa5357f83ce848bccf71231fb8461d090", - "0x6820288efef200d986d04c8bf594b4367a5d7283a96c980f99eb9738393cfa14", - "0x001b1d635b9745eda228c813526a872921ef0f9d79768c86f2250f6b302ccff6", - "0xd5235dc8dbfd73456384d37532c5b88b7e363f080af8ad0b25bffef92d5e89e4", - "0x9956a4ce72cf00fea2a08147b726aada8dc847bf7a0478e98c2a7700066085e1", - "0x807c03a6d9575bc89bbc476fdda7365862162311eb8e88f2f4cd5b3e4e4c5d57", - "0x0742b20a46531431c90ba296cc733e7edf45b8510617b14505762f32fe20cf7b", - "0xf6a2ad61bde7e0cfcf53e24827888f797dfcb1ed02620eb63d271cb30e90a255", - "0x61ef129b0e117162d589d8773610167692d44fb8621d713c55b26fba6479370f", - "0xd0b153a1808df7a277ed8fbb5e62f737315a0028a6b8480fe1765d66f1e1985e", - "0x2d6df74eb6853272991e5b3084572a085bc3bc9f3e12e89c74fca37c1430b4ff", - "0xb40fbf0b8c426a8f00f6ba98341f40c9f25c1b3bee787ce296a3b7712f49c4a0", - "0xad61ca359d5fa17ff81fd23af7634db27305ad3ce41efb760fc96e58a2f0a9f9", - "0x9278387b7feb6dae5c26554aa19e23f3ebf6b54e4ce91f32f56fb9940175d256", - "0x4549840928807146e38b0e28b689e2c9919d6844204ced7f43937a50646a2608", - "0x17f382a1499c68d7103a0f034388617213ca9f17dc7b2ec1ca3880a087c4d733", - "0x61e4eae951ae93a97cdeea9fda79b0cb2335a0cffc0c34b3b5ae2fb952825574", - "0xd806ab3fb23485bbc14846b8396c3d0abc6a1f9cead90a2bf0330957592b5301", - "0x9c4e2fb7034f5e5c617d99af114edd1c54bb1439879237c1649148f23aaca9f5", - "0x70151ba9f27689ef41458c369a986ae6417b121b15a233cd680990b6a5ebfbc4", - "0x392be95b063ac777855c2b57d4640df135a85b1a3a590793d4deeeb6d1f63e74", - "0x8f73aadb4e23c5603e889d4cab31e0bcfabc98cee0aa89b832e2a6712c65cd7d", - "0xf1a98c7e1d7f9f757c0de5d2eb9a897557511656fab2b4e2681cb35264e46749", - "0xcd9272da2b0bd6c712d2f8d032ceb7740a59670525e756bfcf433590f31ada83", - "0xf01d6e5f57f5f2869d2609ee962a6eb44505a0ba6809183258b07da59e84fc2a", - "0x9aac90321684a0fa7e4b7018446b1b7e4d1bd921aff61627a9fe156366e19529", - "0x917a58deb1512fd73235cfb3bb4b4a77947dc628a070e3069ee715a612cfe9bd", - "0x09a354fedb9402f6b7798ad5d0c0fc1666484217ecdb4dc1980c948e66098afd", - "0x3187c0b1082c98e88129792ad3bbd6297581bc500e9b1b133f4cd86e5ea8f704", - "0x0d1baab34ef48960af4842abf05d5af52364b01962e95aff550a34a5a3af49f3", - "0xe1974f9bdb018fa79ec5f3fce55b3646fadbf5409d7205dd5fa0d77208976227", - "0xfd114ec55a9c7c43fad47addd70d3b572e29e44bbfa3d08223bc1ebbf6d5e412", - "0x27db4205a0b500f2ae20a1e782dee82e7bf3d4c737ac38aa702bd1d4332172ed", - "0x55346ead2040076495df5abb3567a46fee89e6fd8548626d7dc1648cad8bb3b2", - "0xf758c075a1d9229e5f69cca6fbd5f70f91be31aa7f5091b419e4b4953d94e110", - "0x2e2b0073196e9fecc12ce9c7bfd838684225c2d99deeee2568807ee4f4ab781c", - "0x6fd89dda08b7a8d21761146b3163a04a594d4d4e60a96884617b1206e3013ccc", - "0x40c95b0941d562b9984e81323380894335f70dfee3fcc5a86ecf8416ee61cd89", - "0x10b5f2d3c885398926156789e4b7af7e38edb46c63419b7d11b3521a2d4d0eda", - "0xd6f2c258159961997df0da56abd1cc5cdca8fa347cd26c83f290d68e0ba3868f", - "0x6a15b8178133399d8c3bb78240e0fe127de8e214ef78a9662a1ec1800c03fc77", - "0x4b457f28c756c152d68e6b745ca3405c07b1868024a4867183962b2ffadc711c", - "0x7845d5363e6b45a42a27c81e5ad153703fd94181ee7e0feeaa1e8704f3fb1312", - "0x1306f14d2ac4f63ecf1ecec09acac4e733dc00f46099a09e4c245fbf8a01bce1", - "0x0bec1fa12a543231cb245c9eea5da15ea2a27caed39e2d2afb97d5c56d996ac8", - "0xef8af967a6c842abb93422dd82bfbd4abc5f26a275d7c69318f5ded95d5c5a4e", - "0x740030357bc2f9d63baf645c64400c0a76bf577d64e9e06cd34cb5e3aff71eed", - "0x039ec0facb1fd23e9ca701f5e80a8b76b3453d37e0d26e25dbd28329c4087a9c", - "0x0e7c42f66010d776f4e3ee31118738b7e13edee374cb0861090ea3e31362d8dc", - "0xad35d14d2a69f2a105b8d27acb17741b43818ecafd696d7eedcbe5a7fd3baed2", - "0x3a856c2eb3d09f8104ce6e955663e0ecc2da1240bd3b1788a495f7b477a3eb87", - "0x68980ee6a368be3197d906a263f1b5ba3358412152f61636c3c4dd2a702cd8f0", - "0xa395ddb491f7634e1432daffd9c9b18ca1125bb221a2a1108ae817dde2e6746f", - "0x02ac98e394587f01b64d3a09ff3a144671223ce72735215e12345daa608f6a32", - "0x24de9854060cd44ecc6f83a8a336e162b6a92d244c60da62be2760ccae6cb763", - "0xfc44a8484083449c792d25543620354b3d3f407377b0643515994c2f6cb4dd8e", - "0x29255be819d753621697980ef2b35fbf4193f70ba8b177c9bdc767e8dddf26e1", - "0xac07d80afc80bdce949cd8f756f0b43e91e3ebd88301732976db300b0e78353a", - "0x39fb50fcc1f45f5f3c4f7c047b618967d3bd933e05a377d14fb2d19bf246020b", - "0x8bcb405d0ac4cb7c8b637186f00915906a13e3081bdeb3b93d25e593129ba67c", - "0x0a678ccad967b75dc8b9e7e6c71c93b17bd4f3e8ecaf5c3b24a27338070bdc6a", - "0x162a91cfef3ed8e0f512282025f695d5ec52a94c685dd209a322e9472c648395", - "0x58de9229487cc9c9950284193662e0c400c0e6f20c745270e758b8d9e1feba49", - "0xa3e2b31e2358a7ce6160e0e2b634290ee0290d8ac82ee698cef65b18c4568794", - "0x17712ec987aee705094ce13798b18acefb9bc708ed11fbee3bd8f7abc83af7dc", - "0xb0852dbe3a0f69a0c6312814506befb24ef8d493d56cf9bb32996751301ea59f", - "0x4d5177e7d2ae3c1a50d2f23009e03f944bc3dd37e1ff444f41fa2fa40f7124b9", - "0xdd9b60710839ea30d206b40ae75b1350e51f2ff08b88435c78a7576d07de02b2", - "0x3d55929ce4925f638804d647e38b855c7892b8f2ffbab093462ab7a50901b41c", - "0x7ed63aa99cb8651b3614a67d7070765bde39fee42ea87c894516ff13577364be", - "0xb5e079325f1002388edb81f76693e7cec0cee1af40d205ceee2e097387fa8744", - "0x6a9e6c0c73ecfb256a8dc795d600fbe4717eefb094859d6a3dcd7587fda820e9", - "0xa7b7cf0cc182143d66e3c4583a581d9f7c7ac71396ccc6892c24153336c732e6", - "0x5dfee2e2a5b09ee167ff19009aa324fb3f02de9c51ae3aa28515948610a4f261", - "0xc34f2ccdf849e5dc5eb630aa36c5cdfbb70084b501c428b0aac5e994f5f60580", - "0x4034287b2b95e07231d57181ea26866f99c8d2bbb5397a1fedef7ad2e7a8f1ef", - "0xf871f209a6568fce76f72c2d11a50314d4c8ae9dab30c4a2e7e0406c2e278de5", - "0x11d2c6411a696ea5961a1e692442bdbee21ffc0f0bbd45b82759881a4d447cab", - "0xc4da3c6ff9196d434d4313128a570c02748175289cf2c9850796faaab9195e8a", - "0x99e5dee1e4bcb8af2954e45d5c2d435edc865a6a926757da0bcba4e84cd95223", - "0x920ff4fffa3b2e33d170831dc7dbc70a6b02d931ceb9b48119dc51959c53db43", - "0x32a4aaf3feff31258823eb6f5aa87d07f8ceeb6933bd253eb379d0d9d07c4c47", - "0x6dae9a82302aba57af15348f59e691221096475f82d28fb89f1377f7fc9ab634", - "0xf181cead119d734b5ecf508cbb04f32b2fdcbc9cde5e2378844ebc0f8ea3433f", - "0xd7071352eb05705d6124a4a7f64e60d4c75e7db1041238d2c3012fe131da439a", - "0x1ded7f0113bfbdc49c08eba2144c3986baf2b06a258f92a844d144e04080a771", - "0xd80402073c2c2de02a2e7585dfca3678666dceb751b97524b2c3e253089f5615", - "0x89e71b72119881caf3e7b11996a41c4823c7e8ac71b310573657eedc426aafd8", - "0x363ea625b5019af557f7a5b75959754e163d41c0b8151b05d0d7fc4cfc753869", - "0xc0f5ef78cdb7dcaeca19d5fefc96e2b2c1a12f14075bb327ed0aae89c99b6ef8", - "0x0a4ff45d7bfcd57e156cc29e1a0695264cf936c4d6fca08c1a95c9dc37ecde24", - "0x507f0b83b4ee772b759b5bba22efc1e31c0a405900a273b7f7172b026419b261", - "0x4e0b38ecee0ad823a8c7f765d526d4c61fc921433f069605e44daf5a9812d2f9", - "0xea4b2dbbabc945e3ac13655808d8c8af172597a7a5e3b32946d7ad100b9b8619", - "0xa23004b774501307a452d54fd49720b95dffb953dd2981e9f52fa16bfdeaf8f7", - "0xd1b2763bcd0058dd7a8b84724594a8dd20a5378edbedc604b0b38fa8510e6a78", - "0xe895fd1961ebbd37b993e377bf4b2fbc3e2bd594d2a8cdee2086f6b1bda1818e", - "0x0c2991f9861c446ece378bf22e32bc34c80e6ff3739a7ae6116b332bb19361fc", - "0x0055a7b1bb988d77cb701d3d12befb8cb87a8cf4a8b9ef2ab6dd4a433c7d918c", - "0x3c6beb333b1d13d16d99f0b9b798abe00a871d73f1e0f4865359c0e1f1bb6a74", - "0x01a2311ae6ba288d2b0f5278bdad1b569628642008eb8d0d221244596f002f32", - "0x670a9984707c6d3e5e302171709bfda96be7813a95ecf2bbd6b1bc5e14b5604e", - "0xe3b90a11a66abfe7dbf9c905627e5f9e5d4f57002271bcb3f86a5a628295c3fa", - "0x0d3d4fd477b2f9b2225efda2399bd1913c2de073272850aee452cd372c3861d1", - "0xad881b1cf7a034eefbacebdb7443c7967110b1887d16029b7cc91367c14f5b61", - "0xd4ec2fd4d2e905b94149c56d1eeec86a5dd5413bd3fb074023145ba010f43157", - "0x311f92fa897489e286d7c77dd94808939ed28999da6d99948a8f83907732c1f2", - "0x5764a7c02dac6795435a8a3f1c259ecbe1a86e0f3b030ea2fe5cdb24ab5711c2", - "0x622013193a0eb4ab9020be9cfcad36469880b332493a317ec9d1a1c6166f69e6", - "0x23c9b67cde48c7e25d3e76e188d3df09adfe9e40e6f8c52d4e308f85ad641625", - "0xeabce7193e73a4031351c585b9a59fa73b1958feb803cc2687fbdf116160f663", - "0xd79b721a6210a0bfa1bb00c4c259aef8c8505833125f43897ec1aac4a184f7f7", - "0x4b8eb8e5e4487ced5171e4467a7d70ce1261a1c073bd788c729b26ad8fa28796", + "0x546e80faa036cf6a1788b307a33b42a185f9eb07d99e0f5b87e7bc92c65ddf80", + "0x8341f8eb62e67af4ecd11d3c84996580c9517ca3424a40588b63ecc5c1182f51", + "0x4b3fd6dbad2653f5d0ec04206740dd9e79ebec67f8654a8d30b79cbb5933d954", + "0xb0d42507edef5967699db35aa93893cbe019e7870166575d7d43b4b2473e3dee", + "0xcb6ab0a6f5aaa71f982e99465974d5bbc09634e6fa327f5ea8dd7120827564b2", + "0xb8c7d42351bdab386cca79c60ae3bae78f50e210eb4ae2f08312c17d8cc7a8a5", + "0xd4fb7b6ea1e10196aaf765dfa43d2ab49c522928588464bcfe77eac0a96fb089", + "0xb029e949184740b5e259c2119d60cf83f9d1b1aeb39ce0d185e305a7af38a5fd", + "0x3f4137e51251f8a5131278c989dc5ddc3ab624fb956fada369f0683a4376b55f", + "0xaf81658f68df87f003383d3c491e52b48e33223a752de80a90e14d9527708059", + "0xcb3c413b69d871e0148c7ab4b3ecc57aef8b3173cdf2ed22e69be23027731635", + "0x5741419de567601a843a39785ddf87c453e253eb783e4627140d360bde26c788", + "0x8702d050e86c50d509248b4b18f29027ffc0fe72212145358aebca6bfe059838", + "0x09b0881b595ddd2fc43748f713998ff250ec0ce148a594062eeb66baf62a96a1", + "0xe252018784b6fcfff14dcb7377c8aae40d8e5bd9911901fa8f482149cb290dab", + "0x54ca6cec7fa3f98586d5ecc926404f2a0a9e22baa0ec582ef66f34f99b521bd4", + "0x7b8c6d9aa04417d01d92109365f0170b1145cd3e643ac6d125ec3da49ed7dee1", + "0xbbde220c651767d678e0f7b0353df80f289e32d696941433d23577a4ae615d9b", + "0x6790b6f8bfb6c3f1ab70322e5a94a1cda38c583aef42d8dde876165efbe8485b", + "0x0c582236f8cfedff03e5b3f4385e019f2754c237220fc310c2a8f1010eac1d38", + "0x4a269e8ea3dffbdef50065de830958e5df57111a165224b68be1c0bad3eb0e8d", + "0x4ff6225d2949e1deb221d7dfc3323ac8e21728adc994ad5286899c450d42da22", + "0xf02fbb10f98fbdb1eaa4b7089be8d649142bea1b25eb851d7321f4a8986f151e", + "0x341fb7b08854ac19c287da4cb79ff5f0b6f3979a704cfe1352edf5d6b1e9b49c", + "0xc794b0bb6cbc361239f9fd5d31b96dca4643fe5d95852b44696ca120790b2bea", + "0x58f23ae82355fb5ca4a8f44df6871080f7f218ff5adae90f435647dd4c0d23e9", + "0x7c376622c818a1faf99f9e49e1bd380a74a46ad020efab62363e312669ebb4d3", + "0xb63f649db17103a2517422da318235141daf881c3916cfa355b6d2bd73cc15ab", + "0x6e932759bc62cc7eeea905bf3fe9573a5f0c0beb2eb062407e2a39569934d8f7", + "0x255888e2840e26d785b281849a219af69ae9ba5314dc3abf543a2bcf5ad5fadb", + "0x741b2fa60dd7e29662a49ab86fa43613e5b3d72e38552e8f46cc62343c63873d", + "0x17f2fd3f73cbad236f23a2bfbecf71323386a305c814895d1e73d1a7f3707f74", + "0x879b9ece38cf9642847a5f922f37e59b61ab1e9f08794743ab75a1fd9f2df48c", + "0x74ffd4c4b8d37e0dd21c7dd390769e2361934fd31aaa9747af75bb438b6afb33", + "0xbd01d0fe02bcfb66ea284d76cd7aa2d2b1e9f84b8473134b2b8fdc0d652e7bb5", + "0x0db54fd31b43465540590d25d20cd6c701ad8f3414e31edf8c7f8012deec6b54", + "0xe30ac67f27092f2c69bd0dfd052225a582272fd7b84813d10fa5c11483d97bcb", + "0xedb17452246b3ff506cd3eb31caf1499f6f5a7858f0cc888ecb0020287581eb0", + "0xa87e4b55297e0e9081ddb95f56f1c90fee5dd5455768f78a5512e1a9d92360d1", + "0x8beabbce5e83540646c57ada0d84dde1cca00406ea73c1e33580df2b4e70d72d", + "0x240c2417a6bbbe9731d86d346f49a7ac9466b45345b7fca2c2bd77856a31e9d7", + "0x7f7882a080aa0989757ac17ab13d9c666e4bacde0d8b8bfd7b68f9ea824032e1", + "0x08a5c57f47b2c20752ec77af073f6c623f58e42a2e09f58d3077db198ae27d67", + "0x29ac45605d8e1149443f9bf8cfcd55b11304a433ddd82a4251644000fbfa6bc7", + "0x750840dc81202e4d9310d8bc5253be50d0590f63210c77406ebe223cc86a473d", + "0x2d8f4120e2592c2295989d49cf986ec46c5e0b51707934c187b6035daacb1aca", + "0x761b9cce53f6972992c649c442e8eadd1bea044e55ab0bf41782efdb0ab911f9", + "0xb7923b6d938e9df6b0c1ca11a266977a51e119db24acea623d4ac88ce336e0ac", + "0xd465782ba9646692471450dcdda41cb4a384e6f47bb7474a0dc7ca1cc8f096ff", + "0x75a381218ecbe11d561ae090cbf5d5353fc12d8dc3df6c0bddc6c860ab57b0ba", + "0x59f27c97514dbdcec7ea92767106b5219d80ce41f869cbb54ff697cc0d451407", + "0x4a05ac4a79805c3994ba0818d8fd3f159bc8746337f1ccb520ae68866f5b7433", + "0x00924cffd4cfb15c10dbb43032f5c395444cbf7ad88871c87a6c816aa1dc0533", + "0x98cdee5d2f0eda3f06add00369d9ba9f0de9405b478727dcb54d54c2099a5b65", + "0x71ee9f27bbd58f88aee19e377aa86e48367fdac251439863d4e5e13b61901ad8", + "0x995e8b6d497c57f943438eaeb15eb6b79e3cb3879b437c6f2f58234b4c0dd33a", + "0x9c900268be1f9005528b9232f3659f316d7c247306a566ca7cf66d00d380e2bb", + "0xe70ae740fdb92effc90363c7c3590bf3843120e3a3da5dd60010cf4c19229409", + "0xa85673d5bf45a853e1da2396a85785c8e11e72599cc6bb4aa30e97b87e85fb33", + "0xd75042d86c589a69e099adb966c0452ce911a5e8a2cd9f117b3158837bea929d", + "0xe5e53d5b25cb0fbda4ca5f9fead46194f6342499f39c2b93673bafa42a1103f8", + "0x8340d15d81b110cbf2a6c71d9d37a2e970a468a702fd3db932f3dbd455f5436a", + "0xd0f5a1a98f446ed5d555ae47c0c9ef549d313162525a3b9c1b47a06a005aab8a", + "0x71dd057faf20462ec8b5d591bf69768d0122294dc2cce68a278d3c7957cbfd80", + "0x4dd984dc5b6aad89aee89cc541e21b325da98f6979fafb4b8d813bdf1a9aa169", + "0x650306c0fd46a6a3d3e9df691ef7073ca7df02cebff85c4c51a0a44e2f1fda5d", + "0x28d521af15309b9c1fc88ad9ac18cdaa6455695519cd0c89433005736d51ef06", + "0x8ef9fa2aa35788d65cbf5ecd470ab4f8f8cfd564bfcd46bb14079dd58716ab67", + "0xd0b31acdf34845d3e5e93b5c3b5dfe6f9f755e0e8722d92c20b25e373273882a", + "0xab25d15b351b1009222edbfaef649c7674625880404421912de10e48008f88c6", + "0x5be7a952f893d12465463917bc0a77f3c2784844590248f6a66e45b177feee2d", + "0x436d697a98721b6dc2a30d6bacf675f30fdced3056c6b560ec44cc81d0e136cd", + "0xf5d0dc77bd91dd09ced0b3d0cb55e6446670fc003b1761f61e1eca6096ac2991", + "0x13ba3ff884794b310297c02681fe4c3a6e9d9cffff6d396e0202b40f7ef707ab", + "0xc5e669d2f9489366b709a910a9a80a0d00b12ee2af61843ae481b7a428f3bf88", + "0xebc184987c09424cb8466b2773e26d960874943512f301e73a9b2aadb40fbff2", + "0xe35de31dfb4defa82610410c9c5e0270b38814801e645df7b11d07b74bc0e972", + "0xb5e61841e73d6c4c25329f23bbf351d41fddd08d4776e9c74a552573ea3bc433", + "0x1a21b71fbe7fb8199fc0aa46414024d356b711095fb3c4ec11f0ae2bd2f39b3e", + "0x6d1aa91fcd03650f5dceee5f6a355c99aae2c3d3587b275404a84350036d65dd", + "0x42ee3da64818eed9032ea9078bd21bd12e3cbbf52c16487876a66e654edf91da", + "0x6d0086e6b035d964d2ddb2e445ae9c0a80eede742480e0f30e001f34da8db10e", + "0x1caad0b8db6f4a2b0dfe3a11787d5f81f6f1b51ca2148fcb68b86d1998875447", + "0x286d1aaff388ffaab6e4635857a463758c3d3038e6582d4e04e970bb2c64f8ca", + "0x25826e404f0279b2f6f37731715730ac5e2f8aedd449b0d43eef8d008940f9ee", + "0x494506ab1f0fc788abca734983709938609182c209ffd727ce17b87876d1e7d5", + "0xe11df62d1561ad27a8ad4ea1e4ad3a12c58d0fba1c242d11db389d20e006886a", + "0x47d4371646468a61664becc83e8d999819ab8a932a589d43c18bd674d8f78d5e", + "0x97e3573f34223e150fe3a77bf60b5f2ea4a39657a7c2820fd6ba3be476b60c5f", + "0xc07ecb8c14682a562b72e4395a9b62e1fcc75de5baf1600d4088b2de92db1b74", + "0x2ff6ae470daf98aa3c15a9c6664eace437e1bc4cf8901dcd9761fb2e984f69af", + "0x6728c51d0bc52b00692f523708fef728dc77e012cea4f14e8db46d5546800fd5", + "0x51ec03b64e3cb9e7657d4c8c4e227b77f28828db680301d14481df2e402140dc", + "0x6adc5f97e47107b644906dc3b9f09390275fbfc572bb3c8b0c036e27dd0611b2", + "0x6149df494e3e620d27391fa4e5ec1f2a3e93f1770ee0895ccdff52e9fbd66c4e", + "0x8733068c5c273a6580ffffd1a191f4490fa3d6ca13c9c598ea320e42f665c521", + "0x1be5347e654e505443f1b25a9a2584de4705afcdda2130d992de32448fd1b20a", + "0xc7b368feab7f196b13bb9358d86abf03a4ff8181d14f9b90a5a0b644b58d08b2", + "0xc824a730913cf2109b5bbf20921a04b6733de7e4282729254eff6c2daa4c3c68", + "0xf853db31ae9d0e97df4ca88bf7708c7e4d709010bdf2caa9bc5b5b6f6b0a39a5", + "0x5003599951319a1e619b925a5086790cd63f16310de50eb64443fb931b627bb1", + "0x67ee8c2288efc23ba563163e048b3bff6dd41a66f5c43db8cf7b8714052969ac", + "0x1cbb47291ba3c43f77b6a1675463aa62c52196c095260c6969cf11c9cd9a4047", + "0xa655295abe9da2cb0a08c57e6077a9a6ba5b5c6ad1119f6b690cf3e361fe2d31", + "0x8063bf85b6607e0dcd1dddd66f7cfb070716c93405730f4f02d3f9ae12afc9c7", + "0x4a5899bdf715ec1e6dd3a4c1e38b23c66e53e6836bc43d840c0d5a5dc8b9636b", + "0x822c08435f12ae69c61734553bfeeead63a5c91425d5a3cf80bf22a0b7df7368", + "0x7bc12f018c61c3a80725e5cc8df440af4744e2ceb3edb8f27206a79b34d28afc", + "0x2aa428f1fa7810e00c8103df3447e8ef956aa36fa7b674cbafa0640285a108d7", + "0xa7445a339a44636a596ee4d32c2df88fe8edf6b66ab4afabf4025f5609f5bda9", + "0x5796ae431964a79c71bdcf6373651d15765a6e54423a08bf9093f9aec1c3397f", + "0x37b6f893db05827230ffed04486b045e23a5d5dc538814f02581de2ff8cb408f", + "0x00c61933b49e88f9f65bf872ca00288090f6b59e188a41936e06dfdad06b535b", + "0x3e1a8275b2a5f25d34abca806a0d45e54c07d7c25bda4ab0ab2f80d527a5ad17", + "0xe06f93a82f1f6f32c20b87c1a9a9feff8f6b2bd7be3e0d6a080b904d104d7ff4", + "0x8f5056c17c60b5380595764ce5f048fc2e684300009a776afe5d805d67d74d95", + "0xd1e09ff5f08fa4cf016892d5aba4c0da0aaa5b467e35dcedc7cedfa21544785a", + "0x5227ef193bbc2ea79b940a31e294e59bc858d58697c7ce1fff78fbcc7c4cf831", + "0x64d5283ffbbd1ec5e4ec4a68dff62394b4e69aa2669e023fa00989de36fe7146", + "0x1dd93692b8e3f4d75777aef5b9182324c5e8777c0103844d6c255ea38f8896b0", + "0xed71c5d4c8bf1b283183b9e749c0cf479fc71778ddb588d2a20ed93f74dd06fe", + "0x12d203344ba534560c8ffa267d3dc3750c89a2ad01901bb2748a6805e8e2aa6e", + "0xe35eac556cdf3dbe419510bf05064b672dfba279a42f4725091b084d8eaabea3", + "0x05711b6e41bd03ff2d7cfe750a5a37e480ea8538df71de05dacc36a992341e1b", + "0xea70e6a658d121d98d212ec1da8a83522a3ced374510d0eed5d2f94760727b83", + "0xde72559b8ebe894e62c57c13bb9327951717800642bcdab0afbe05066fde9553", + "0x336810c2dca605c03bacbde44c46116123aeaa1ba636f06b8099c9280f7db533", + "0x554746d2c90fe8e2af62555f6eedbb681f9c8de25d80036992f0a47732dcc31b", + "0x4b5db690fee5f059c7d4703e663110fb0509a0a090268377612317b590830a6a", + "0x6f41622860471acb9e10c82f777fe92fcc10e06e27483f251428a05b9d1fcdb8", + "0x459ffb373ade7ba55a3dbeede9685f4a298f2b4b5ee30f381bf58f4e5779b9d8", + "0x0497944f80a9fe66f0c002984ab56991b24d4caf26a6f35843ab1803c072c914", + "0x8029f32dd6093413d0216ebdcd1cab10d30f2b623ec5dbb7bb0cd3f1d0891e51", + "0x6cc9916d5a4df635b035b1408de0f93ac15b543fd3312a68342ffab1c96a9bf1", + "0x2ed07b5eb60d7ac156b5f219cc5ce3b5957a509c63dc08cb0382adfc6e6b5951", + "0x793e31b8db1635d61ea7297b5cd8e37359c7594ce462f814afe38f3d93a5b466", + "0x25846e973d92c199707cbeaec89a4d04ee37b3e80aee684be24b12fae4ca37d4", + "0xb0fcae7b2ffe52ea8989549d3579c9ca5e0356f9d3bfd7f4f59768841fdb42ad", + "0xa917b53346a0666ca9af3fc9639e21d1721e7fefaba6a8143c41577064bf41cc", + "0x3689af2620eac808ffa100a17bade21272a91e1b879c7d8b466a1dcca9d319c6", + "0xbd2f53d1135ac15d1475126453adb10e97a90c5f9e1140d69bf4d9263a4fb0eb", + "0x677537e14996062c20d7ac9f5a4a9b47f2d7697526299d2db7fa5634565f1f58", + "0x83b698efdf16696b82d0562cc718593151b79fe0cde1dc35d4e1572952cd881d", + "0x78bcca4f8affe3aec23c5145810fbed59183d2611cfed6bc3be0fea5cab91866", + "0x1a41087ec689000d31bcd09069bf9460138e0fcad501dc2f4444cfcd61f5ee50", + "0xd534e2a9430c774114047be12412f89bb7052ac825b59e2062be26a493702936", + "0x5854dcf13f7977a2720df7956420ee26e723169fbc7bd63510dd8429ef52a683", + "0x7b8e0e78dd110a0afa986776a5b7e9ea7a67c3c183ddff317b483a91e8ca5461", + "0x50363e485fa5bc4f54152dfcf10418555240e39dad690a5dad34286299b7a533", + "0x8989af5bad5bbcf639ffe2246268d40fb53274e427aa8ee333e86ec3074d3b02", + "0x499b6407ed832a120a24ef05a3c4359324a72a100bfe21c04fc184c4b6a9369b", + "0x83a6765a7e46f5a6f756068e5716eaee90b3f4473000ca7f405b6108e4d8d980", + "0x13925cb1ea3804db1bded057b072342b695ffbb96a2cff8f917f3bf80dfcf05d", + "0x4d56fd3a4e73c2e6ce6a56dcdbd9b039729c88dda946cd7ce065651abcb46fee", + "0xb39144796d73fa7fd272067f7426ec8011879509e93246ac566a3d88356ce8ea", + "0x7ee51f4db9b788250ff1fe3316d1626faf8e099922432402e15e423c897623ca", + "0xe686b5a168a9ea0eac9fef29b9b63c125cad53d83885762b43d34f8b89af4f1f", + "0xef4ac0e3fb50c429c691a6bba761bafff1df15a340196205c0535a0426dce891", + "0x599205acb9fcb1f1da11de620427d7636f3f77994b868a28ed6ee0ebf5f8451d", + "0x4a59a8f0ffdc571435493a721becc1708d20d7491dc623f3cca194e942c9da0a", + "0xdb0dd8650fb9b32782015b002872e28b6075b04aac315451991e6a75e37d2663", + "0xfb8f238e1af47bb8e3c98d2e6c08bca9d9ac9c2bf6b3b71fcff6c173000375cd", + "0x7b37ac0fde15edecfa360f873fdf96bca246b0146d25c12fe2486bf1ae26477e", + "0x33a454fa1b98c4b669d8169c9500095dcc875cfe9329d574638876d6300f29dc", + "0xba339c3f82c5b5d034f179f32d96877788350f1d9b28d9f1a4be3bc497f2906e", ], - "transactionsRoot": "0xa01e70001323690e47e4356b4b4488450237298b9d306872fd6740155c8d9c9c", + "transactionsRoot": "0x822e2c38c94cd55d63810c0aed4d927eb3a3544adde08b106db721a1b62296e7", "uncles": [], "withdrawals": [ { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1277c93", - "index": "0x4e822eb", - "validatorIndex": "0x2f2a3", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1277696", + "index": "0x4fc874b", + "validatorIndex": "0xbee3f", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x12763cf", - "index": "0x4e822ec", - "validatorIndex": "0x2f2a4", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127aaef", + "index": "0x4fc874c", + "validatorIndex": "0xbee40", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1279081", - "index": "0x4e822ed", - "validatorIndex": "0x2f2a5", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127643e", + "index": "0x4fc874d", + "validatorIndex": "0xbee41", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1272d2a", - "index": "0x4e822ee", - "validatorIndex": "0x2f2a6", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1277957", + "index": "0x4fc874e", + "validatorIndex": "0xbee42", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x12773f7", - "index": "0x4e822ef", - "validatorIndex": "0x2f2a7", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127bea3", + "index": "0x4fc874f", + "validatorIndex": "0xbee43", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1278e11", - "index": "0x4e822f0", - "validatorIndex": "0x2f2a8", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1277316", + "index": "0x4fc8750", + "validatorIndex": "0xbee44", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x12761e3", - "index": "0x4e822f1", - "validatorIndex": "0x2f2a9", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127543f", + "index": "0x4fc8751", + "validatorIndex": "0xbee45", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1277e1f", - "index": "0x4e822f2", - "validatorIndex": "0x2f2aa", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e86fe4", + "index": "0x4fc8752", + "validatorIndex": "0xbee46", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1270b2e", - "index": "0x4e822f3", - "validatorIndex": "0x2f2ab", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x121541f", + "index": "0x4fc8753", + "validatorIndex": "0xbee47", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1275a5e", - "index": "0x4e822f4", - "validatorIndex": "0x2f2ac", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x121a46b", + "index": "0x4fc8754", + "validatorIndex": "0xbee48", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x1273f12", - "index": "0x4e822f5", - "validatorIndex": "0x2f2ad", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1220af6", + "index": "0x4fc8755", + "validatorIndex": "0xbee49", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x12711dc", - "index": "0x4e822f6", - "validatorIndex": "0x2f2ae", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127a318", + "index": "0x4fc8756", + "validatorIndex": "0xbee4a", }, { - "address": "0x86bfbe094835e4f2b991b9b4bfc9f1f862f1f351", - "amount": "0x12722c8", - "index": "0x4e822f7", - "validatorIndex": "0x2f2af", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1276f13", + "index": "0x4fc8757", + "validatorIndex": "0xbee4b", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1277d96", - "index": "0x4e822f8", - "validatorIndex": "0x2f2b0", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1278821", + "index": "0x4fc8758", + "validatorIndex": "0xbee4c", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127599d", - "index": "0x4e822f9", - "validatorIndex": "0x2f2b1", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x126a720", + "index": "0x4fc8759", + "validatorIndex": "0xbee4d", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1275fbe", - "index": "0x4e822fa", - "validatorIndex": "0x2f2b2", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12419ab", + "index": "0x4fc875a", + "validatorIndex": "0xbee4e", }, ], - "withdrawalsRoot": "0x3961d89b4f3f7d12b2704e57904c0b7b6d8ba9f8b3b54652e63f0f0776cb36e9", + "withdrawalsRoot": "0x3eec61c2568c5ac2103a25d8256ada0babe8b9c3848410b1f73765c98143a234", } `) }) @@ -625,217 +531,248 @@ describe('args: hash', () => { }) expect(block).toMatchInlineSnapshot(` { - "baseFeePerGas": 578808939n, - "blobGasUsed": 0n, + "baseFeePerGas": 635678744n, + "blobGasUsed": 786432n, "difficulty": 0n, - "excessBlobGas": 131072n, - "extraData": "0xd983010e0d846765746889676f312e32322e3131856c696e7578", + "excessBlobGas": 1572864n, + "extraData": "0x6265617665726275696c642e6f7267", "gasLimit": 35964845n, - "gasUsed": 4038108n, - "hash": "0xe84f123bd1dbb0bc21807a48079e21d5a3ee68b9629ab72d889436e8de57e919", - "logsBloom": "0x906108000108400000818203842012000420102940210030628000400812208410710804220810002000050240124991460900518c0b825600a3228004284d484d01204409048110c88040181060a4e404000010c140480410100408800002146820180002c3402104088390104028821080440a04100c009a10003400051261b0100444000020004314006810306010020b04814526000c90408840281004921a214200301029c0400288e00001280c341080820840088024280402004060410202101a6300010040000818110c024480146009020000346808001a080860020510301000800024008000510480000190002100010c04c00040018408000c41", - "miner": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "mixHash": "0xab048d1aba06968cf2a054968593c88d54edf4a8c303a7bf045d9a55d655ab07", + "gasUsed": 14170967n, + "hash": "0xd028bdc00aff985bdf872d6b961110d41a6fe4df5e93aeb6dffe2f38ae0a4f7d", + "logsBloom": "0xa336825265c0691c36791a28c7814901910c6b230e016020408d80135c1980b01016af2c481b78027612ff562ed6c7821228e23a0ccfea2b689d740905656000544085800d0928884ad6e10a344820e9f508517102f601cc0c081464d844b6993b4dd2a082e3462944ca5a4ab4227e8ce368046230b8974506a20496000f111406a9b5004e25a580a0e9204843b3100e18454253b384b508362280d101b634a12f62148431086a90625f16a482818f0841bac44db90101000f39c532160c7460d012000688201ea0013a33920e7b384728250356c52700955c3e2bc20891e2c62572a843e142470000051461200009428f79b8428b08a4c04b899412204954a5", + "miner": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", + "mixHash": "0x33fd71ca8e38da7aa264c9b9252b7d2864484826eeeae67c2aaf3ab0a756f133", "nonce": "0x0000000000000000", - "number": 22180097n, - "parentBeaconBlockRoot": "0xa3c571522029f61c8a3ab34a6683b461ebcebbae0786a597babb69cc479c7c88", - "parentHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "receiptsRoot": "0x02e8fada9484c1c30d5eba8ee6516b49e703db0ed25f4dc494b67d7580f64739", + "number": 22263623n, + "parentBeaconBlockRoot": "0xa7b4e889e408381f1860000a708b6e5fd42ccd9de7fb1cb442a8e91ecb9e6f6c", + "parentHash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "receiptsRoot": "0x230fa17d30bd0ca83606cd4704400735bf05cd09110bc96eeee7dbfbc0f870c9", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": 19294n, - "stateRoot": "0xb72df164d58ca907fbd8593cd0c1a2b2f985745bf76f905a6a09abbaee4669b4", - "timestamp": 1743583283n, + "size": 88414n, + "stateRoot": "0xadea44d9167ee7c415601810dbb3f090de70edfdea34632b7e077cefad038af3", + "timestamp": 1744590299n, "totalDifficulty": null, "transactions": [ - "0x854722bdc63c7b3a389391c88cf8ba8215a78348e57fc1cc12fd0ab5281ddbee", - "0x02cae7161a4e06197ae0178b4875299932bbb88bb7722b8d45dd4be10ed78c98", - "0xb7d723dfdbd3c3bab81060b438bd87bcf07914753d39e2a0faddb87066e7944f", - "0x4787c0f5ee67cb10805c4e9cc81ea5f7037a7eda4e93ef145ae4c2fecf03f660", - "0x59ff041e644a7294cf79da092f65af4329ea6cabe88bd1df53d0ab4518cc518f", - "0x5520923d4abe5a7a1eb9d481eba9a69740fabdf95b3aae9594a8c1005f5424b6", - "0x4f547ae4274b602dff5cde7a7fa962bd451e639ba2b856c903009f831715aa56", - "0x83bce88701a89e0df991dacc817ecb31671a8aa06e0725aceaf2e03f93258237", - "0xb56128d1a930d85d529f05a8a01ab8ac31341be758c4f733ba13b32ebc2a4cea", - "0x01886366db19111106a42f7a3fce8d3a31266e72478403c901c9b59bf2bd01dc", - "0xa2f08cebd167a4cae54c5e2d6907b5e2d49739ca3881214c49e58a37bf6e9455", - "0xf4174f3311480a400f9a7d8960c7440c186e1beedf2dc946f81a87b0d48d235a", - "0xcf8b1cd812489193f99cee59d558364ce36593bc89bbc174851d173897241180", - "0xfb0267c2413094f54a4cc4e913e6fc384ef2ea31bd15b5371d1be17206f41602", - "0x5ee9e22b89405c490d938e8904d8f50e5788cb400f6f8f89523227eddf8b0629", - "0xbd808d6736b93870c1a81cb944b444ec02611d85136647c090502ce86bf9c923", - "0x18c1c967ff87ae710de86210a32e13999509aeaa1472296c17faefe145c53f91", - "0xfc759550f99be38b1a938f3bd26267353828476e7f5a8dabebb676f710f380de", - "0x4019b7b381fa1daadad90b4b6d2e02de07eb1e8d6f0b36bb14b62f2e85fe9efa", - "0xd2bac5f3c8d0b8ea1efc84fea5b7c92ac1369f9b7be90527ffbbb35d35aca077", - "0xfd69918724b556e832e85e22a359891e08fcab37f4e6c70a8ff1699176e15453", - "0x50a7e4b5697b0df1bb4a6bbf97321bb94a996fea894aa071fc210a7423cf4838", - "0x1af867463b10a71305740219c1fab218571d88f5b75472ad8c25885cbfc01b91", - "0x5c67e0c7ab694c4714576ff54d2bd2dc6b19dcd55df337ceb72bfcc89034becf", - "0x2b917db8c9adbdd78fd0bab4edf8f599c2ac99c8b6171b1dc3fc42bc3607d164", - "0xa15e4bca5ac39a8d3023dad307b3743f801baefba07f203f98429c71cf2d2582", - "0x8cb6e16ecc5d6b659170423b6e5bb39ccd6933ca214c843ba079ad6306111000", - "0x269f116d71f5886f59dbfb63ea5a1d4621afc6e6f163f984fd4d1a6c33ebdddc", - "0x2129b8e7f727a14b793959c5a812ad3ad65c6dfd2b4d41944baa40c56bec0312", - "0xa026091fa779b2fa5a05afdc01b9af8c618e936ee237274f500ca4b07761b6a3", - "0x1af67c12db72606b9687d413fd3b9a7960e78d38df615e9e8094192055f9f8ba", - "0xf00dd3ad522918ff5af7fd8eb85946736d119e5ae560bc5339d3197d03a27c25", - "0xa196faa90844cc30ed6e48f31e5f5e44415c0a9ce605b5537c80fbc8c597c2eb", - "0x9b01070b12d11f4e980a37ae00716f58c0ef45482984e21219011e8c96c3359a", - "0xb20c352eb48b4b0166a64d947b9bf43a0a6da5c3f6f61742725e3ac692d351b5", - "0xaacc6e6b9ca5935a28cdc115ec187a093031c8f071785b1077525ad62caff8ef", - "0xee8bfcf3180572c02cbd7d7a0a60d616d58a5a689057a23e38e78aea2980a481", - "0xba86efff334626a0abef6b52be7648ab073049636d6bca087b473d2e24353103", - "0x8a3eba30e9d148a217434f2951882d8a620a0a37fddbfef7063c4c0914d33712", - "0xec9ebbe6e1855f3b9f6e20be38bde066e353bd35604e43a96a24e65e6760781c", - "0x86df945e7311b1b341f2ebfd3ad7979d5dec093a3de6e89a7233374129b6df1a", - "0x63870fcb38ea65b28ec381a48c49ae92477662bea9ae78c8a88fff309adb596a", - "0x6711b81447f1f43eab0609e4f3281b421c8252cd3e95252f2843f2666f916e67", - "0x053cdb9cd0619da6f570e5ad1330f498199d89a4bea9e60ea32b8004f8796581", - "0x481645366e47224457043d354bd9fac3a0d342d85fa3489b8ba2c4c95ad06e79", - "0x3aa5be2e84dd1eb17f1eacf4c8922d622c38c6893afb371e953818bb18085073", - "0x4d70545132c47146f6ba915aac0e550f1458148c4242f6c73b11d3bdfb43242f", - "0x18d74382159845c6e1b3fe17512ba167aa2314495b0af6f6648caf0bc9cf02d9", - "0x965a698cd7a04d50b9421b1719305cb932e3fa60b7efa4e7947309809e4bf89f", - "0x98af2e3b23bbca8448a3a3a0275890c4841b74953c2c3ff7de3f60146014022b", - "0x14b6ce018d72dbc4bf9696fca2450a67a3ec30b83d7f3f29b5705a9b11cf0023", - "0x5b6aaf14c07490e42422da3090c1f96b75f621b883155815f39fcc62e52b33f4", - "0xc771676cdb93ec14b0d8cbf595dc71201d6dc8d0e7eac292516883515da9853e", - "0x77f8b676af27863e5c209de3b83c6b28548ef8f9e2ac8dbbb811c72426ce1314", - "0xe6c20952ac5828c60e0fdf6ac90a5265dd37d82d07efb994abad8a394d0c09af", - "0xa3120d24651113f14068b578b321a2932729607f910629dcaf98e5468ce269eb", - "0xecee7c812393be6a0c8674f1753e1036e8ae94aa65e1554826fbe70117fa3864", - "0x2b4e80afa71c648ea44b68571b1d49dbbd8ec43d6ed7c0c50497e4dada79b7cf", - "0xefc09f41c36293ff1054cbef26b2100343234b162def2d9958b6cf7f178be2e1", - "0x36fb9e07cebde3bfd5428c264cf7a48a53ff4335821e94a4453a74e21926fdab", - "0xc2d7ed094cac9adeafcee17d6108528d605afb3cab55f4e2be2698ab7a2be42c", - "0x94bd0c645445a3066db377e7805e9adbfcc7e1bbd03d431b93ed6afdb413f524", - "0x644d39762057df05ef6d81c6091e28696540336f30fbe38e8f77fb02adeb14dd", - "0xa0335e5efcb94ae2fd7065a7d0b4e6480d24a55eef2db3adbe7e56f4a10f885e", - "0x70cc6a56f1578efc21747421e3c65dfbdd64b9d045b035eb2270c099c90fc7ce", - "0xd6da75a688304dff7f987d3b6be703bcebe9926184e57c85e1e20cba53bdcc6c", - "0x60c676a4bb996f4d8767649a9cc2d5d53ab5d3f50fa80867e147911f20686c43", - "0x3905355abddf0be3f4c3213420a81a080f6a9eda1f0014ae5f5a0bdd1a90a696", - "0x94e65d80b8dd755f8ea3f6e7ba385a1b598f6edc52b7f08e3df445717d795cf7", - "0xe078055c7d78bb0473914d62ae8dbb557c3fec7b3a7c5d757169823c89729e2f", - "0xcbadc3ca4a1881c2640558e7d60a3e8c7c753281836eeecd856737087a295431", - "0xd002e072a411c84b48c37d21ff7df3c41b62172f0dc094d5497b565818459fdb", - "0x2a63ee7e01b3b54691e0bbc03b2fe641202d3d22dd0c48c2348d1e93ad7b0492", - "0xe10b19b8956908c1e554b53dbf1e52424de31ff75008fe4ac9f8b3a9db9504fe", - "0x7925eb0a9767c6e05e39118e799245f68026eb93a094fa9b24404fdd1bd9926c", - "0xbe5dc882a0ffeee04731180dec24ed1ac1d49393e742470f163c83a0e5147ccd", - "0x91b44316445eac651a9692dfe324e91b57b9ddb544c8961643fbaecaadd4ed0a", - "0x0ce80c94b4783a3e5f8ad97619fc6a74ece81f1728712502a1c5089076e370fe", - "0xdb359e8c4805e64256bf706b3921547d666f7a82efe2e6be099f22a966ea5a3f", - "0x76bf7b5b3fe06055a4a14368a7ca4a84f8ba80f5ac17f26ec747ed596a0a4e94", - "0xa7e4e10a4d52ee6e151ca74bc68ee7fb6868d22cf94a67cf75468d1a4d0382e5", - "0x6fee722066f0556812667007cd3e38176ca66821932e437d9bdf2d98434102fc", - "0x9085a6a8def5f6c3a25d6e036829807cd5b0695268a4c645f01165021bad1d24", - "0xf2849a8fb3ad7cd02171d076ccb1fc2fba8732e116734fc72158fa97d6cfb6df", - "0x03d78a43ef4db904736b09ec8167deacf78ca14b0bcfa22d280c8db53688563a", - "0x6c962a3376c5d50f9a6fbe71c555294bb639192aaedc6d8ff1f43c2e6c7f6255", - "0x432d13a977ea8df24859c70f1eeebd303d0ac099d7da6df4bd7db2e2802bdeb1", + "0xa830b5e09e6d2709eaddc555c12fe5177aa22a0862869aefab392d64bcb67926", + "0xec8dae0c3c87e84115d6d80a13f18fa09149b26b6185dec8b1feb9277f57de16", + "0x6bdee6726ede49f0caedbb039559a3ecbeb30beccdbad0d0ad34b7878fd76756", + "0xec27e6ef7e8e0c5e495d978e2409f18d09efbac99f6a1d9766e8951eb20c1bb6", + "0x388f16334f1217cf27bbefcc8798834af13166cd7857b5c56892b1ebeef6c708", + "0x10f56c635bde3733b330e41fe1dedd83c303dbef4b713a87ad1fb0feda79a5e1", + "0x0b20063113f3377255f2d1fe4e3277feadaa98d122ebdfa4f08b2e58113c3bf2", + "0xa418d5bd350d6a7947d5801cfcda9aa9068cf43611cc5ec26a3e0996b3e6b1e0", + "0xcdb2fcead0254ce044d050761b3308f9fafb1bc419a8ca9a6dc4b3e62c437169", + "0x1b1e60b3aa4031704fae193d7f97a5484a1673f5ba2da0ee31e3b0858d839684", + "0x59917ed06b3fa39d2d311086d6032e2abe1341a31db2422e9467afad00fabfe4", + "0x185f39d2b7b2cbe0c0950ddc45df5948e167bbbceab235ae2b18193ccdbf3cf7", + "0x9aa22d79c11e83cecc8043528527d9c88a62d6103ca8f250aa8cb86eca02eb11", + "0xf914ecdf0c1922a1bd4effe4d2f15adaebea229b7b52ad610984a979ea09e565", + "0x27feb453dd1e91b41d5860c32ac34470d101f6e5da57c57c4e0c074c5d00cd5d", + "0x069bf514fa826397e81c88d4587530538e10baeb5e0388048030287d85b2b5f9", + "0x6c89d2775e9919fe8afde564755021b2291a797490e7d64a42231cd0e9ebec85", + "0x01975a1e08fac4209e625990cd4a0fbf2fa05e3c08d9e98898a5f50207f36c04", + "0x5eb6d26ad0d67a9af50cccb5e4d2e7c11e8d9e86fe51c61483cb62b84dd8e2bb", + "0xb600b487433b17d85b33ae7567e4558698afd3f72a8fa968985ac847055e09bc", + "0x002dd9d9fc69777dfac9ae0cae8d9b47ece05930f3dc971c23a3e7674629ce72", + "0x384b2c0059e7ecae49b44dfa6f5ed44fd9fac1dc0fab8c01d341cc886bd45789", + "0x403412968589902149efd2df44385afa00c4299c52aa83d64008bbee0c953d47", + "0xb6ef0c02e08374d3cea3eda42b8e08ed218033a70406712c9db64620ebe6ff62", + "0xca031374a4aa643a169e7edbfa8505b310b52f1559c49f7bb1acbcbd9281f8fe", + "0xeac0cf72d02033c8d24dd22ca23882773402f8791f57d9e3f161b1086cea39bf", + "0x7ac526702bccafe985f08a35ab96250066f230bfa4c589696d52f388dc28cd9b", + "0x7663feb1a75df42652c26c6c114d711956b03de8aada2493e8e858bc19163f18", + "0x7dd2137fdb2f69d3714bbd8cdc1be5ad0a4503ddfe19ffb8e752ee3537a6baab", + "0x88608458416217eb145836116357017d8ee7f0bff8f18e2a708b578645b115f7", + "0x03037c03f30232ed8b486ee3e43212f40d7e48317c733fad92034850420a29c6", + "0x96c58606a41010569c74160b3ff879948d4e254f305df63491dfb77637bb6fcb", + "0xc6391d3137b9937cc53e7044c7fde0e9e3d37ff3e2ce3e2c2daa40a1e855e8d6", + "0x126acf8dea4af4f8477d83fd40096277b8f46be7ce6f48c3f5ce12c73dbea9e2", + "0x5a3bb37a3859bfc316580c2c3016e0a602cc578e518fff5a1ca560cc3d457ff5", + "0x30c1bdd22384b8a1187dc5c30fe0aed454e1bbe724fad44e619fcf26287455a5", + "0xd664ff7bd195031873ab12bfddc3399bcab5a5e5e6b66e0ec9e7aca5eea533b9", + "0x52353a3786a5bc637d2a767d440a13ac426ae372301882a69cf99be5c08b9b34", + "0x8640c1cb3208b965e5405b952d4400f76ba5942640b6ff75559411d567c6624b", + "0xfc401c21638aeb2b853bb0e29bae2468fe6d757e76f455a0e00061301d243692", + "0xced23b981bc2fd12d5b45b8ae3f5b0effbb21cadc2d6431f677621ec8023ffc2", + "0x2b63a9e4d7d27a19ad8c84e2035b0bc5e1e2f61ceb53ad9fa7569f639bff78ec", + "0x9991c76fa2ba076162f0b8d21b9b2a6b2b9fe9dd5403dd6a4a05a72c85569a03", + "0x9a3a09b54dcae0cfe70d12a5d675f7e400d3f6d5c3b43ec018c7c1f587584ff4", + "0x848d7a6be7e269ee54437dc0272501e3aba635ad277903abafd75a21652ebde3", + "0xf4afe5774ac8d7196ad36103769ef606faa8a1c70284b609d5993db3c99773ee", + "0xdb2cc3a2dd936e22f3cccdacd3a95d6541070e2a0a9440b68d5b17036c791e25", + "0xdfc82c9edf56322fc2b2b42c49b4053fada87559d4269dc7f62df2043dff0391", + "0x6d4131a2c049efb6cbe31fcdc03aba6952875efbc8df336b915aea67a6d17cfa", + "0xc469810e7856cf8d1f748f2e5f8f80084253272019056b69474d0f10ff181ece", + "0x313e76bb4c1d58dd51df593e00369185d3612a660f67d5a3751bc341585b1eb4", + "0x6baf070c42ec0033ff0b0dec233c4ce7ab4f8b94369f67d02a6eb1a48ca6dff9", + "0x7544a200cb8855073410e2ef14666a2846f9e3c962fd68ab060bc63b2bf376f8", + "0xb6ca49f11c2be3541178e6896b98bf47b7c392e20c8c4c9e8dfc439ba7d34d37", + "0x5252bea73f0cb25d0096362e39faf73dd86eb1d1de8449bacf4aa7da96eaec4e", + "0x666875fa51d4cabf200b63db9b7c3110c593c60658f9ee174181ed7790a6f6de", + "0x68dd0295bf7d2f0d636ebc5d551db39132b3c8dc2374c1382a3a91d753cc93f7", + "0x4dbf6d86b0c8f87589b44fa8b8986684febb58815be0fb51bb5ab4904c3dd816", + "0xf5dac89d6f756e8e0728993f91420f883658306974b85df38d86dab3b1b66522", + "0x1929a2dd505f80e1d883eeaaccd09c3392e5d9ff0d42ebdf869bb413e72ae406", + "0x43c076bffb1b83e9208776bdc63b8e52ca2957c0f53966f0d388d97fe90ab84f", + "0x67abe41b249287654a1e34d15f386a11fb384dcb406ad179b7b6b6e2c66fbc58", + "0x8a8a45cea8595016bcad108c281ee8612cb0f6d4397d368315488feaa5f798d3", + "0x11592924727a9175d05e57635dc4b7eef9bebf67da90d590adeb3f2f27d3f4f4", + "0x8d816313b6dd7524ec3a22f82edee1aeb147a8468824c29bf48b53d2dc78a160", + "0x180de77173fd1e0a108a191f79edd955e35728d4dc17f00f3eb4f2a5aeb40d53", + "0x118f5228f1faf3c2301201d0451e578bae7bd7fae9c2aa860a85877fc94065d6", + "0xd23194a13c3302913bc044b8912f6361dfa997e667a8e00913e1349df04586a4", + "0x16395ca6eb8963ee04e3181c7233fa417678bc9446bd2602bf5f9b8eeb5b17c4", + "0x9d50f7dd271dff2451b4021ff75d0e581eae95d67260bc2ddf0c3e06d08b58f6", + "0xe342270887c85b5a5be6068ca116ebdf4a53ee29f5cbd0b1b6dd9b66f99699ec", + "0x74960a4a67cbf20e4e660747e16d9c82eff0b614baf34fc98dd125323555e319", + "0x0ba0a9eb5c3ba2700d70d1cb00dd1ba892205f47883690f5343f0d6e8a012110", + "0xbdc97aa06937fbb6227deaaf4242c4c136b03f7bf1c466b672c96b1e1994203b", + "0xccef5dd7738d65689ccfab4ce87431132dcff26c30f1337017c6f2cd2573f121", + "0xd4b7fa9c33c877ad0e0ca65caf27998e7d32bc3ef9cd351c2c318b294468c8ab", + "0x676858b075e31a88caf5d84bfb5e8bc8f1fda60c8b47ad6d1510e16025dab1b5", + "0x467afd1e746c073475d396198420fb504c330bc9759a9d49fb375c3831ccd863", + "0xc41560172f2c1e5880de04c06bc28872cf1aaf2bf5e86a42979b4ecfcd44d311", + "0xfc505c0a8009f008433aaf366e7a8a585f66336e77ab3066630552bb8c67a800", + "0x7454273c2845eea8611fecce8016bcbf7571959a1600c7ac97387ed3510e3582", + "0xdc856c8d91705f4b3d03964c8ad4befc3799a8849f2d527709432db45d3a388c", + "0x17d71b1691589e9597fc6d29d571be8d674f86538355806e697af188cb18eea9", + "0x5f0faee4777596897c3f8b7206ae31fe7ed5d3eb4718cdba07e1e743cda7cc1a", + "0x7c68af4b9e5c22ce5bcf74929a19180ad06125a80e9118128b653d0056260c58", + "0xe222040952e6f7fd617290b7b8904b00f81ef49e4fb37be040db1f66f1f4ddc8", + "0x1ad0b706c9a1d376cde377fb73395ecd5e0e55f428ad3299317806daef8de882", + "0x4f24aff0b5d7269902fef75cb69ba67aefd39f114f91b0d7a519e86e10d9c8b7", + "0x32e23029b54b3ffbc78c4e9f115a4cbefe65faf67ec295e2ad9a0603ed44d4de", + "0xfc424bbd777126fb913242238dafbacdd75344b6fd0f6d524d64f85b7420627d", + "0x2742143d7f34fa33714619ccf9c1f01f4f32a47ccbf69b6ecff00d398c483cf7", + "0x81d16e35c2f2372d18b2898778cd9f81eaa0a553b06bcc2620d69d2df39431ac", + "0x5ff48d7e61c45a9be174bf915f864318123dd16458550322b2fca85490a4c0f6", + "0xdfedd288385085f2f33a4235d9e65dffca463c555f3ef351f7ac6992360e6980", + "0xf8e19739eb8068854f9e6a2274a826228896d0e8c56b33ace69199a92385c6e4", + "0x72c03ec1db7496a464214c3c17c2303d55882ff873ddd42cd9aadd11d6cd4674", + "0xcd66de6e1ba35f34e0c1ae90d470abba0b39cb798909db5350aaa0414121cfa6", + "0x647544c734fff0189ab55e86e2a38c78d4764aea12ed0cd16c3dbee9aca5a4c9", + "0x2fd9010ba8d614a8492c02914bc5aa9504e588ce2b98b7c097eb78c02318f734", + "0xf9e4ae3673db5a8961fdbd3253643b2f09a475b76a2d3639671bb5b8d8df8599", + "0x269240fcb4257e6e0b2d970d8a08b06fd56226b0afbc3c41ae952cebd1d1e84d", + "0x2f9db6986f9d46736e6532030627e0be514e6e7c8d844e316ec589d3e0dbb573", + "0xeb32497fce6f101f55959ea2ac0b090a0b26032865c74e279754ba13384f2245", + "0x4257448420523d4320b38aee51ef17e72ad59b316c390267f524dcb51fa1f3e2", + "0x511ba0618f654bce433edc15ead66c282b9628049398b117c8dea68b5956484c", + "0xa5ab42e4353a63a1dbbb5fcd9827b0b5784468b4c71074ad5124eb84ea87b687", + "0x018b3ecb07b3487253f4c6f26c4a66518e5b4127433da45e10f88a458da19932", + "0x8d9c8a91a8ffb007f20622068d27b3d21e641cf4495bd7791f76eff22bbe3b5a", + "0xc65564c139b75062f4989cb2eed6c436e6036f281c8c5dfd811911b7575b03bb", + "0x1fa029e5ff784a280d1d3aa8a0738942ecea6f271d0b3cb852edd2233fbf807b", + "0x893eb054cc26a7f84904a4c038f8b5ab62b6fd97201526308699c6f750879cb8", + "0x52150a57b9f7e1b4cd27294a81a27966421a791b11238075818d70683fd716d1", + "0xb56f65e5aa53351984d177cb0e9099f386c10ad0989255b0dc2818982c08794e", + "0x2a2b18674d4e5955ead4f4c3ee115e26ccd4f5d16112fc8438ab4424f18ec9bc", + "0xb30bd6264b27feec0fb74dbf5c0dfbf0c2f6c4e7a69c0c265f3fad84f94f622d", + "0x30f32b6cefaba17d25b5a8c58cd42c60e19a7f0dd1f16251bfcede5bda55b7bc", + "0x48c3c9f6a2344284079d4ee6ffc186c5eb36a5a5a88c3c2e256690d6e5a9dc15", + "0x6a29c02a54d80de73c015bb4f769ec74fdb61e784b0ca07ecb5c88adc0554e4b", ], - "transactionsRoot": "0xc103e60e253c07da5e7666463768a0029d50721bfcc06ce51d868c07caf5f4cc", + "transactionsRoot": "0x5c41008fd93b95aff0a1a453b657539b7e43d67d20c196c87fe59f5f2f1dd214", "uncles": [], "withdrawals": [ { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12761ee", - "index": "0x4e822fb", - "validatorIndex": "0x2f2b3", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12380f1", + "index": "0x4fc875b", + "validatorIndex": "0xbee4f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127530f", - "index": "0x4e822fc", - "validatorIndex": "0x2f2b4", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3f62a7a", + "index": "0x4fc875c", + "validatorIndex": "0xbee50", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127b3a1", - "index": "0x4e822fd", - "validatorIndex": "0x2f2b5", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1256773", + "index": "0x4fc875d", + "validatorIndex": "0xbee56", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126d432", - "index": "0x4e822fe", - "validatorIndex": "0x2f2b6", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x125b69c", + "index": "0x4fc875e", + "validatorIndex": "0xbee57", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a9d", - "index": "0x4e822ff", - "validatorIndex": "0x2f2b7", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e33e35", + "index": "0x4fc875f", + "validatorIndex": "0xbee58", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12704a9", - "index": "0x4e82300", - "validatorIndex": "0x2f2b8", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1266095", + "index": "0x4fc8760", + "validatorIndex": "0xbee59", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126c493", - "index": "0x4e82301", - "validatorIndex": "0x2f2b9", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1278100", + "index": "0x4fc8761", + "validatorIndex": "0xbee5a", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12785a7", - "index": "0x4e82302", - "validatorIndex": "0x2f2ba", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127ad22", + "index": "0x4fc8762", + "validatorIndex": "0xbee5b", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a3d", - "index": "0x4e82303", - "validatorIndex": "0x2f2bb", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127d890", + "index": "0x4fc8763", + "validatorIndex": "0xbee5c", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1276002", - "index": "0x4e82304", - "validatorIndex": "0x2f2bc", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12612df", + "index": "0x4fc8764", + "validatorIndex": "0xbee5d", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126f825", - "index": "0x4e82305", - "validatorIndex": "0x2f2bd", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e39635", + "index": "0x4fc8765", + "validatorIndex": "0xbee5e", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1275945", - "index": "0x4e82306", - "validatorIndex": "0x2f2be", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x126c872", + "index": "0x4fc8766", + "validatorIndex": "0xbee5f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1270e42", - "index": "0x4e82307", - "validatorIndex": "0x2f2bf", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1268edf", + "index": "0x4fc8767", + "validatorIndex": "0xbee60", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1270989", - "index": "0x4e82308", - "validatorIndex": "0x2f2c0", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1267257", + "index": "0x4fc8768", + "validatorIndex": "0xbee61", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x12757f2", - "index": "0x4e82309", - "validatorIndex": "0x2f2c1", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1269208", + "index": "0x4fc8769", + "validatorIndex": "0xbee62", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1276b9f", - "index": "0x4e8230a", - "validatorIndex": "0x2f2c2", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127534c", + "index": "0x4fc876a", + "validatorIndex": "0xbee63", }, ], - "withdrawalsRoot": "0x33747cc6d2692bffa01c25aab8323b628778f1e9456cfacea32efb81a17c445a", + "withdrawalsRoot": "0x96c5c22e9b58cb7141b2aecf4250fc84b0486a00a78353cdcfc9d42c214b2127", } `) }) diff --git a/src/actions/public/getBlockTransactionCount.test.ts b/src/actions/public/getBlockTransactionCount.test.ts index d90330d42f..8c22824fda 100644 --- a/src/actions/public/getBlockTransactionCount.test.ts +++ b/src/actions/public/getBlockTransactionCount.test.ts @@ -20,7 +20,7 @@ test('args: blockNumber', async () => { await getBlockTransactionCount(client, { blockNumber: anvilMainnet.forkBlockNumber - 1n, }), - ).toBe(259) + ).toBe(165) }) test('args: blockHash', async () => { @@ -31,7 +31,7 @@ test('args: blockHash', async () => { await getBlockTransactionCount(client, { blockHash: block.hash!, }), - ).toBe(259) + ).toBe(165) }) test('args: blockTag', async () => { diff --git a/src/actions/public/getFeeHistory.test.ts b/src/actions/public/getFeeHistory.test.ts index b7e4a8958b..d8faef6536 100644 --- a/src/actions/public/getFeeHistory.test.ts +++ b/src/actions/public/getFeeHistory.test.ts @@ -16,39 +16,39 @@ test('default', async () => { ).toMatchInlineSnapshot(` { "baseFeePerGas": [ - 548745628n, - 607463544n, - 556703106n, - 578808939n, - 522704890n, + 634639953n, + 649317659n, + 638630382n, + 635678744n, + 618836874n, ], "gasUsedRatio": [ - 0.92801552869643, - 0.16575483333333332, - 0.6588339166666667, - 0.11227931053227116, + 0.5925104444444445, + 0.43416302777777777, + 0.4815126944444445, + 0.39402274637913776, ], - "oldestBlock": 22180094n, + "oldestBlock": 22263620n, "reward": [ [ 0n, - 13630320n, - 9168825779n, + 114137729n, + 44365360047n, ], [ - 1n, - 79000000n, - 9392536456n, + 0n, + 500000000n, + 94244384875n, ], [ 0n, - 184885537n, + 100000000n, 100566385920n, ], [ - 10000000n, - 100000000n, - 9986639025n, + 0n, + 575000000n, + 84358038355n, ], ], } @@ -75,25 +75,25 @@ test('args: blockCount', async () => { ).toMatchInlineSnapshot(` { "baseFeePerGas": [ - 556703106n, - 578808939n, - 522704890n, + 638630382n, + 635678744n, + 618836874n, ], "gasUsedRatio": [ - 0.6588339166666667, - 0.11227931053227116, + 0.4815126944444445, + 0.39402274637913776, ], - "oldestBlock": 22180096n, + "oldestBlock": 22263622n, "reward": [ [ 0n, - 184885537n, + 100000000n, 100566385920n, ], [ - 10000000n, - 100000000n, - 9986639025n, + 0n, + 575000000n, + 84358038355n, ], ], } @@ -110,29 +110,29 @@ test('args: rewardPercentiles', async () => { ).toMatchInlineSnapshot(` { "baseFeePerGas": [ - 556703106n, - 578808939n, - 522704890n, + 638630382n, + 635678744n, + 618836874n, ], "gasUsedRatio": [ - 0.6588339166666667, - 0.11227931053227116, + 0.4815126944444445, + 0.39402274637913776, ], - "oldestBlock": 22180096n, + "oldestBlock": 22263622n, "reward": [ [ 0n, - 50000000n, - 184885537n, - 500000000n, + 44743376n, + 100000000n, + 1000000000n, 100566385920n, ], [ - 10000000n, - 10000000n, - 100000000n, - 500000000n, - 9986639025n, + 0n, + 45452235n, + 575000000n, + 2436337100n, + 84358038355n, ], ], } diff --git a/src/actions/public/getFeeHistory.ts b/src/actions/public/getFeeHistory.ts index 8c5df23fd9..9e5a83fce6 100644 --- a/src/actions/public/getFeeHistory.ts +++ b/src/actions/public/getFeeHistory.ts @@ -77,7 +77,8 @@ export async function getFeeHistory( rewardPercentiles, }: GetFeeHistoryParameters, ): Promise { - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const feeHistory = await client.request( { method: 'eth_feeHistory', diff --git a/src/actions/public/getFilterChanges.test.ts b/src/actions/public/getFilterChanges.test.ts index dc25fc39ff..14a572390e 100644 --- a/src/actions/public/getFilterChanges.test.ts +++ b/src/actions/public/getFilterChanges.test.ts @@ -318,7 +318,7 @@ describe('contract events', () => { 'Transfer' >[] >(logs) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) }) test('args: strict', async () => { @@ -342,7 +342,7 @@ describe('contract events', () => { 'Transfer' >[] >(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) }) test('args: singular `from`', async () => { @@ -820,12 +820,12 @@ describe('events', () => { let logs = await getFilterChanges(client, { filter }) assertType[]>(logs) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) expect(logs[0].eventName).toEqual('Transfer') @@ -846,7 +846,7 @@ describe('events', () => { assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf<{ from: Address @@ -855,9 +855,9 @@ describe('events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -880,7 +880,7 @@ describe('events', () => { logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf<{ from?: Address @@ -889,9 +889,9 @@ describe('events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -912,16 +912,16 @@ describe('events', () => { let logs = await getFilterChanges(client, { filter }) assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf< readonly [`0x${string}`, `0x${string}`, bigint] >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -943,7 +943,7 @@ describe('events', () => { logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf< | readonly [] @@ -953,9 +953,9 @@ describe('events', () => { >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) diff --git a/src/actions/public/getFilterLogs.test.ts b/src/actions/public/getFilterLogs.test.ts index da27fd1f35..068253ceba 100644 --- a/src/actions/public/getFilterLogs.test.ts +++ b/src/actions/public/getFilterLogs.test.ts @@ -278,7 +278,7 @@ describe('contract events', () => { 'Transfer' >[] >(logs) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) }) test('args: strict', async () => { @@ -302,7 +302,7 @@ describe('contract events', () => { 'Transfer' >[] >(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) }) test('args: singular `from`', async () => { @@ -712,7 +712,7 @@ describe('raw events', () => { const logs = await getFilterLogs(client, { filter }) assertType[]>(logs) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) }) test('args: strict = true (named)', async () => { @@ -727,7 +727,7 @@ describe('raw events', () => { assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf<{ from: Address @@ -736,9 +736,9 @@ describe('raw events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -758,7 +758,7 @@ describe('raw events', () => { logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf<{ from?: Address @@ -767,9 +767,9 @@ describe('raw events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -788,16 +788,16 @@ describe('raw events', () => { assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf< readonly [`0x${string}`, `0x${string}`, bigint] >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() @@ -817,7 +817,7 @@ describe('raw events', () => { logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf< | readonly [] @@ -827,9 +827,9 @@ describe('raw events', () => { >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) expectTypeOf(logs[0].eventName).toEqualTypeOf<'Transfer'>() diff --git a/src/actions/public/getLogs.test.ts b/src/actions/public/getLogs.test.ts index a7c4741ade..96a544a4ea 100644 --- a/src/actions/public/getLogs.test.ts +++ b/src/actions/public/getLogs.test.ts @@ -234,13 +234,13 @@ describe('events', () => { toBlock: anvilMainnet.forkBlockNumber, }) assertType[]>(logs) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expect(logs[0].eventName).toEqual('Transfer') expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) }) @@ -254,13 +254,13 @@ describe('events', () => { blockHash: block.hash!, }) assertType[]>(logs) - expect(logs.length).toBe(522) + expect(logs.length).toBe(249) expect(logs[0].eventName).toEqual('Transfer') expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x44bdBC621752F0bC4043c67d2E6C4434B4Ba63EC", - "value": 350029643320918016n, + "from": "0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b", + "to": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", + "value": 10234627073n, } `) }) @@ -274,7 +274,7 @@ describe('events', () => { }) assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf<{ from: `0x${string}` @@ -283,9 +283,9 @@ describe('events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) @@ -303,7 +303,7 @@ describe('events', () => { assertType[]>( logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf<{ from?: `0x${string}` @@ -312,9 +312,9 @@ describe('events', () => { }>() expect(logs[0].args).toMatchInlineSnapshot(` { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, } `) @@ -331,16 +331,16 @@ describe('events', () => { }) assertType[]>(logs) - expect(logs.length).toBe(1245) + expect(logs.length).toBe(1465) expectTypeOf(logs[0].args).toEqualTypeOf< readonly [`0x${string}`, `0x${string}`, bigint] >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) @@ -358,7 +358,7 @@ describe('events', () => { assertType[]>( logs, ) - expect(logs.length).toBe(1403) + expect(logs.length).toBe(1482) expectTypeOf(logs[0].args).toEqualTypeOf< | readonly [] @@ -368,9 +368,9 @@ describe('events', () => { >() expect(logs[0].args).toMatchInlineSnapshot(` [ - "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - 358332750601650176n, + "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + 120434120394n, ] `) diff --git a/src/actions/public/getProof.test.ts b/src/actions/public/getProof.test.ts index 4513fc93a0..55740852c5 100644 --- a/src/actions/public/getProof.test.ts +++ b/src/actions/public/getProof.test.ts @@ -30,52 +30,3 @@ test('default', async () => { ] `) }) - -test('args: blockNumber', async () => { - const client = createPublicClient({ - chain: base, - transport: http(), - }) - - const result = await getProof(client, { - address: '0x4200000000000000000000000000000000000016', - storageKeys: [ - '0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99', - ], - blockNumber: 3155269n, - }) - - expect(result).toMatchInlineSnapshot(` - { - "accountProof": [ - "0xf90211a0dccbbb8670d081b48e30530efc9163459f3a904a030b46fba481b2cf93f714caa0ccfbf4c88eabfadec6f01e2b6036845fd1dfb395b9cfc492d7bf2423f1e62585a0bf21e0b21a29dbf2edbb5a61bdf3e934d19a8acdec14bc5e2fbc981b188cea68a01c18076f795cea22af635cba9aa49f465f48f8ce326636948e3c6a3899437efca0140c6e44c05838d2aaac2859a2e4ca91d774e251443701b42aa30b1d2732fc62a02cc22982c477d8de35b93eb28de31a7c7ee3f988398db6a9d0a15613cd6ff044a0bae5a7b400ba3273e17808fbbe08fe02b4e2b6a9eecf01e25429303c5ca692dfa09fee72365c5e1edc36562ad14534c4cefa968e97a0e9548d548636ecbca447a4a07103587ac8e5c2abb3aaa06f990ab78474cf81f79ddbcba3d0c2720a5388940ba0517e9e7975ba946c7558852b18397726d1e923d593fff7af50ba8a621acdf57fa01b6ecae06ccc97c22ebbbaf5373b5699c6e57113fa4827aedf237b7ee9a671f1a0d8facbcaa4e4226ea8ba075b0cb350e124cb62b791eb232a3e970f34187a103fa08fcd293105a9ca3644b8c9517a6cf654cfddd9f7cddb030f5098d073e0d9d2dea07ea1cc9414073aa228ca3ebcb192d8f4404ec230058fd96fa2e0a564ff52c3aba06e984cf85d71370fa0f8dfd793a1351edb63b5dc9762e6f13d6b4319bcff0ad9a0e4684bfbc8e515599e2c7a6d3a21712aa1c3231c80f83b0ba0b6cc42d81d94ca80", - "0xf90211a0e5c073375c96b3641fb3b0d962e2dbc45f64232981ca11a3ae0396b8919eeae4a0ba8b404dbedeb2484221f33656620ed5dfdfe36e809def753c764fbd58cb8838a0d52e57afe17bb0cf1f47c1941930b6738889b3dda7d635484a005da0aad5f085a02b63fe2841a2307bc09ce791d34dd9842b34f72c63677e0107ff1d09044421eaa03c5c5dbc0f65e6de6295de769946044249af07830e21917ab2479167df25f887a07b003793df6ccf8e57346e97eef98c736aa9b7299070f0a873ed90bad6915d4fa0227dd09a0c8a5cf0d3843048ccb989f7a7d0de739f916cc935fdb18350a4d06da053211520ee3d76320e9e5403a0c43d21f13b8bcee61574fe5e29c169eb43b156a0e46ac93a109ca343767a22aea8075b678161bb3e451c191b0c8467e4f1fbbd3ba0116a474ca799b2e7671618ffd9b2014884d0cc415e765f2fc6a99f4528dff0a0a024a2cf34ca4ac8dd43f22766540bdbb55e02d55b4a83d3d74aafb7e064045744a025422a1657edff18482e476639ac7c6958eaa3ca07f206cce6ea030a3e38364ea0f66cbc64c91e8f85c929911638014a7fe97ceea99fbcf81c9cb97fc006b91964a06c9c16770f2a2015942e1476f1db82e457d7b0fce7cd3c93eb138a209ef7b1f5a060cc0346532fb66040018760796f719cbfe8ddf87805f7160fb0513da37fbeffa0ba83cfb35237c9fe9b532ec2160266da28f5ecfa2923b1d8b0ac04e469dbe2a180", - "0xf90211a0be7663df972b337246f45b1c01a7a8a8fcbf5cb09fb4d795d024587a937cf4f6a0f0576356970a9d1e7d1ae63db09e46cabe3242d6ba5fdb2ba7f5aec490f4446aa08679d78580a7d4f8c19fced1ba48b133afd40284551af14edd9286a3a82fc037a02534752e6c8afb0c5f8695b2daac0bd2e5f34dd7368afed60f3a39fd7b25bb51a08f41ca425e6ae789aeee71f331f3ba9dec3e9fe6a84c8ef3da63e5a2d9251bb4a01b67159c328f93d3db19ec53ab849083365825ee312bc9b401af7873ff91c16ba07eb467baaff8aff04224010fa34074d0419dce3cfe10f5b950fbebe964936d20a01320439cf94d0643a9ac17afcd02dbbdd239050acd3ae24d24630a47a89ae18da0602aafe319588f850f9649099be8a8fd155b1752f12ddb55328d3b3cfe42e7e7a09bf97c817af4d079a451c33512e7e76b1c73e7cf34f482155d01ab082c47793da09451e3a6cb4ccb7b17f7f480a6ff017b80f20b9d659fd3b0fc98e40b39298cf3a09a762ed39ec1d91aa52dcc9cd74f6ca9d98f04f6fccca70480243e1f2c5e7fbfa0f7ca342009740f9231f612984a00b14b643f481b71bd42380eb4c0a386eefb9ba05d72b701f47b03981800c7205d67726940c63f3d611eb1406484bafe812039dba0bf4ea85bc84c06fa7b72213723ed487d473fb07fc7ab390057e6f60947146bd4a0a60af3b5570360be0291883c10877ccb950dfc7a8b922c2461e9564af4ec66e180", - "0xf90211a0045dac1b3edd6744e327fcfa1cd5a250179b49adb150967b026b9dcd4e282e7aa089eb89e009236cfb8899d65014a4a6793e1d3b97c23b9dce8c473c201ef99ba3a03e839fd2c273e9744e008bdb058906bb897469d42dbd96bb60f3700c47a53873a0ff11b496d368221778ce33e4c979c9a2a64578372122c03e50cc7857cdf8cb19a00753a249b72b69794020934df34940c3bdae7d98554ff2c21727053f3278e418a01d981e829eab8c1610502eacf0c6e609b8f98315e92b409b476a3e249495854ba05ee0412ab87d42ed03734e7ca8db9a5f3ed29687f998975dccdaebcbbb671bd9a042b5ff7c68cb82b9bb938b069dd493188978b197ac9aa68a25c1d2e60a19a0cea04bf7a507aa0d9d3e1d58758df949f2d5a35bba41f545c002c97195266fb02213a06f43c887bd8e634778bf676170118a377be58823f71acde465d96bd1c9078433a0dfc0a31571784f473415095eb431c0aa23f877b8a064c8bb8873d0d84c816c9aa0cc333539a85ebe9917907294e2c9092804ecfdb9638a1a2a7d140731a5b1e075a0d934145b1201ebf1d0bf2c24634db1ecdecf7e10b6767bf08d661041bc0dd2a2a07f49173fb16451be04983ca90031ccc5e8316a302047888c2a02447f6f631007a0bfdb09464f10f9709a9ede282d588185b9923a4c67248ce25aa2f846c44c21b7a0c848b846bbb797142061585e971b2acb8895768cdbf9d81aa33e7dd167af434680", - "0xf901d1a0e21144a5049f6bec9c82907863f084666375595a86b49fd4fd431addb8a1643180a072e0615f55001672b82d8e8101517990bd63bac3a107962a72c14f7c839ab298a0133b7a5bb62c37214443f6ec79f51315455f034a4bda092df87a68f2448fc286a088e7916840f8be03239dc69915128d71183cd02e3004233f853728168e263dd880a06d2eae9a83d6649bec9df71cbf17860cdc7883edb4c49ce2cfd62762b6faa884a0f7794e90a8eb8740cb7fb0f5d187ef02ae528e7daf5c8c003205450201d28bbda0fbb20af10d162cf497400a1fe31e5cef525a8616dfdf55942a7507186157c0e3a0235acffeff72079b16f29980260890e4c0132e67b04e56075e877e9a6711885da041040b44341b9f05c1e3cc641dbc0cee00e23b238b707c666af37cf58f6ca764a0fe911787b62865dbc0aaa6df39303c93ea52b22e6abb6396c974313c04c132b8a0c3a0f0ed4d74998bc20c8195049fbc6b481656b17ca7fc19a59f76db0a73c311a0e2651e12eb9ef5c8d81b07ac28b44cf15e3e4ed3da2100b891396d9602212037a0691d68d3d5ba55dc3d6b17f5b41dabf1878de6e67d49993e41944a6747eff2c0a02308b43a944cda77575bf0b479430e7679db0fd265eddccca81a5c26ecb77cfb80", - "0xf871a025b309d3d19deedd755b1a79446caa5038552ee67c087ce3073280e532fcad7e80808080808080a05b08a1b27ff7bc8eb7e826adcf12d56b0c5fb99d69c9285036d1dab1d320e4c18080808080a00b1efefd126908429221e5faa6b9521c6053f362b8651073c16a4c1e5c3e6dfb8080", - "0xf871a0acd2910d71847b68f0c4aab889d1fae124a51c06f5c008509af41a90353e250c80808080a097fb7d07d62028e43721f195dcf995d511f178c9044221b141388df336bb91ca8080808080a0fac8c95016dbaa54aa7b086af1554796f1a68d9b7469799e0b7539d7b9e72b3e8080808080", - "0xf8709d30147f4cc0e0156d993334777d699c312c2fe454f8b3fa338ed309f4a0b850f84e038a03879854ce7afb402eb9a0361cb165ecac85c1cbd217c395312261f8a4a40607de762f35d117fd5e68fe8ea01f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - ], - "address": "0x4200000000000000000000000000000000000016", - "balance": 16668386523779130470073n, - "codeHash": "0x1f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - "nonce": 3, - "storageHash": "0x361cb165ecac85c1cbd217c395312261f8a4a40607de762f35d117fd5e68fe8e", - "storageProof": [ - { - "key": "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", - "proof": [ - "0xf90211a046fd8cc7acfd7e1648d5f5d672b00a57975866ab77fc1d1edd0fd470b1e9c974a01089e1f22f655ca9dd573e94092409b6058c886ffd306958e3946e8b4a4ca5dea080c546bc73d85d29d0d3d6bcc6c13903f4d86e14afbefb3b76829e30bfad750fa003dde1bf27d9042381a40a6fe4ee85950658fe79f166becce834480d3da1a420a00ff465b6e07b5173fbe95eb1cbb774e037a82e68567f3433d04aef0c83f4a841a07ddfb95a01affa0cddfb7367ddc695c178e2338c52d261ad1adf1666ffbecd0ba0848750dadc167a3169b3feaf0f5cb436cced4a1c582ca715f4382f3530431bc4a0facb8f76564071139d5b91c547edd2b81d336203ea48aa2f023f151f31d3b7eba0179955930c03dada33bfdab40af3102fcde29f320f965bd0e4855caa69e3f946a0fa5771f1a70c9264c1a74546ec5bee6bddef5d7436684e1e12374601902f62e2a09165f315cf12e23fa8bad31ae89adfff1f11911cb7234e39da68af502d7826f7a081f23503029ef3b76a00e16c6e84c787ef55a36718531828441a2bfa370efd95a030feda45aea31e059830686c093d6dd3fd8af3c6060c917b96641dd5f2684b1ca099131a0429fc3b9fc21f241ee4edb035ca5e7edc020edf8f20237e90fa19bf7aa036c92dcdcdab8a0633fe4d485175b822e7d4ef480735821f051ce6ac363f480ba0d58de2b771b8dbc48c116f88d110a07ddf2f0ea4bab06016af5e820044d7710680", - "0xf90211a0d140c5c2b3883d47ab4a8a854db1b485bef6d66668bbf28db9f44f1a33a47efda08eb4a086450124184683edf6477754cce893ec77a0d850fdb4a9b42d312878b1a05d85206335640539cb15f5a3b46119425012711ac4a0a296d124827d02e03df6a0bc783601ddd055a8ddfce04b4bfb53d2b8abba6906f2aa506147c15bea6e2a90a0c3737ed1dd6b1227ef9082e5c5858d37949a138f6b80f99b858422a87f2fe63ca056bd56c1c09b31b30004af2c6c72898b04199f705cdd945ad3bc595093d4c575a040082b3a29948b37698f125ce85b17a891a2dee51ddfc922f812d35576e8d189a07979fe1847729a1897dd777efc7e4997397968a787a122a4d41529cfe78b4f1aa0c8f4c637bed657d99b94ebbc55716ea1ed7349012ee2368f094f1dfa6c6f9a22a016dec76b539ae8ec56fd26a370d57994852bccf7fe5d5a6a67ec31a62b9ff04fa062b8cfbed7df52a860b2246f3bba9e2eb3ff197ceed3b3cefd8de438fd45fb41a0f7d4494f5cdee910ba5a5f3d91d49eb8471e4be004af048aab40720e02f870e8a092c374c433448b5d7e7b7b0950646fc258ec02057d2c05f0cdeefaa233cfc2b2a0fc6ca11cf5ab126c3ef596b50da411a3f10ca65fff2c16f165593e91c105bcbca0be926b1fe454a7a063df34b74987258307b2f9fe88a1efbbffa64e8631e18f62a09a128dac06f05dd226cc59b573ef500f42a3af50e9518b6b9c8de091fbb81dd380", - "0xf90211a06b4334774094b85e6d6b212ef244ea8d37e3840a8900cf7fcaf26f0ba1b57f80a08c7ec04dc06a7472cab313f173f0c91d9e2a283dbcb3ab3b8679b0b8e8663595a0e493d56c712d2e5466faad468cb14dd9e7a09759a01b045a00a0bee004b4a135a0fd043ac499e3541c8a011fc56b1fe0dbc831d246374c3d564760b966520b250ca077d1f87eb1a060e12e7d6ccf12e4bd7b4975651aede3b90fb5c2c91ee0f14507a0baaafc9bea47c22ee62a354053caa05969ba44b4b97956ac04fef8965a6a4f08a0b693b7af292de08befe1ea744f435e945ba85baf8a63d0343a4d010ac05c4803a04ab831ebdb5c61f93b62385eaab42693aa7bcf1a3d64c2be1513856cc09066aba00ca3ac70b29ab6dc9824d4f53252a61b3e6cf1be81066212c03dbc9f0f876a2aa0a616ee59b09acbed36575744b095a6da649dde34146325a53d0c27e0e20ba6d3a08b5e70895c23dd7d60d07de7a6303eb97777da22463a6e0339af64c4e81d5af4a092ec52fedb421ac75f2eca910968d2266ba5a0a436d3ed399d4336b855d6a813a07962445cedc68def051db9f4a8fbf4b00d6fac8fb4a323e7f80b1483faaac1e8a092e6c04604c4958d4585ac99302002049bcdc9f0b2039be6ccfa26a932507888a03949233e5a07a7569a855d3b4ce7c3411d7cae464d76b85521653c3371da2ff0a084dc2e98c595137b2ca459c5e79afee3009b5591589c8a08991fc8d55705594d80", - "0xf891808080a0ca67d7b0ef83f204cf4fc9224521b03a53ee862f1f27c09d2ce6ffe7db493918a0dba447f8f67f2f11a37e15da88e589cf53711230ab18d7d9fa73a2c5b490cde08080a0e2e1621f67a50c4257dade2586847698274771dcae98f127cba14826c8786f8e8080808080a010155a6ce4d4e938b8b77e65013fe753a7fbee3943538c2b7aef608a44a13288808080", - "0xf851808080a045b921b743a4a6a427e260907095ee3aeeae883f4b2b8f391dd5a52c3e42a35b80808080808080808080a04b56025e29659751f0c3af2a13c9748c86ff7e39436524afe5b550fa5dbc61e98080", - "0xe09e3ae9e50a84347d77c11606b3dc7b2a80bc43ebb66382c342916c5281ddab01", - ], - "value": 1n, - }, - ], - } - `) -}) diff --git a/src/actions/public/getTransactionCount.ts b/src/actions/public/getTransactionCount.ts index 68596d4996..f100eb5cf6 100644 --- a/src/actions/public/getTransactionCount.ts +++ b/src/actions/public/getTransactionCount.ts @@ -72,9 +72,14 @@ export async function getTransactionCount< const count = await client.request( { method: 'eth_getTransactionCount', - params: [address, blockNumber ? numberToHex(blockNumber) : blockTag], + params: [ + address, + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : blockTag, + ], + }, + { + dedupe: Boolean(blockNumber), }, - { dedupe: Boolean(blockNumber) }, ) return hexToNumber(count) } diff --git a/src/actions/public/getTransactionReceipt.test.ts b/src/actions/public/getTransactionReceipt.test.ts index 3378043a65..11edab392d 100644 --- a/src/actions/public/getTransactionReceipt.test.ts +++ b/src/actions/public/getTransactionReceipt.test.ts @@ -31,77 +31,35 @@ test('gets transaction receipt', async () => { assertType(receipt) expect(receipt).toMatchInlineSnapshot(` { - "blockHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "blockNumber": 22180096n, + "blockHash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "blockNumber": 22263622n, "contractAddress": null, - "cumulativeGasUsed": 100334n, - "effectiveGasPrice": 556703106n, - "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", - "gasUsed": 100334n, + "cumulativeGasUsed": 512813n, + "effectiveGasPrice": 12630924238n, + "from": "0xe2da046340e00264c4f0443243a0565007ae08ac", + "gasUsed": 512813n, "logs": [ { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "blockHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "blockNumber": 22180096n, - "data": "0x00000000000000000000000000000000000000000000000004db8e1b27000000", + "address": "0xf7134ce138832c1456f2a91d64621ee90c2bddea", + "blockHash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "blockNumber": 22263622n, + "data": "0x", "logIndex": 0, "removed": false, "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x00000000000000000000000044bdbc621752f0bc4043c67d2e6c4434b4ba63ec", - ], - "transactionHash": "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", - "transactionIndex": 0, - }, - { - "address": "0x0aff507ac29b8cea2fb10d2ad14408c2d79a35ad", - "blockHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "blockNumber": 22180096n, - "data": "0x000000000000000000000000000000000000000000000018e7bcf50000000000", - "logIndex": 1, - "removed": false, - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000044bdbc621752f0bc4043c67d2e6c4434b4ba63ec", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - ], - "transactionHash": "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", - "transactionIndex": 0, - }, - { - "address": "0x44bdbc621752f0bc4043c67d2e6c4434b4ba63ec", - "blockHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "blockNumber": 22180096n, - "data": "0x0000000000000000000000000000000000000000000026bf21d99ceaf87047070000000000000000000000000000000000000000000000078dbac380593b4708", - "logIndex": 2, - "removed": false, - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1", - ], - "transactionHash": "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", - "transactionIndex": 0, - }, - { - "address": "0x44bdbc621752f0bc4043c67d2e6c4434b4ba63ec", - "blockHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "blockNumber": 22180096n, - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004db8e1b27000000000000000000000000000000000000000000000000000018e7bcf500000000000000000000000000000000000000000000000000000000000000000000000000", - "logIndex": 3, - "removed": false, - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x25f6d5cc356ee0b49cf708c13c68197947f5740a878a298765e4b18e4afdaf04", + "0x1357fc80e3c64c8401f820505cfac37de008a3e8d391af8c3db8a552c4684da3", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x07c6dbd483eda927d8e13634724c68fd853f116c13471489fef6b26ed9187455", ], - "transactionHash": "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", + "transactionHash": "0x546e80faa036cf6a1788b307a33b42a185f9eb07d99e0f5b87e7bc92c65ddf80", "transactionIndex": 0, }, ], - "logsBloom": "0x00200000000000000000000080200000000000000000004000000000080000000000000000000000000000000000000002000000080000000020000000000000000000000000000000000008000000200000000000000000000000040000000000000100000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000080000004000000000040000000000000000000000000000000080000000000000000000000000000000000002000000000000000000000000000000000000001000000000000000100000202000000000000000000000000000000000000000000000000400000000", + "logsBloom": "0x00000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000004000000000000000000000000000000000480020000000000000000000800000040000000000000000000000000000000000000000000000000200400000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000020000000000000000000000000000000000000400000000000000000000000000004", "status": "success", - "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", - "transactionHash": "0xad83b46708d9640b8189282c107629e0c78640a5cc4d1f4bd23de671cd3a9e1e", + "to": "0xf7134ce138832c1456f2a91d64621ee90c2bddea", + "transactionHash": "0x546e80faa036cf6a1788b307a33b42a185f9eb07d99e0f5b87e7bc92c65ddf80", "transactionIndex": 0, "type": "eip1559", } diff --git a/src/actions/public/multicall.test.ts b/src/actions/public/multicall.test.ts index 36a9e2a9a2..43479c961c 100644 --- a/src/actions/public/multicall.test.ts +++ b/src/actions/public/multicall.test.ts @@ -50,11 +50,11 @@ test('default', async () => { ).toMatchInlineSnapshot(` [ { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -89,8 +89,8 @@ test('args: allowFailure', async () => { }), ).toMatchInlineSnapshot(` [ - 39607570021188601n, - 123223606565n, + 39507977228957576n, + 123223706565n, 10000n, ] `) @@ -151,15 +151,15 @@ test('args: batchSize', async () => { ).toMatchInlineSnapshot(` [ { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -167,11 +167,11 @@ test('args: batchSize', async () => { "status": "success", }, { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -179,11 +179,11 @@ test('args: batchSize', async () => { "status": "success", }, { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -263,11 +263,11 @@ test('args: multicallAddress', async () => { ).toMatchInlineSnapshot(` [ { - "result": 39607570021188601n, + "result": 39507977228957576n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -382,7 +382,7 @@ describe('errors', async () => { "status": "failure", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -435,7 +435,7 @@ describe('errors', async () => { "status": "failure", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -489,7 +489,7 @@ describe('errors', async () => { "status": "failure", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -533,11 +533,11 @@ describe('errors', async () => { expect(res).toMatchInlineSnapshot(` [ { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -606,11 +606,11 @@ describe('errors', async () => { ).toMatchInlineSnapshot(` [ { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { @@ -761,7 +761,7 @@ describe('errors', async () => { "status": "failure", }, { - "result": 123223606565n, + "result": 123223706565n, "status": "success", }, { diff --git a/src/actions/public/simulateBlocks.ts b/src/actions/public/simulateBlocks.ts index b563c277a0..1229c1d00e 100644 --- a/src/actions/public/simulateBlocks.ts +++ b/src/actions/public/simulateBlocks.ts @@ -218,7 +218,8 @@ export async function simulateBlocks< }) } - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag const result = await client.request({ diff --git a/src/actions/public/simulateContract.test.ts b/src/actions/public/simulateContract.test.ts index df4a31ee63..f01776229d 100644 --- a/src/actions/public/simulateContract.test.ts +++ b/src/actions/public/simulateContract.test.ts @@ -24,7 +24,7 @@ import { parseEther } from '../../utils/unit/parseEther.js' import { parseGwei } from '../../utils/unit/parseGwei.js' import { mine } from '../test/mine.js' -import { maxUint256 } from '~viem/constants/number.js' +import { maxUint256 } from '~zkr-viem/constants/number.js' import { simulateContract } from './simulateContract.js' const client = anvilMainnet diff --git a/src/actions/public/verifyHash.test.ts b/src/actions/public/verifyHash.test.ts index 6ab29f9969..e4a1b05ed4 100644 --- a/src/actions/public/verifyHash.test.ts +++ b/src/actions/public/verifyHash.test.ts @@ -15,7 +15,7 @@ import { entryPoint07Abi, entryPoint07Address, toPackedUserOperation, -} from '~viem/account-abstraction/index.js' +} from '~zkr-viem/account-abstraction/index.js' import { getSmartAccounts_07 } from '../../../test/src/account-abstraction.js' import { bundlerMainnet } from '../../../test/src/bundler.js' import { privateKeyToAccount } from '../../accounts/privateKeyToAccount.js' @@ -25,10 +25,12 @@ import { http } from '../../clients/transports/http.js' import { signMessage as signMessageErc1271 } from '../../experimental/erc7739/actions/signMessage.js' import type { Hex } from '../../types/misc.js' import { + concat, encodeFunctionData, hashMessage, pad, serializeErc6492Signature, + slice, toBytes, } from '../../utils/index.js' import { parseSignature } from '../../utils/signature/parseSignature.js' @@ -471,3 +473,18 @@ test('https://github.com/wevm/viem/issues/2484', async () => { }), ).resolves.toBe(true) }) + +test('https://github.com/wevm/viem/issues/3593', async () => { + const signature = await signMessage(client, { + account: localAccount, + message: 'hello world', + }) + + expect( + verifyHash(client, { + address: localAccount.address, + hash: hashMessage('hello world'), + signature: concat([slice(signature, 0, 64), '0x001b']), + }), + ).resolves.toBe(false) +}) diff --git a/src/actions/public/waitForTransactionReceipt.test.ts b/src/actions/public/waitForTransactionReceipt.test.ts index c41a76532c..7fc6e5f2c1 100644 --- a/src/actions/public/waitForTransactionReceipt.test.ts +++ b/src/actions/public/waitForTransactionReceipt.test.ts @@ -11,8 +11,8 @@ import { sendTransaction } from '../wallet/sendTransaction.js' import { anvilMainnet } from '../../../test/src/anvil.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import { keccak256 } from '~viem/utils/index.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import { keccak256 } from '~zkr-viem/utils/index.js' import { prepareTransactionRequest } from '../../actions/index.js' import { sendRawTransaction, diff --git a/src/actions/public/watchBlocks.ts b/src/actions/public/watchBlocks.ts index 1913cbf211..3bae05bdd5 100644 --- a/src/actions/public/watchBlocks.ts +++ b/src/actions/public/watchBlocks.ts @@ -152,7 +152,7 @@ export function watchBlocks< blockTag, includeTransactions, }) - if (block.number && prevBlock?.number) { + if (block.number !== null && prevBlock?.number != null) { // If the current block number is the same as the previous, // we can skip. if (block.number === prevBlock.number) return @@ -177,12 +177,12 @@ export function watchBlocks< if ( // If no previous block exists, emit. - !prevBlock?.number || + prevBlock?.number == null || // If the block tag is "pending" with no block number, emit. - (blockTag === 'pending' && !block?.number) || + (blockTag === 'pending' && block?.number == null) || // If the next block number is greater than the previous block number, emit. // We don't want to emit blocks in the past. - (block.number && block.number > prevBlock.number) + (block.number !== null && block.number > prevBlock.number) ) { emit.onBlock(block as any, prevBlock as any) prevBlock = block as any diff --git a/src/actions/wallet/__snapshots__/signTransaction.test.ts.snap b/src/actions/wallet/__snapshots__/signTransaction.test.ts.snap index 1b6f3923ef..3cf9e1d462 100644 --- a/src/actions/wallet/__snapshots__/signTransaction.test.ts.snap +++ b/src/actions/wallet/__snapshots__/signTransaction.test.ts.snap @@ -2,4 +2,4 @@ exports[`eip4844 > default: local 1`] = `"0x03fa040184f8ae0182031180808252089400000000000000000000000000000000000000008080c08504a817c800f842a0012580b7683c14cc7540be305587b0eec4e7ec739094213ca080e2526c9237c4a001243c18a024c835cce144b3b6b0eb878b7820c7c7b7d9feff80080d76519c4580a0c6a1423071048feb43d74529b6241ad5b936a56a2db5e4e17d3fd0fee63673faa0166f063528f9477309bedc59915433d72a3726d1732db20fdc64bdd95404dd57fa040008ba020000004c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e0073656374657475722061646970697363696e6720656c69742e20557420756c0074726963696573206f726369207175616d2c2073697420616d657420656c65006966656e6420616e7465206672696e67696c6c61206e65632e2050726f696e0020616c697175616d20696e2074656c6c7573206772617669646120636f6e7600616c6c69732e2050726f696e2072757472756d20636f6e7365717561742065006e696d20736564206d616c6573756164612e2041656e65616e206567657374006173206d657475732076697461652073656d20636f6e64696d656e74756d200073757363697069742e2053757370656e64697373652061726375206475692c00206772617669646120696e2065726f732065742c206d617474697320616c6900717565742074656c6c75732e20496e74656765722070656c6c656e7465737100756520616e74652066696e69627573206d692072757472756d20616c69717500616d2e20496e7465676572206d6174746973206469616d2073656420666575006769617420696d706572646965742e20467573636520696420626962656e6400756d206d617373612e20496e74656765722061742074656d70757320656e69006d2e20416c697175616d206574206d6f6c6c6973206d61676e612e0a0a536500642073656d70657220656c656d656e74756d206d61737361206e6f6e2076690076657272612e205365642073697420616d6574206d61676e612065742069700073756d207472697374697175652076756c7075746174652e2050656c6c656e0074657371756520696e206c696265726f2073656d2e2053757370656e64697300736520736f64616c65732074656d706f722061756775652074696e63696475006e7420666163696c697369732e204d616563656e6173207363656c657269730071756520697073756d20617420666575676961742064696374756d2e204d61006563656e61732076656c2075726e6120736564206d6574757320756c7472690063696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6175726973002c2073757363697069742065676574206172637520696e2c2072757472756d002072757472756d206d617373612e204d616563656e617320616320696d706500726469657420656c69742c2073656420737573636970697420697073756d2e002050726f696e206d6f6c6573746965206d6173736120617263752c20612063006f6e64696d656e74756d206f64696f20756c7472696365732073697420616d0065742e205072616573656e742072686f6e6375732065782070757275732c200073656420706c616365726174206e756e63206f726e6172652065742e205068006173656c6c75732061206e696268206d616c6573756164612c20756c6c616d00636f72706572206e69736c2061742c2070656c6c656e746573717565206c6f0072656d2e2050686173656c6c7573206c6f72656d20697073756d2c20756c6c00616d636f727065722075742076756c70757461746520616c69717565742c20007661726975732065676574206c6f72656d2e0a0a4d61757269732068656e640072657269742074696e636964756e74207175616d20616320696e7465726475006d2e20496e206120697073756d206e6f6e207175616d206d6178696d7573200066696e696275732e20536564206f64696f2065782c206c6163696e69612076006974616520697073756d2073616769747469732c207665686963756c612065006765737461732072697375732e204e756c6c616d20616320656c656966656e006420646f6c6f722c20657520706f72747469746f722074656c6c75732e204d00616563656e617320746f72746f722076656c69742c20636f6e64696d656e7400756d20696420656e696d2076656c2c20657569736d6f64206f726e617265200072697375732e20416c697175616d206964206c6f72656d20696e7465726475006d2c20616c697175616d20707572757320696e2c207068617265747261206a007573746f2e205574207669746165206c656f206469616d2e204e756c6c612000656c656d656e74756d206e756e63206d657475732c206e65632076617269750073206f64696f2066696e69627573206e65632e20457469616d207175697320006e69736c20696e74657264756d2c20766f6c757470617420646f6c6f72206500742c2072686f6e637573206e6962682e204d616563656e6173206e6f6e207200757472756d2061756775652c20657520656c656966656e64206d692e20446f006e6563206c6f626f7274697320616e7465207669746165206175677565207000686172657472612c206174206c6163696e696120746f72746f7220707265740069756d2e0a0a4d616563656e61732061742074656d706f72206d61676e612c0020696e20737573636970697420656e696d2e204e756c6c6120656c656d656e0074756d2072757472756d2065782c206567657420736f64616c6573206e756c006c6120636f6e76616c6c69732076697461652e20566976616d757320646967006e697373696d2c2065726f7320657520656c656d656e74756d20736f6c6c69006369747564696e2c206c6f72656d20647569206c7563747573207361706965006e2c206163206d617474697320646f6c6f7220656e696d2073757363697069007420656c69742e204e756c6c61206567657420696d70657264696574206d65007475732e2043757261626974757220636f6e64696d656e74756d206120707500727573207363656c6572697371756520756c7472696365732e20416c69717500616d206c696265726f206d692c20766573746962756c756d2065742074656d00706f722065752c2070686172657472612073697420616d657420656c69742e0020557420696420616c697175616d206c696265726f2e0a0a53656420636f6e007365637465747572206c65637475732066696e69627573206c656374757320006f726e61726520706f7274612e20447569732073656420636f6e677565207300617069656e2c20757420696d7065726469657420656e696d2e205365642065006c656d656e74756d20696163756c6973206c6967756c612c206e6f6e207665006e656e617469732073617069656e206c75637475732069642e2053656420650066666963697475722c20616e7465207669746165206d6f6c657374696520650066666963697475722c20656c697420697073756d20636f6e64696d656e7475006d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f64696f20007669746165206c616375732e2053757370656e64697373652065676573746100732073656d206f64696f2c20696e20766573746962756c756d206e69736c2000706f72747469746f722076656c2e20496e2074696e636964756e742c206d65007475732061206c6f626f7274697320756c7472696365732c20697073756d20006d6574757320766573746962756c756d206e756c6c612c20617420696d706500726469657420746f72746f72206e6571756520736564206d692e204d61757200697320617420616e746520616e74652e20566573746962756c756d2063757200737573207665686963756c6120756c7472696365732e204d6f726269206c750063747573206120657374206e656320696d706572646965742e205574206e6f006e2075726e61206672696e67696c6c612c2065676573746173206d65747573002065752c2064696374756d20656c69742e20496e2064696374756d20707572007573206964206c656374757320616c69717565742074656d706f722e20416c00697175616d206572617420766f6c75747061742e204e616d206175677565200066656c69732c20696d70657264696574206174206d61676e61206e65632c200070656c6c656e746573717565207661726975732074656c6c75732e0a0a4d61006563656e617320656765742065782070656c6c656e7465737175652c20656c00656d656e74756d206469616d2061742c20656c656966656e6420646f6c6f72002e204e756c6c616d20626962656e64756d2065726f73206e656320646f6c6f007220646170696275732c2061742073616769747469732065737420636f6e6400696d656e74756d2e205072616573656e74206e6f6e2068656e647265726974002065726f732e204d616563656e617320636f6e736571756174206d617373610020766974616520647569207665686963756c612c20757420756c747269636500732072697375732073656d7065722e2053757370656e646973736520646170006962757320616e746520646f6c6f722c206120626962656e64756d2076656c0069742074726973746971756520696e2e204d616563656e6173206e65632069006163756c697320656e696d2e20566573746962756c756d20736564206f6469006f2064696374756d2c20766573746962756c756d206f64696f20656765742c0020656c656966656e64206d657475732e204d6175726973206163206c69626500726f20736564206c656f2070756c76696e617220636f6e76616c6c69732e200044756973207665686963756c61206f72636920656c69742e2056657374696200756c756d2065666669636974757220656765737461732065782061206f726e006172652e2051756973717565206f726e617265206e6962682063757273757300206d6f6c65737469652070656c6c656e7465737175652e0a0a446f6e6563200074696e636964756e7420666575676961742073757363697069742e2056657300746962756c756d20756c6c616d636f7270657220646f6c6f72206e6f6e206c006967756c6120766573746962756c756d2c20612070756c76696e6172206e75006e6320636f6e7365717561742e20416c697175616d2070756c76696e617220007661726975732074656c6c757320657520617563746f722e204d6175726973002076697665727261207665686963756c612065782c20766974616520616c69007175616d20617263752064696374756d2069642e205175697371756520706800617265747261207669746165206d61676e6120696e206f726e6172652e2056006573746962756c756d207072657469756d207363656c65726973717565206f0064696f20696420636f6e73656374657475722e204e756c6c61207365642065006e696d207574207175616d20636f6e736563746574757220747269737469710075652e0a0a4e756c6c616d206f64696f206d61757269732c20666575676961007420657520666575676961742075742c20706f737565726520766974616520006d61676e612e205365642076697461652073656d706572207475727069732c002073697420616d6574207363656c65726973717565206e756c6c612e2051750069737175652074656d707573206e6f6e206d692073656420706f7274746974006f722e2050726f696e206c656f2065782c20706f73756572652065752065670065737461732076656c2c206d6f6c657374696520736564206d657475732e20004e616d20747269737469717565206c6163757320657420697073756d206d610078696d757320756c747269636965732e204e756c6c616d20706f7375657265002073697420616d65742073617069656e206d6f6c657374696520756c6c616d00636f727065722e204d6f72626920656765737461732c20657261742061632000626c616e6469742064696374756d2c2073617069656e206e69736c2066696e0069627573206e6973692c2073656420656666696369747572206c6563747573002073656d20657520697073756d2e2050686173656c6c7573206c656f206175006775652c2076756c70757461746520706c616365726174206175677565206500752c2074656d706f722074696e636964756e74206c6f72656d2e204675736300652073697420616d65742073656d70657220746f72746f722e0a0a5375737000656e646973736520706f74656e74692e204d616563656e6173206964206461007069627573207475727069732c206e6f6e2076756c7075746174652065782e00204e756c6c616d2072757472756d206c6967756c61206e65632072697375730020737573636970697420766f6c75747061742e20416c697175616d206c756300747573206e657175652073697420616d65742061726375207472697374697100756520766f6c75747061742e205365642076697461652066656c6973206c6f0072656d2e20416c697175616d20706c61636572617420656c656d656e74756d002073617069656e2c2076697461652076756c7075746174652072697375732000766f6c757470617420696e2e204d616563656e6173207669746165206475690020657261742e2050686173656c6c7573206672696e67696c6c61207361706900656e2073656420647569207665686963756c612c2076617269757320636f6e00736563746574757220616e746520736f6c6c696369747564696e2e20437261007320696163756c69732c2073617069656e20696e74657264756d20696d7065007264696574206566666963697475722c20647569206d61757269732070756c0076696e617220697073756d2c2061742076656e656e61746973206e69736c20006f64696f2071756973207175616d2e204e756e63206566666963697475722000636f6e73656374657475722073656d7065722e204e756c6c616d20706f737500657265206e756c6c612072686f6e6375732070756c76696e617220756c74720069636965732e204e756e632074656c6c757320617263752c2068656e6472650072697420736f6c6c696369747564696e206469616d2076697461652c206865006e6472657269742066696e696275732065782e0a0a536564206c6f626f7274006973206d6174746973206c6967756c612c20766974616520636f6e76616c6c006973206c656f2064617069627573206e6f6e2e204d616563656e617320766900746165206c61637573206575206e69736c20617563746f7220656c656d656e0074756d206e6563207669746165206c65637475732e204d616563656e617320007669746165206f726369207669746165206d6920756c6c616d636f727065720020706f72747469746f72206964206c6f626f72746973206e69736c2e20446f006e6563206964206d617572697320697073756d2e20416c697175616d20657200617420766f6c75747061742e20566976616d7573206c6f626f72746973206e00696268207574206573742076756c70757461746520666575676961742e2049006e7465676572206c696265726f207175616d2c20756c74726963657320617400206f7263692061742c20636f6e677565206665726d656e74756d206d61737300612e20457469616d2069642065726f7320696163756c69732c20636f6e6469006d656e74756d206f7263692074696e636964756e742c206d6174746973206d00657475732e204d616563656e617320756c7472696365732073697420616d65007420646f6c6f722069642070656c6c656e7465737175652e2056657374696200756c756d20706f727461206d6178696d7573206e69736c2c20696e2066696e006962757320746f72746f7220766f6c75747061742075742e2055742067726100766964612c20646f6c6f7220756c7472696365732068656e6472657269742000666575676961742c20656e696d2073656d20696e74657264756d206c696775006c612c20616320656666696369747572206572617420656c6974206964206c006f72656d2e20496e2073697420616d657420756c6c616d636f72706572206c006f72656d2e0a0a50686173656c6c7573206c6967756c612075726e612c2063006f6e736571756174206574206c756374757320612c206f726e617265206574002061756775652e20566573746962756c756d20657420616e7465206174206c006163757320626962656e64756d20696d706572646965742e20457469616d200074757270697320617263752c2063757273757320766974616520766976657200726120612c2068656e64726572697420766974616520617263752e2050726f00696e206f726e617265206d6175726973207574206d61676e61206d6f6c657300746965206d61747469732e20446f6e65632074656d706f72206c6563747573002071756973206d617373612076756c70757461746520696e74657264756d2e002050726f696e206575206c6967756c61206469616d2e204d616563656e617300206461706962757320747572706973206c65637475732c2075742066616369006c6973697320656c6974206469676e697373696d2075742e204e756e632062006c616e646974206f726369206120616e746520666163696c697369732c2061007420636f6e76616c6c69732066656c697320666163696c697369732e2043750072616269747572207375736369706974206d692061206c696265726f20706f0073756572652c2071756973206f726e617265206a7573746f2076697665727200612e2050656c6c656e746573717565206861626974616e74206d6f72626920007472697374697175652073656e6563747573206574206e6574757320657420006d616c6573756164612066616d6573206163207475727069732065676573740061732e204e756c6c612070756c76696e6172207363656c6572697371756520006d61676e612c2065676574206c6f626f72746973206e69626820636f6d6d6f00646f2061742e20447569732065676574207661726975732066656c69732c2000636f6e64696d656e74756d20706c616365726174206c65637475732e20416c00697175616d20617563746f722074656d706f722075726e612065752070756c0076696e61722e204d6f726269206375727375732074656d706f72206e65717500652c206e6f6e20626c616e64697420646f6c6f7220666163696c697369732000656765742e2053656420736564206c6f626f727469732073656d2e0a0a4d61007572697320756c7472696369657320656c69742075726e612c2076656c2061006c697175657420707572757320617563746f722076697461652e20507261650073656e742076697665727261206f64696f2074656c6c75732c20717569732000706f7375657265206e756c6c6120616c69717565742061742e204c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e20437572616269747572200065676574206d65747573206174206c6967756c6120656c656966656e642070006861726574726120696e206d616c657375616461206475692e20447569732000636f6e7365637465747572206469616d2075742066657567696174207275740072756d2e20566976616d757320657569736d6f64206e69736c2076656c206d006178696d75732073616769747469732e20496e20636f6d6d6f646f207369740020616d6574206c6f72656d2065742074696e636964756e742e205574207065006c6c656e746573717565206e756c6c61206e6f6e206d617572697320636f6e0064696d656e74756d2c2069642076756c707574617465206f64696f20626c61006e6469742e2053757370656e6469737365206e6f6e207072657469756d206d0061757269732c206e65632074696e636964756e742073617069656e2e0a0a460075736365206461706962757320657569736d6f64207475727069732c2075740020656c656d656e74756d20656e696d20657569736d6f64206e6f6e2e204e61006d2061206e6962682074656c6c75732e2050656c6c656e7465737175652069006163756c697320746f72746f722073656420706f72747469746f7220636f6e0064696d656e74756d2e204375726162697475722066617563696275732074750072706973206d6178696d75732c2076656e656e6174697320616e746520736500642c206d6f6c6c69732072697375732e205365642074656d707573206d6167006e612065676574206e756e6320706f72747469746f722c206174207275747200756d207175616d20636f6d6d6f646f2e20496e746567657220626c616e64690074207661726975732074656c6c75732073697420616d65742072757472756d002e2050726f696e206d6f6c6c697320747269737469717565206e6571756520007365642074656d7075732e204475697320706c6163657261742c206f726369002069642064696374756d20766573746962756c756d2c206c6967756c612064006f6c6f7220766f6c7574706174206c656f2c2076697461652066617563696200757320656e696d206e756c6c6120717569732065782e20437261732066617500636962757320657374206573742c2073697420616d657420616363756d7361006e206c6163757320696d706572646965742069642e204e616d206d6174746900732c206e756e6320736564206469676e697373696d20706c6163657261742c00206d617373612075726e6120696163756c69732076656c69742c207175697300206c7563747573206469616d206a7573746f206575206e6973692e20416c69007175616d206572617420766f6c75747061742e0a0a50656c6c656e74657371007565206e6571756520617263752c20636f6e677565206e6f6e2061756775650020717569732c2074726973746971756520696e74657264756d206e756e632e002050726f696e20646f6c6f7220746f72746f722c206461706962757320736500642070656c6c656e74657371756520612c2072757472756d2065676574206e006973692e20437261732065742074656d7075732074656c6c75732e204e756c006c6120706f72747469746f722c206e69736920657520617563746f7220766100726975732c206572617420746f72746f722072757472756d20747572706973002c206e6f6e2068656e64726572697420616e7465206e6571756520757420650073742e20416c697175616d2076756c7075746174652076656c69742076697400616520657569736d6f6420656765737461732e20496e7465676572207275740072756d206d6f6c6c697320617263752c20757420756c74726963696573206a007573746f206d6f6c6c697320656765742e20457469616d2061742066696e690062757320656e696d2c206574206d6174746973206d61757269732e204d61650063656e617320696e20616c69717565742061756775652e204e616d20756c7400726963657320656c656d656e74756d20617263752076656c20616c69717561006d2e20566573746962756c756d20696e206c6967756c6120747269737469710075652c206661756369627573206f64696f20656765742c206c6f626f7274690073206a7573746f2e204d6f726269206575206e756e632073697420616d65740020726973757320636f6e73657175617420616c697175657420736564206163002065782e20496e2068656e64726572697420756c74726963696573206c696700756c612c2071756973207375736369706974206c6563747573206469637475006d2065752e20536564206c616f7265657420636f6e67756520756c747269630065732e2050686173656c6c7573207375736369706974206d6173736120612000666163696c6973697320696d706572646965742e0a0a447569732074696e63006964756e742065726f7320717569732067726176696461207661726975732e002053757370656e6469737365206e6f6e206475692070757275732e20496e7400657264756d206574206d616c6573756164612066616d657320616320616e74006520697073756d207072696d697320696e2066617563696275732e20446f6e0065632061742070756c76696e61722066656c69732e20446f6e6563206e65630020616c697175616d2065726f732c2064696374756d20626962656e64756d2000617263752e20496e206e656320646f6c6f722066696e696275732c20707265007469756d206c6967756c612065742c20636f6e7365717561742065782e2049006e206861632068616269746173736520706c617465612064696374756d7374002e20457469616d2074656c6c757320656e696d2c20696e74657264756d207300656d70657220697073756d20736f64616c65732c206772617669646120667200696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e6961206a750073746f20736f6c6c696369747564696e206c616f72656574206d6f6c6573740069652e20457469616d20616320766573746962756c756d207175616d2c2069006420657569736d6f6420697073756d2e205574206174206772617669646120006c6f72656d2e2053757370656e646973736520696e74657264756d20656c65006966656e64206c65637475732c2065752073656d7065722070757275732076006f6c757470617420612e0a0a55742076656c20617567756520756c747269630065732c2074696e636964756e74206d6173736120612c20736167697474697300206e69736c2e2050726f696e206567657420616e746520616c697175616d2c00206f726e6172652061756775652070656c6c656e7465737175652c2064617000696275732070757275732e20496e206574206d6574757320617263752e205000656c6c656e74657371756520616c697175616d20626c616e6469742061726300752071756973207472697374697175652e204d617572697320746f72746f7200206d617373612c206d6178696d757320717569732076617269757320612c2000706f72747469746f7220636f6e73656374657475722073656d2e2050726f69006e207665686963756c6120707572757320657420696163756c697320636f6e0073656374657475722e20557420736f6c6c696369747564696e2066696e696200757320657820696e20656c656d656e74756d2e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e205072616573656e74206e656320696d7065007264696574206d61676e612e205574206d616c65737561646120696420707500727573206e656320766573746962756c756d2e2053757370656e64697373650020616363756d73616e2065726174206c656f2c20696e20666175636962757300206469616d20696163756c69732073697420616d65742e204475697320736f006c6c696369747564696e206c6563747573207175697320656e696d206c616300696e696120657569736d6f642076656c2075742061756775652e0a0a416c69007175616d20756c7472696369657320636f6e76616c6c69732074656c6c7573002c206964206567657374617320656c697420736167697474697320696e2e20004372617320706f72747469746f72206e69736920656765742073617069656e0020636f6e76616c6c697320706f73756572652e204d6175726973206772617600696461206e65717565207669746165206c696265726f206375727375732c2000696420636f6e736571756174206e657175652072686f6e6375732e20496e74006567657220616c69717565742065676574206e696268206163207068617265007472612e204e756c6c616d20696163756c6973206e69736c2066656c69732c00207175697320696d70657264696574206e756c6c6120756c74726963657320007365642e205175697371756520747269737469717565206c61637573206174002072686f6e63757320706f7274612e204e616d20616320636f6e64696d656e0074756d2075726e612e20536564206e656320706f72747469746f72206e696200682e205365642067726176696461206d61676e612069642070757275732070006f737565726520766573746962756c756d206e6f6e20736564206e6973692e0020566573746962756c756d2061726375207475727069732c20696163756c6900732076656c20636f6e7365717561742069642c206c6f626f72746973207369007420616d65742065782e205072616573656e7420717569732074656d706f72002061756775652e204e756c6c61206567657420656e696d20656c656966656e00642c2074696e636964756e74206c696265726f2073697420616d65742c206d006174746973206e6973692e20446f6e65632064756920657261742c2070756c0076696e61722076656c207075727573206e65632c20666163696c69736973200066696e69627573206c6f72656d2e204e756c6c616d20756c7472696365732000707572757320766573746962756c756d20636f6d6d6f646f20616c69717561006d2e0a0a4f72636920766172697573206e61746f7175652070656e61746962007573206574206d61676e6973206469732070617274757269656e74206d6f6e007465732c206e61736365747572207269646963756c7573206d75732e204e75006e6320626c616e646974206e756c6c612072697375732c2076656c20736f6400616c6573206c6f72656d206f726e6172652061632e20496e7465676572206e006f6e20646f6c6f7220626962656e64756d2c206f726e61726520746f72746f007220656765742c20756c7472696369657320697073756d2e2041656e65616e002066696e69627573206469676e697373696d206f726e6172652e204d6175720069732074656d7075732c206572617420617420626962656e64756d2061756300746f722c206c656f20656c6974206c6163696e6961206f64696f2c206174200074656d7075732061726375206475692071756973206573742e20507261657300656e74206672696e67696c6c61206c6f72656d206d616c6573756164612070006f72747469746f7220696d706572646965742e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d6f7262692076697461650020666163696c69736973206c6f72656d2c20766974616520636f6e7365717500617420697073756d2e20457469616d20696420656c656d656e74756d2065720061742e204e616d20646f6c6f72206c656f2c2074656d706f722061632065780020717569732c206469676e697373696d206665726d656e74756d20616e7465002e0a0a446f6e65632061206e756c6c612072697375732e204d6175726973200066617563696275732c206e756e63206163206d6178696d75732076656e656e00617469732c206d61676e612076656c6974207072657469756d20616e74652c00206e6f6e206665726d656e74756d20656c6974206d6175726973206e6f6e20006e756e632e20446f6e65632068656e6472657269742075726e61206174207400656c6c757320636f6e76616c6c69732c20616320666175636962757320656c006974206c6f626f727469732e204e756c6c616d20626962656e64756d20656c00656966656e64206d61676e612073697420616d657420696e74657264756d2e0020496e20696e20736f64616c657320746f72746f722c206e6f6e206c6f626f0072746973206d692e205072616573656e742076656c2073656d2061206f6469006f2076656e656e6174697320666163696c697369732e20566573746962756c00756d206163206d6f6c657374696520646f6c6f722c2061742066696e6962750073206e6973692e0a0a566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2046757363652061632074656d70757320617263752c2076697461650020696163756c6973206e657175652e2055742061206e69736c207574207665006c697420636f6e73657175617420636f6e64696d656e74756d207669746165002065676574206e6962682e2044756973206574206d61676e6120616c6971750065742c20636f6e76616c6c697320656c69742069642c20756c6c616d636f7200706572206d692e20566976616d757320696d706572646965742066656c697300207175697320636f6e7365717561742072757472756d2e204d6f7262692075007420617263752073697420616d657420617567756520636f6e677565207469006e636964756e742e2053757370656e64697373652061206d6174746973206f007263692e204e756e6320656765737461732c2076656c69742073656420646900676e697373696d2073656d7065722c20656c6974206d61757269732062696200656e64756d206e657175652c206567657420616c697175616d206e69736920006e65717565206120616e74652e204e616d2066657567696174206e657175650020646f6c6f722e20566573746962756c756d20616e746520697073756d20700072696d697320696e206661756369627573206f726369206c75637475732065007420756c74726963657320706f737565726520637562696c6961206375726100653b20557420696e20636f6e736563746574757220646f6c6f722e205175690073717565206e6f6e20636f6e677565206e657175652e0a0a4e756c6c6120730063656c657269737175652c206e65717565206567657420636f6e76616c6c69007320626962656e64756d2c206c6f72656d206d65747573207068617265747200612070757275732c2073656420626c616e6469742065726174206172637520006575206e6973692e204d617572697320706c616365726174206d6173736120006575206e6571756520766f6c75747061742c2073697420616d6574207669760065727261207269737573207363656c657269737175652e20496e2076656c2000766573746962756c756d206e756c6c612e20416c697175616d2072686f6e630075732061632061756775652076656c2076756c7075746174652e204d617572006973207669746165206469616d20696d706572646965742c20766f6c757470006174206e6962682065752c206661756369627573206d657475732e2045746900616d2070656c6c656e74657371756520747572706973206964206e6962682000636f6e73657175617420736f6c6c696369747564696e2e204e756e63206567006574206a7573746f2070756c76696e6172206d657475732072757472756d20006c75637475732073697420616d65742061206d657475732e204e756c6c612000666163696c6973692e2053757370656e646973736520657520617567756520006c65637475732e2053757370656e646973736520736f6c6c69636974756469006e20657569736d6f64207661726975732e2050686173656c6c757320616e74006520657261742c20666175636962757320696420746f72746f72206e65632c00207363656c6572697371756520766172697573206e756e632e0a0a45746961006d206672696e67696c6c6120766f6c7574706174206d692c20706f73756572006520766573746962756c756d206c6967756c6120756c74726963657320696e002e20446f6e6563207665686963756c6120747572706973207175697320756c0074726963696573207661726975732e20446f6e65632073656d70657220616e00746520657261742c20616320666575676961742074656c6c75732062696265006e64756d2069642e20446f6e656320697073756d206e69736c2c2070756c7600696e6172206e6563207175616d20696e2c20736f6c6c696369747564696e2000696e74657264756d20656e696d2e20566976616d7573206c616f72656574200074656c6c75732065676574206f72636920636f6e64696d656e74756d20736300656c657269737175652e2050726f696e206574206661756369627573206f6400696f2c206163206566666963697475722061756775652e20557420696e7465007264756d20747269737469717565206475692074656d70757320706f727461002e20416c697175616d206672696e67696c6c6120707572757320766974616500206e6962682074656d706f7220626962656e64756d2e205175697371756520006574207361676974746973206f7263692c2061742074656d706f722076656c0069742e205365642066696e696275732073617069656e20657420747572706900732073656d7065722c206e6f6e206d6f6c6573746965206e756e63206c7563007475732e20536564206a7573746f206e6973692c20736f6c6c69636974756400696e20696e20697073756d20696e2c206665726d656e74756d20707265746900756d206f64696f2e204e756c6c6120757420766f6c75747061742073656d2e000a0a436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e00204e756c6c61206e6f6e206f726369206d692e20566573746962756c756d20007361676974746973206f72636920657520636f6e64696d656e74756d20636f006e6775652e20446f6e656320736564206d61676e612070656c6c656e746573007175652c20706c61636572617420697073756d207365642c20616c69717561006d2073656d2e2043757261626974757220696d706572646965742061756775006520657420656c697420706c6163657261742c2061742070756c76696e61720020617263752066617563696275732e20566573746962756c756d2066657567006961742c20697073756d20617420756c747269636573206d6f6c6573746965002c206e65717565206f64696f20656c656966656e642076656c69742c206174002065676573746173206f72636920647569206574206573742e20496e746567006572207574206a7573746f206c65637475732e204e756c6c616d20666575670069617420696e74657264756d206f726369206e656320617563746f722e0a0a00446f6e656320616c697175657420616363756d73616e206d617373612c2076006974616520666163696c697369732072697375732e20467573636520707265007469756d206e756e63206e6f6e20636f6e73657175617420656c656d656e7400756d2e204d616563656e617320636f6e64696d656e74756d207363656c657200697371756520706f72747469746f722e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e204d6175726973206e6563207075727573206661750063696275732c2074656d707573206469616d206e65632c20756c74726963650073206f7263692e2041656e65616e2066617563696275732c2073617069656e0020757420706f72747469746f7220616c69717565742c206e756e6320657261007420636f6e6775652061756775652c2071756973206469676e697373696d200073656d20697073756d206574206469616d2e2053757370656e646973736520006772617669646120657569736d6f6420697073756d2c206120696d7065726400696574206e756c6c6120636f6e7365717561742061632e2050726f696e20710075697320636f6e73657175617420697073756d2c20696e20737573636970690074206e657175652e204e616d2076697461652076697665727261206c656f2e002041656e65616e20756c74726963657320706c61636572617420626c616e640069742e20496e7465676572206e6571756520617263752c20666163696c69730069732073697420616d6574206f726369207365642c20766573746962756c75006d206672696e67696c6c6120746f72746f722e2050656c6c656e746573717500652066657567696174206575206c6967756c612065676574206c6f626f72740069732e20536564206575206d6f6c6c69732065782c20696e206461706962750073206c616375732e20467573636520616c697175616d2c206e657175652063006f6e73657175617420666163696c6973697320706c6163657261742c2069700073756d206f72636920696163756c6973206a7573746f2c20696d706572646900657420706f7375657265206d61676e61206f64696f206e65632075726e612e0020437572616269747572206d6f6c6c69732c20657820696e20666163696c690073697320766f6c75747061742c206e697369206a7573746f20656c65696665006e64206c696265726f2c20612070656c6c656e74657371756520656e696d20006d61676e612071756973206e6962682e204d617572697320756c7472696369006573206469616d2065676574206c616375732070756c76696e61722c2065740020636f6e64696d656e74756d206e6962682073656d7065722e0a0a56697661006d757320746f72746f72207175616d2c20616c697175657420696e206e756e00632075742c206f726e61726520756c74726963696573206e657175652e205000656c6c656e74657371756520637572737573206163206a7573746f2076697400616520756c747269636965732e20446f6e65632065676574206e69736c207100756973206f726369206772617669646120766f6c75747061742065742069640020656e696d2e2053656420706f72747469746f72206c616375732071756973002073656d20756c74726963657320666163696c6973697320757420656765740020656e696d2e20416c697175616d20696163756c69732065726174206e656300206d617373612072686f6e6375732068656e6472657269742e20416c69717500616d206f726e6172652070686172657472612075726e612065752061756374006f722e20566976616d7573206964206469616d206120617567756520656765007374617320636f6e6775652e205072616573656e742068656e647265726974002073617069656e20696e206f72636920636f6e6775652c206567657420636f006e6775652073617069656e20696d706572646965742e205365642061756374006f7220657374206163206c7563747573206c6163696e69612e20496e746567006572206e65717565206e657175652c20656c656966656e642076656c206c65006f2069642c20626962656e64756d20756c6c616d636f727065722073656d2e0020566573746962756c756d2076656c20666163696c69736973206573742e2000536564207175697320766f6c7574706174207475727069732e0a0a4e616d20006d6174746973206d6f6c6573746965206d61676e612c20766974616520636f006e736571756174206d657475732e204e616d206d6178696d75732065756973006d6f6420656c6974206e6563206f726e6172652e204e756c6c61206d6f6c6c00697320696420707572757320717569732074656d706f722e2050656c6c656e007465737175652072686f6e637573206567657374617320666575676961742e00204475697320756c74726963657320656c6974207574206c6f72656d207075006c76696e617220736f6c6c696369747564696e2e2043757261626974757220006672696e67696c6c612076756c7075746174652076656e656e617469732e20004d61757269732074656d706f7220617563746f722075726e612e0a0a496e20006861632068616269746173736520706c617465612064696374756d73742e20004d616563656e617320617563746f72206d617474697320626962656e64756d002e20566573746962756c756d2074656d7075732072686f6e637573206c6563007475732c2069642072686f6e637573206e69736c206d6178696d7573206174002e204475697320766172697573206672696e67696c6c61206175677565206e00656320666163696c697369732e204e756c6c6120696163756c69732061207000757275732065676574206665726d656e74756d2e20457469616d206e656320007361676974746973206f7263692e205072616573656e74206d6174746973200066656c69732072697375732e204e616d206567657420656c656d656e74756d00206c6967756c612e20436c61737320617074656e742074616369746920736f0063696f737175206164206c69746f726120746f727175656e74207065722063006f6e75626961206e6f737472612c2070657220696e636570746f732068696d00656e61656f732e2050686173656c6c75732065676573746173207075727573002070656c6c656e7465737175652c2070656c6c656e7465737175652076656c006974206e6f6e2c206772617669646120656c69742e0a0a536564206e6f6e200074656d7075732070757275732e2053757370656e64697373652070756c7669006e6172206d65747573206e657175652c206e6f6e207472697374697175652000697073756d20706f727461206e6f6e2e205574206567657420747572706973002074696e636964756e742c2074656d706f722073656d20717569732c207665006e656e61746973206d61676e612e20566573746962756c756d206964206d610078696d75732072697375732e204475697320616c697175657420706f7375650072652066656c697320696e20706c6163657261742e2051756973717565207600656c6974206f64696f2c20656666696369747572206174206d617373612061002c20747269737469717565206f726e61726520646f6c6f722e204e756c6c61006d206567657374617320706c616365726174206475692075742073656d706500722e20416c697175616d20717569732073617069656e206d657475732e20440075697320656c656d656e74756d2c2065726174206e656320626c616e646974002072686f6e6375732c2065726f7320656e696d207363656c65726973717565002061756775652c206e656320766976657272612065726f73206c656f20657500206c656f2e204d6f7262692073656420666163696c69736973206a7573746f002e20566976616d75732073697420616d6574206d61676e612068656e64726500726974206c656f206772617669646120617563746f722e0a0a4e756e63206300757273757320616c6971756574206f64696f2e204e756e6320696163756c6900732065742074757270697320617420756c747269636965732e204e616d207600756c70757461746520656e696d20656765742070757275732074656d70757300206f726e6172652e204e756c6c616d20636f6e736571756174206d6f6c657300746965206469616d2c20766974616520756c747269636573206e6962682070006f72747469746f722065742e20566573746962756c756d20766f6c757470610074207574206c6f72656d20656765742070656c6c656e7465737175652e204e00616d2064617069627573206c696265726f206d692e2050656c6c656e746573007175652074696e636964756e74206e696268206e657175652c206120696e7400657264756d206c6f72656d20636f6e6775652076656e656e617469732e205000686173656c6c757320696e2073656d206574206d617373612066617563696200757320616363756d73616e2074696e636964756e742076656c206e6962682e000a0a4e756c6c61206d616c657375616461206e69736c206e69736c2c20657500206d6f6c657374696520697073756d206d6f6c6c697320656765742e20416c00697175616d2076756c70757461746520707572757320736564206c6967756c006120736167697474697320616c69717565742e20496e20616c697175616d20006469616d20677261766964612072757472756d2070756c76696e61722e2049006e206d616c6573756164612075726e612065676574206f726e6172652065670065737461732e20566573746962756c756d207669746165207363656c6572690073717565206573742c206567657420766573746962756c756d206f7263692e002050656c6c656e746573717565206672696e67696c6c61206d616c6573756100646120706f73756572652e204e756c6c6120696e74657264756d206c656f20007669746165207072657469756d20706f73756572652e204e616d206d6f6c6c0069732065726f73207365642074656c6c7573206d6174746973207361676974007469732e0a0a53757370656e646973736520636f6e64696d656e74756d206c006563747573206574206c6f72656d20657569736d6f64206375727375732e20004d6175726973206172637520617263752c2072757472756d20636f6e7365710075617420707572757320696e2c206567657374617320696163756c6973206c00696265726f2e204d6f726269207068617265747261206d6178696d7573206d00617373612c206567657420626c616e646974207475727069732070756c7669006e61722065742e204d6175726973206e656320646f6c6f722076656e656e61007469732c2070656c6c656e746573717565206d61676e612069642c2061756300746f722075726e612e204d616563656e6173207669766572726120706f7274007469746f72206e6973692c2076656c20756c74726963696573206572617420006375727375732061742e20467573636520636f6e6775652074656c6c7573200076697461652073617069656e20747269737469717565206665726d656e7475006d2e20446f6e656320696d706572646965742073656d206e6f6e206d61757200697320756c7472696365732076656e656e617469732e204372617320756c74007269636573206c6f72656d206c656f2e20536564207365642076656e656e6100746973206e657175652c20766974616520656765737461732066656c69732e00205072616573656e7420617420616e746520706f7274612c20636f6e64696d00656e74756d206c65637475732076697461652c20706f72747469746f72206e00657175652e204e616d2074656c6c7573206c616375732c20747269737469710075652074656d706f72206e756c6c61206e65632c20706c6163657261742062006962656e64756d2061756775652e204e756c6c616d20657569736d6f64207600697665727261206f7263692c206575206772617669646120656e696d20636f006e64696d656e74756d20626962656e64756d2e2053757370656e6469737365002065676574206c6f72656d20766974616520697073756d20706c616365726100742070656c6c656e74657371756520696420636f6d6d6f646f206f64696f2e00204675736365206d61747469732075726e612075742064756920636f6d6d6f00646f2c206e656320636f6d6d6f646f206475692070686172657472612e0a0a00496e206861632068616269746173736520706c617465612064696374756d7300742e204e616d206a7573746f206e6962682c207665686963756c612061206c006967756c612065752c206d617474697320656c656966656e64206c6967756c00612e205175697371756520656765742074757270697320612061756775652000747269737469717565206665726d656e74756d2e204e756c6c616d20766974006165206c61637573206d6f6c65737469652c207363656c65726973717565200061756775652061742c20656c656966656e64206e69736c2e204e756c6c6120006d61676e612065726f732c20636f6e76616c6c697320736564206f64696f20007363656c657269737175652c206c6f626f7274697320636f6e76616c6c697300206e6962682e204e616d2061742073616769747469732061756775652c2065007520766172697573206c6967756c612e204e756c6c616d20706f737565726500206d6178696d7573206e697369206e656320616c69717565742e2045746961006d207363656c657269737175652071756973206469616d20656765742065670065737461732e205072616573656e7420756c74726963696573207363656c6500726973717565206d69206e656320626962656e64756d2e2056657374696275006c756d20616c697175616d2074656c6c75732076656c206a7573746f206c61006f726565742c207574207072657469756d2073656d206f726e6172652e204e00616d20616e7465206e6962682c2066696e69627573206e6563207361706965006e20612c2076656e656e6174697320636f6e6775652072697375732e20496e002076656c206e65717565206120656e696d20636f6e7365637465747572207000656c6c656e7465737175652e20566976616d757320636f6e76616c6c69732000657374207574206e756c6c6120736167697474697320706f73756572652e200050656c6c656e74657371756520626962656e64756d20736f64616c65732069007073756d2065742068656e6472657269742e0a0a536564207269737573206600656c69732c20736f6c6c696369747564696e206575206d6f6c6573746965200065742c20657569736d6f6420656765742065782e20457469616d206567657400206e756c6c61206e6962682e20437261732067726176696461206120746f7200746f722076697665727261207661726975732e2050686173656c6c7573206600696e696275732c2073617069656e20657420616c697175616d20756c747269006365732c206d61757269732065726f7320706f72747469746f722065726f73002c20616320636f6e677565206c656f206573742065676574206d6175726973002e20536564206e756e632076656c69742c2065676573746173207365642065006c69742065752c20657569736d6f64206d6178696d75732073617069656e2e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b2056657374006962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071756973200076756c7075746174652061742c20736f6c6c696369747564696e207369742000616d6574206573742e205365642070756c76696e61722c2076656c69742073006564206469676e697373696d20766976657272612c206d6173736120646f6c006f722073656d706572206c6f72656d2c206e6f6e206d6f6c6573746965206d006175726973206f64696f2065742070757275732e204d616563656e6173206c006f626f7274697320696e74657264756d206e756e63207574206d6f6c6573740069652e20536564206d6f6c6c697320636f6d6d6f646f2076656e656e61746900732e20496e74657264756d206574206d616c6573756164612066616d65732000616320616e746520697073756d207072696d697320696e206661756369627500732e2055742073656420617263752076656c69742e204d617572697320617500677565206e756c6c612c206f726e617265206e656320616c697175657420730065642c20636f6d6d6f646f20696e206475692e0a0a496e746567657220736f006c6c696369747564696e2075726e612065676574206e756c6c61207068617200657472612c206e6f6e20766172697573206e657175652070756c76696e6172002e204e756c6c61207574206c656374757320736564206d617572697320756c006c616d636f7270657220706f7274612e2051756973717565206e656320646900616d207472697374697175652c2064617069627573206c656374757320612c0020616c697175616d206e6962682e2043757261626974757220616c697175650074206d6f6c6c69732073617069656e207574206d6f6c65737469652e205068006173656c6c7573207361676974746973206e69736c207669746165206d617800696d75732066617563696275732e20446f6e6563206d6178696d757320612000647569206575207661726975732e20457469616d2072686f6e63757320746f0072746f722076656c206e756e63206665726d656e74756d2070756c76696e61007220736564206e656320657261742e20416c697175616d207574206c656f20006e6f6e206e69736920646170696275732076756c7075746174652e20496e74006567657220616363756d73616e20636f6e6775652072686f6e6375732e205500742076756c707574617465206f64696f20656c69742c207072657469756d200073656d7065722065726174207375736369706974206e65632e205375737065006e6469737365206d6174746973207475727069732076656c2065726f73207000756c76696e617220756c7472696365732072757472756d2073697420616d65007420616e74652e204475697320656c656966656e64206d6178696d75732061007567756520696e207363656c657269737175652e20446f6e6563206e6f6e2000746f72746f722073697420616d657420657261742066617563696275732061006c69717565742e205365642074656d70757320747269737469717565207269007375732c207072657469756d207472697374697175652064756920636f6e7600616c6c69732065752e0a0a50686173656c6c757320616c697175616d2074750072706973206174206c656f20706f73756572652c2073656420616363756d7300616e206e69736c2074656d7075732e204d616563656e6173207669746165200073617069656e206a7573746f2e2050686173656c6c75732074656d70757320006672696e67696c6c612070656c6c656e7465737175652e2050656c6c656e7400657371756520617420646f6c6f72206964206d6175726973206c616f726565007420637572737573206e6f6e2071756973206d657475732e204475697320610063206d69206e6f6e2074656c6c7573206461706962757320706f7274746974006f72206e6f6e206574206c6967756c612e20457469616d20736f64616c6573002069642074757270697320696e20756c747269636965732e2053656420616e007465206c616375732c2068656e64726572697420757420706f72747469746f00722075742c206665726d656e74756d207669746165206c656f2e0a0a437261007320706861726574726120616e746520616e74652c2076756c70757461746500206665756769617420726973757320666175636962757320656765742e205000726f696e2073697420616d65742074656c6c75732072686f6e6375732c20760065686963756c61206469616d206e6f6e2c2065676573746173206573742e200043726173207669746165206c696265726f206e657175652e20446f6e65632000697073756d2066656c69732c20696e74657264756d2076656c20656765737400617320656765742c20616c6971756574206e65632065726f732e20446f6e650063206e697369206d617373612c20766573746962756c756d2076656c20656e00696d2065742c206461706962757320636f6e67756520697073756d2e20507200616573656e7420647569206573742c20636f6e677565207669746165206d6f006c657374696520717569732c206d616c657375616461206567657420646961006d2e20457469616d206e6f6e2076697665727261206f7263692e2056657374006962756c756d206d6f6c6c69732065726f73206174206c656374757320706f0072747469746f7220756c6c616d636f727065722e20496e2066657567696174002066656c6973206e656320657820756c7472696365732c2073656420666572006d656e74756d206a7573746f2066696e696275732e2044756973206e6f6e2000706f7375657265206e657175652c20657420636f6e736571756174206f726300692e20416c697175616d206575206a7573746f20756c7472696365732c207600656e656e6174697320746f72746f722061632c2072757472756d20656e696d002e0a0a496e7465676572206469676e697373696d207175616d206575206d6100757269732066696e6962757320666163696c697369732e204d617572697320006c6163696e6961206a7573746f206c65637475732c2076656c206c756374750073207175616d20766f6c757470617420766f6c75747061742e205574206e6f006e206f726369206e756c6c612e2041656e65616e20617563746f72207361700069656e206120726973757320656c656d656e74756d206d616c657375616461002e204e616d2065676574206c6563747573206c696265726f2e20416c69717500616d20697073756d206d617373612c20736f6c6c696369747564696e2061630020696163756c697320612c206d6178696d7573206575207475727069732e20004d616563656e61732076656c206e756e632076656c2065726f7320766f6c750074706174207472697374697175652076697461652061742065782e204375720061626974757220657420656e696d206d6f6c6c69732c207072657469756d2000646f6c6f7220717569732c2068656e647265726974206c616375732e20496e002074656d70757320657569736d6f6420646f6c6f722c206964206469637475006d206d657475732072757472756d20717569732e0a0a43757261626974757200207072657469756d206c6f626f72746973207363656c657269737175652e20004d61757269732076656c206d69206120697073756d207665686963756c6120007363656c657269737175652e204e756c6c6120666163696c6973692e20446f006e656320636f6e736571756174206f64696f2061206572617420756c6c616d00636f7270657220666163696c697369732e2044756973206d6173736120656e00696d2c20756c74726963696573206e6f6e2075726e6120717569732c2065750069736d6f64207072657469756d20746f72746f722e20457469616d2068656e00647265726974206c656374757320766974616520656c656d656e74756d207600756c7075746174652e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e20536564206f64696f206d61676e612c20636f6e7365006374657475722073697420616d657420706f7274612076697461652c2076690076657272612061206d61676e612e204372617320657520697073756d20656c00656966656e64206f64696f20766976657272612072757472756d206574206e006f6e206c6f72656d2e20517569737175652071756973206c656f2075742072006973757320756c6c616d636f727065722073757363697069742076656c206e006563206469616d2e20467573636520646170696275732065726f73206e6f6e00206e69736c2066617563696275732c20657420656666696369747572207365006d20706c6163657261742e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20416c697175616d2069642073656d206163206c6f72656d2000706f72747469746f72206c616f72656574206163207175697320656c69742e000a0a446f6e65632076656c20646f6c6f72206d6178696d75732c206d6f6c6c006973206d61676e612073697420616d65742c2070686172657472612076656c0069742e2041656e65616e2070656c6c656e74657371756520737573636970690074206c6563747573206174207665686963756c612e20446f6e6563206e656300206661756369627573206469616d2e204e616d20656765742064756920657500206d6175726973206461706962757320616c697175616d2064696374756d20006575206d61757269732e20446f6e6563206c6563747573206d657475732c20006d6f6c657374696520636f6e73657175617420756c747269636965732065670065742c206c616f72656574206e6563206475692e20446f6e6563206575206c00656374757320717569732076656c697420656c656d656e74756d2065756973006d6f642e204d616563656e617320626962656e64756d206c61637573207369007420616d657420736f6c6c696369747564696e206c6163696e69612e0a0a510075697371756520737573636970697420706f73756572652070757275732063006f6e64696d656e74756d20706f7274612e20457469616d2068656e64726572006974207574206c696265726f20696e2072757472756d2e204e756c6c616d2000756c74726963696573206c696265726f20657420647569206c6f626f7274690073206672696e67696c6c612e20496e746567657220757420656c6974206d6100676e612e2051756973717565207665686963756c61206d6f6c6c6973206c65006f2c206964207665686963756c61206d61676e6120616c6971756574207574002e20457469616d206e6f6e20706f72747469746f72206e69736c2c207369740020616d65742076756c707574617465206469616d2e2050726f696e206e657100756520657261742c20737573636970697420656765742066656c697320696e002c20677261766964612066696e69627573207175616d2e2050686173656c6c007573206d617474697320746f72746f722072697375732c20757420656c656d00656e74756d206d6574757320737573636970697420626962656e64756d2e0a000a4e756c6c616d207175616d2065782c20706f72746120696e2070757275730020696e2c206d6f6c65737469652074726973746971756520646f6c6f722e2000457469616d207472697374697175652072697375732076656c206c6163757300206672696e67696c6c612c206174206c75637475732075726e6120616c69710075616d2e20416c697175616d2065752066656c697320666575676961742c2000696163756c6973206c6f72656d2073697420616d65742c2070756c76696e61007220697073756d2e204e616d2076697461652074696e636964756e74206d6100676e612e204d617572697320756c6c616d636f727065722c206d657475732000636f6e64696d656e74756d20736f64616c657320756c6c616d636f72706572002c2073656d2074656c6c757320636f6e7365637465747572206c6563747573002c2061742074656d7075732073617069656e206d61757269732076656e656e0061746973206d61757269732e2041656e65616e20766573746962756c756d2000646f6c6f722065782c2076656c2076697665727261206e696268206d617869006d7573207365642e20457469616d20636f6d6d6f646f206d616c65737561640061206f7263692e204e616d20616363756d73616e206469616d206e6563206e00756e6320766f6c7574706174206566666963697475722e20467573636520700072657469756d20697073756d206c656f2c207175697320696e74657264756d00206172637520736f6c6c696369747564696e20656765742e2050656c6c656e00746573717565206d617474697320617420697073756d206567657420707265007469756d2e0a0a536564206c656f206d692c207068617265747261207369740020616d657420696d706572646965742065752c2074696e636964756e742065007420746f72746f722e2055742071756973207072657469756d206d61676e61002c20657520616c697175657420697073756d2e2050726f696e20616320756c0074726963657320697073756d2c2076656c206d6f6c6573746965207361706900656e2e20457469616d20736f64616c6573206e65717565206163206f726e610072652070686172657472612e204d6f7262692071756973206175677565207300697420616d65742075726e6120706c6163657261742070756c76696e61722e00204375726162697475722076617269757320666163696c69736973207269730075732c206964207375736369706974207175616d20696d7065726469657420006d616c6573756164612e20416c697175616d20646170696275732c2069707300756d2076656c20636f6e64696d656e74756d206d61747469732c206c696775006c6120657374206375727375732074656c6c75732c20657520696e7465726400756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6120717561006d206e6973692c20706f737565726520657420616363756d73616e20696e7400657264756d2c2076756c707574617465206e6f6e2070757275732e204e756e00632076617269757320696d706572646965742066656c6973206e656320696e0074657264756d2e2050726f696e2076656e656e617469732061206c6967756c006120657420636f6e73656374657475722e2050686173656c6c7573206e6563002065726f73206d6f6c6c69732c20756c7472696369657320656c6974206e6f006e2c206c6163696e6961206d692e2053757370656e6469737365206c696775006c6120617263752c206665726d656e74756d20617420617563746f722071750069732c20656c656966656e64207669746165206e69736c2e0a0a53656420660065726d656e74756d20707572757320696e206f64696f2070756c76696e6172002c20766573746962756c756d20656c656966656e642065737420636f6d6d6f00646f2e20467573636520766172697573207365642074757270697320696e2000666575676961742e20557420616320666163696c69736973206f64696f2e2000557420766f6c757470617420697073756d20646f6c6f722c20696e2065756900736d6f6420646f6c6f7220696e74657264756d2069642e20536564207361700069656e206573742c20696d70657264696574206575206f726e6172652065670065742c2074656d70757320656765742066656c69732e2050686173656c6c7500732070656c6c656e7465737175652c206e756c6c612073697420616d6574200066696e6962757320677261766964612c207175616d206e69736c206469637400756d206a7573746f2c2073697420616d6574206672696e67696c6c6120646900616d206c616375732065676574206573742e20566573746962756c756d2062006c616e646974206d617572697320696e20616e7465206d6178696d75732076006f6c75747061742e2050656c6c656e746573717565206861626974616e7420006d6f726269207472697374697175652073656e6563747573206574206e6574007573206574206d616c6573756164612066616d6573206163207475727069730020656765737461732e20566573746962756c756d2066656c6973207269737500732c2073616769747469732076656c20636f6d6d6f646f207365642c20706f0072746120617563746f722073656d2e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d616563656e6173206e656320706f0072747469746f722066656c69732e20446f6e656320656c656d656e74756d200073656d206e756c6c612e0a0a416c697175616d20656c656d656e74756d20650075206c6f72656d206964206c75637475732e204e756e63206174206e69626800206573742e205072616573656e7420666175636962757320766172697573200065726174206e656320706f73756572652e204e756c6c616d207175616d206c00616375732c20766f6c7574706174206e6563206c616f72656574206e6f6e2c0020706f7375657265206163206c6967756c612e2050726f696e2071756973200065676573746173206e69736c2c20736564206c75637475732066656c69732e00204e756c6c61207072657469756d207175616d206e65632066696e696275730020656c656966656e642e20457469616d206d617572697320656e696d2c207200686f6e6375732076656c206d616c657375616461207365642c20636f6e6469006d656e74756d2076697665727261206c696265726f2e20416c697175616d20007175616d2073656d2c2072757472756d2061742073617069656e206e65632c00206c616f7265657420666163696c69736973207475727069732e204e616d20006e65632074656d707573206573742e204d616563656e617320766172697573002c206e69626820617420636f6e73656374657475722074656d7075732c206e00756e63206c6f72656d206672696e67696c6c6120617263752c20696d70657200646965742072757472756d206e69736c2064756920612061756775652e20500072616573656e7420706c6163657261742073617069656e20736564206d6920006d6f6c6c697320666163696c697369732061206e65632070757275732e20500072616573656e7420736f6c6c696369747564696e2066656c6973206d61737300612c2076656c206d6174746973206c656f2068656e6472657269742061632e002053757370656e646973736520657569736d6f642064696374756d2074696e00636964756e742e0a0a416c697175616d2064617069627573206c6f72656d2000657520736f64616c65732066617563696275732e204e756c6c612074726973007469717565206f64696f2065742072697375732064696374756d2c20756c7400726963696573206c6f626f72746973206c6967756c61207361676974746973002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e204e756e632074656d7075732076656c2065726174207669746165206c610063696e69612e204e756c6c6120696e20656765737461732065726f732e204e00756c6c616d2076656c20646f6c6f722076656c2076656c697420706c616365007261742076756c70757461746520696e20736564206c616375732e20416c69007175616d206c6f626f7274697320616e746520696e2074656c6c75732069610063756c69732c206120636f6d6d6f646f207175616d20616363756d73616e2e002050726f696e2066657567696174206c6967756c61206964206e756e63207600756c70757461746520646170696275732e20457469616d207072657469756d00207669746165206475692073697420616d657420616c697175616d2e204165006e65616e206c6f626f727469732072757472756d206e6973692c2061207465006d7075732065726f7320666163696c697369732069642e204d617572697320006e6f6e2061726375206174206e6973692076697665727261206375727375730020657520616320646f6c6f722e0a0a4e756e6320696e206f64696f206d692e00204e616d206d617474697320736564206c6967756c612073697420616d6574002074656d706f722e20496e74656765722064696374756d207269737573206600617563696275732c2076656e656e6174697320616e74652065752c20756c74007269636573206d61757269732e20446f6e6563206e656320636f6e64696d65006e74756d2065782e2053656420666163696c69736973206f64696f20647569002c207669746165206672696e67696c6c61206d617572697320617563746f7200206e6f6e2e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e2053757370656e646973736520717569732074656c6c7573206c00616f726565742c20756c7472696365732073656d206e65632c207363656c650072697371756520656c69742e20536564207363656c65726973717565206573007420766f6c75747061742c20636f6e64696d656e74756d20616e746520612c002076656e656e61746973206d617373612e204d6f726269206e65632061756300746f72206c65637475732c206163207072657469756d206e6962682e20467500736365207363656c65726973717565206d61737361206e6f6e206375727375007320706f7274612e20566573746962756c756d206d65747573207075727573002c20636f6e736571756174206964206672696e67696c6c6120612c2074656d00707573207068617265747261206c65637475732e20566573746962756c756d0020736f64616c6573206c6f626f7274697320756c7472696365732e0a0a4e61006d2073697420616d657420626c616e646974206573742e204675736365207300697420616d65742074696e636964756e7420646f6c6f722e20446f6e6563200076656c206e697369206c616375732e204d617572697320706f7375657265200075726e6120616320656c656966656e6420616c69717565742e205375737065006e6469737365206661756369627573206665726d656e74756d206c69626572006f2c20616320617563746f72206d617373612068656e647265726974207465006d706f722e20467573636520706f72747469746f722061726375206163206c00656374757320626962656e64756d20636f6d6d6f646f2e205365642061756300746f72206575206f64696f2076656c20616c69717565742e20436c6173732000617074656e742074616369746920736f63696f737175206164206c69746f72006120746f727175656e742070657220636f6e75626961206e6f737472612c200070657220696e636570746f732068696d656e61656f732e20566976616d757300206574206c756374757320656e696d2e20566573746962756c756d2074656d00706f7220616e746520736564206d61747469732064696374756d2e205175690073717565207068617265747261206172637520656765742075726e6120756c0074726963657320617563746f722e204d6f72626920656c656966656e642063006f6e736571756174206d692069642068656e6472657269742e20467573636500206d617474697320616e746520636f6e64696d656e74756d20706f73756572006520736f64616c65732e20437572616269747572206c6f626f72746973207500726e612073697420616d6574206d617474697320656765737461732e204d610075726973206665756769617420656c69742074656c6c75732c20756c747269006369657320696d70657264696574206469616d2074656d7075732076656c2e000a0a566573746962756c756d206672696e67696c6c6120747269737469717500652075726e6120657520706f7274612e2050726f696e206665756769617420006e69736c207475727069732c207574206c6f626f727469732072697375732000696d706572646965742061742e2050686173656c6c75732073697420616d65007420616c69717565742066656c69732c20766974616520706f737565726520006d692e20416c697175616d20736167697474697320766172697573206e69620068206e6563206f726e6172652e2050656c6c656e7465737175652074696e63006964756e742076697461652065737420657520616c697175616d2e20447569007320696163756c697320757420617263752073656420656c656d656e74756d002e20467573636520616363756d73616e2c20646f6c6f72206e6f6e2074656d0070757320616363756d73616e2c20646f6c6f72207175616d20617563746f7200206e657175652c2071756973206f726e61726520616e7465206c656f206964002070757275732e2050686173656c6c75732073656420656c656966656e642000656c69742e204372617320657520706f737565726520616e74652e20496e2000616e7465206c6f72656d2c2070686172657472612073697420616d65742076006573746962756c756d207365642c2072686f6e637573206964206a7573746f002e2055742074656d707573206469676e697373696d207665686963756c612e00204d616563656e6173206d61757269732076656c69742c2065676573746173002073697420616d6574207661726975732076697461652c20666163696c69730069732073697420616d6574206c6967756c612e0a0a4d6175726973206772610076696461206c656f2073697420616d6574206f7263692076656e656e61746900732c207574206d6178696d75732073617069656e20636f6e7365717561742e00204d6f726269206e6563206f7263692065782e20566976616d757320766568006963756c61206469676e697373696d207075727573207365642074696e63690064756e742e20467573636520657569736d6f64206e6f6e20656e696d2065740020636f6d6d6f646f2e205072616573656e7420766f6c7574706174206d6f6c006573746965206f726e6172652e20566976616d757320636f6e64696d656e7400756d2076656c697420656c656d656e74756d2c207072657469756d20747572007069732065752c20626c616e6469742072697375732e204675736365207065006c6c656e746573717565206d6178696d7573206e6973692061632073656d700065722e20416c697175616d20757420657569736d6f642076656c69742c207300656420656c656d656e74756d206c6f72656d2e204d616563656e617320696400207269737573206e6f6e206d61737361206772617669646120636f6d6d6f64006f2e204e756c6c616d20696e20707572757320696420656c69742066616369006c6973697320636f6e6775652e2041656e65616e20636f6e6775652076756c00707574617465206c616f726565742e20416c697175616d206567657420656c0069742074656c6c75732e205175697371756520737573636970697420717561006d206163206d6173736120626962656e64756d20656765737461732e20416c00697175616d2071756973206578206e6f6e2076656c6974207363656c657269007371756520756c6c616d636f727065722069642065676574206d61676e612e002041656e65616e20612073656d206e6f6e2065726174206c6f626f727469730020636f6e6775652e0a0a43726173206e6f6e20647569206f64696f2e20517500697371756520766f6c7574706174207363656c657269737175652069707375006d206174207661726975732e20536564206f726e6172652073656d20736564002076656e656e6174697320636f6e7365717561742e2044756973206f726e610072652076656e656e61746973206d6f6c6c69732e20536564206578206e65710075652c2065666669636974757220626962656e64756d20706c616365726174002065742c20736f6c6c696369747564696e2076656c206f7263692e20496e740065676572206e696268206e657175652c20666163696c69736973206e6f6e20006d61757269732076656c2c20636f6e73656374657475722074726973746971007565206e756c6c612e204e756e632073697420616d657420706861726574720061206c656f2e204e756c6c616d206c656f206f7263692c20696d70657264690065742073697420616d657420696e74657264756d20717569732c2069616375006c6973206575206e69736c2e20416c697175616d2073656420747269737469007175652073656d2c206e6563206c6f626f7274697320746f72746f722e204d00616563656e617320736f64616c6573207075727573206e656320616c69717500616d20706f72747469746f722e20447569732075742066656c69732065726100742e0a0a437261732061206d6173736120696d706572646965742c2061636300756d73616e2072697375732069642c207375736369706974206e756e632e2000446f6e65632073656d70657220656e696d206575206d61676e6120636f6e730065717561742074696e636964756e742e2053757370656e646973736520636f006e736571756174206c6563747573207669746165206d6574757320616c697100756574206c616f726565742e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e20446f6e656320696e74657264756d206469616d00206174206e69626820616363756d73616e2c20657420617563746f72206d6100737361206c6163696e69612e20467573636520696420657820766974616520007269737573206c616f7265657420706f72746120636f6e64696d656e74756d00206567657420656e696d2e2050686173656c6c7573206c6563747573206f6400696f2c20666163696c6973697320612074656d707573207365642c20736f6400616c6573206575206475692e204e616d20696e206d616c657375616461206f0064696f2e205175697371756520706c61636572617420697073756d2076656e00656e617469732072697375732074656d7075732066617563696275732e205000656c6c656e74657371756520656c656d656e74756d20646f6c6f72207175690073206672696e67696c6c612074656d7075732e20457469616d2074696e63690064756e7420766172697573206c6f72656d20696e206f726e6172652e204e61006d206120656c656d656e74756d206f7263692e2050686173656c6c7573206700726176696461206e69736c20657520656c697420756c747269636965732c2000657420626962656e64756d2074656c6c75732066696e696275732e0a0a437200617320626c616e6469742070756c76696e6172206d657475732c2061632069006e74657264756d2066656c6973206d6178696d757320626962656e64756d2e002041656e65616e20626962656e64756d20696d7065726469657420636f6e6400696d656e74756d2e204e616d206e6f6e206c61637573206c6967756c612e2000517569737175652073656420766573746962756c756d2073617069656e2e2000536564207665686963756c612074696e636964756e74206c656f207175697300206c6163696e69612e20536564206c61637573206c6f72656d2c20756c74720069636573206e6563206c6f72656d207365642c20706c61636572617420766f006c7574706174206d657475732e205365642075742073656d2073697420616d00657420746f72746f7220756c7472696365732073757363697069742076656c00206174207475727069732e0a0a5574207669746165206175677565207369740020616d657420656c69742070756c76696e61722068656e647265726974206e0065632061206c6967756c612e20446f6e656320706f727461206e6973692063006f6d6d6f646f20616e7465207665686963756c612073656d7065722e205574002066696e696275732c207075727573207574206661756369627573206d6f6c006c69732c2066656c6973206e65717565206d616c657375616461206e696268002c2061632076656e656e61746973206e756c6c612076656c69742061206665006c69732e204d617572697320677261766964612c206c6967756c6120696420006c6163696e696120766976657272612c206a7573746f206c696265726f2076006172697573206c6967756c612c2073697420616d657420706f727461206c6f0072656d206c696265726f2061206d657475732e20416c697175616d20756c6c00616d636f72706572206d61757269732073617069656e2c2061206772617669006461207075727573207363656c6572697371756520717569732e204e756c6c00616d2072757472756d20746f72746f722073697420616d6574206f64696f2000656666696369747572207072657469756d2e2044756973206c616f7265657400206566666963697475722076656c69742c20612073656d7065722066656c6900732e2050726f696e206e696268206c616375732c20637572737573207369740020616d6574206c656374757320717569732c2065666669636974757220766500686963756c61206475692e20446f6e65632061726375206c656f2c207275740072756d2075742063757273757320696e2c207363656c6572697371756520650074206c616375732e204d616563656e61732074696e636964756e742061726300752061206e6571756520666575676961742c2076656c2064696374756d206e0069736c2073656d7065722e20446f6e6563206e756e632076656c69742c2063006f6d6d6f646f20696420746f72746f722076697461652c20616c697175657400206661756369627573206c6f72656d2e2041656e65616e2076617269757320006d61747469732073617069656e2065676574206d6f6c6c69732e20446f6e6500632076697461652075726e6120756c6c616d636f727065722c206469676e69007373696d20656e696d2076697461652c20766573746962756c756d206d65740075732e2050686173656c6c757320636f6e73656374657475722065726f732000696d706572646965742c20677261766964612065726f732069642c206d6f6c006c69732076656c69742e0a0a5574206163206c6163757320636f6e76616c6c0069732c207665686963756c61206e6571756520717569732c2065666669636900747572206f7263692e205574206d69206c616375732c206566666963697475007220657420736f6c6c696369747564696e2075742c206661756369627573200073697420616d657420616e74652e2053656420636f6e64696d656e74756d20006567657420656c697420617420677261766964612e20457469616d206e656300206e69736c2073656420656e696d20706f72746120706c6163657261742e20005072616573656e74206672696e67696c6c61207361676974746973206c656f002c2076656c2074656d706f72206f64696f206d6f6c6c69732076697665727200612e20566573746962756c756d2066696e69627573206a7573746f207269730075732c2065752073656d706572206475692066696e696275732061632e204d00617572697320706c616365726174206c6563747573206e6973692c206e6f6e0020766573746962756c756d20746f72746f72206d61747469732061632e204e00756c6c61206e656320626962656e64756d207175616d2e0a0a53656420657400206469616d2065676574206c696265726f2070756c76696e6172206672696e0067696c6c6120756c74726963696573206964207475727069732e20507261650073656e7420657520656e696d206672696e67696c6c612c20706c61636572610074206172637520696e2c20766573746962756c756d206e657175652e2045740069616d207665686963756c6120657261742064696374756d206e6962682065007569736d6f6420736f6c6c696369747564696e2e205072616573656e74206e0065632074757270697320616c69717565742c206c6f626f72746973206c656f0020717569732c207665686963756c61207175616d2e2050686173656c6c7573002073656420626962656e64756d206e6973692e204d616563656e61732069640020646f6c6f72206567657420616e746520626c616e6469742064617069627500732e20446f6e656320656c656d656e74756d20736564206e696268206575200073616769747469732e20467573636520636f6e6775652073656d206c6f7265006d2c206e6f6e206672696e67696c6c61206f64696f20617563746f7220612e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b204d61656300656e61732073656420636f6e7365637465747572206a7573746f2e2053656400206566666963697475722061207175616d2073697420616d6574206d617869006d75732e0a0a416c697175616d20636f6d6d6f646f20616e7465206574206d006f6c657374696520706f72747469746f722e204d616563656e617320766f6c007574706174206e69736c207363656c657269737175652c206c6f626f7274690073206d61757269732061632c2064696374756d206d617373612e205068617300656c6c7573206d616c657375616461206c6163696e6961206f64696f206964002066696e696275732e204d616563656e61732061206d61676e61206f64696f002e20467573636520697073756d2075726e612c2073616769747469732066610075636962757320616e7465207365642c20756c747269636573206461706962007573206d61757269732e2053757370656e6469737365207574206f64696f2000717569732073656d206461706962757320616c697175616d20696e2069642000646f6c6f722e205574206d61747469732071756973206f64696f20766974610065206c6f626f727469732e20416c697175616d20616320746f72746f7220610063206d657475732073656d70657220766976657272612e20416c697175616d00206e65632064696374756d206d617373612c2076656c2073757363697069740020656c69742e2044756973207365642073656d206575206e69626820636f6e00736563746574757220696163756c69732076656c2075742061756775652e200044756973207669746165206c75637475732075726e612e204e616d206e756c006c61206e6962682c20626c616e6469742073697420616d65742073656d706500722076697461652c206d6f6c6c6973206c6f626f72746973206e756e632e200053656420757420666175636962757320746f72746f722c20656765742069610063756c6973206f7263692e20496e206120626c616e646974206475692c20610074207068617265747261206d657475732e20457469616d2068656e64726572006974206c696265726f207669746165206c656374757320737573636970697400206f726e6172652e2051756973717565206d6174746973206c6163757320610074207068617265747261207661726975732e0a0a4d616563656e61732066610063696c6973697320656c697420756c747269636573207072657469756d206c006f626f727469732e2046757363652076656c20766573746962756c756d2065007261742e20457469616d206175677565206d617373612c20666575676961740020766974616520657261742061632c206c6f626f7274697320766f6c757470006174206d61676e612e20446f6e6563206d616c65737561646120736564206c006967756c6120717569732066696e696275732e204e756c6c616d20656666690063697475722076697665727261206475692c206e6f6e20766573746962756c00756d20746f72746f7220696e74657264756d2076656c2e2050726f696e2061006e7465206573742c20626c616e64697420696e207363656c65726973717565002073697420616d65742c20756c74726963696573206e65632065726f732e20005365642065726174206e69736c2c20677261766964612065742074656d706f00722065742c206665726d656e74756d2073697420616d65742065782e205365006420656666696369747572206d6920766974616520657569736d6f6420667200696e67696c6c612e2053757370656e6469737365206567657420617563746f0072206e6962682e20446f6e6563206e6563207068617265747261206f64696f002c2068656e64726572697420636f6e64696d656e74756d20646f6c6f722e0a000a4d6f72626920696d706572646965742c206469616d206e65632076756c700075746174652072757472756d2c20746f72746f72206c6f72656d20696e7465007264756d20616e74652c207669746165206375727375732074757270697320006f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265657420760069746165206d61676e612073697420616d657420617563746f722e20437261007320617563746f72206e69736c20717569732076617269757320636f6d6d6f00646f2e204d6175726973206174206c6163696e6961206e756c6c612e2056650073746962756c756d20666575676961742073656d206174206d61737361206600617563696275732064696374756d2e2046757363652076656c207361706965006e2073697420616d6574206a7573746f20737573636970697420616363756d0073616e2075742076656c206f7263692e204e756c6c6120666163696c697369002e204e756c6c616d20736f6c6c696369747564696e20737573636970697420006e6973692c20657520616363756d73616e206d6574757320636f6e73656374006574757220766573746962756c756d2e20517569737175652074656c6c757300206d657475732c2073656d7065722074656d707573206d657475732071756900732c2064696374756d20656c656d656e74756d2066656c69732e205375737000656e646973736520636f6e76616c6c6973207075727573206163206c6163750073207072657469756d2c20616320616c6971756574206573742066696e69620075732e2050656c6c656e74657371756520626962656e64756d20707572757300206d61676e612c2073697420616d657420637572737573206e65717565206600657567696174206e6f6e2e2043757261626974757220696e206d6178696d750073206a7573746f2e2041656e65616e20696163756c6973206c6163696e6961002072686f6e6375732e0a0a536564206672696e67696c6c612073656d20616300206d61737361206d616c6573756164612c206d617474697320696d7065726400696574207175616d2073757363697069742e2043726173206c6163696e6961002061632065782076697461652072757472756d2e205365642065782066656c0069732c20706f727461206e656320617263752061632c2066696e6962757320006c7563747573207475727069732e204475697320697073756d206c69626572006f2c20696e74657264756d20757420696e74657264756d2075742c20656c65006d656e74756d206163206a7573746f2e204d6f7262692074726973746971750065206c6f626f7274697320706c6163657261742e2050656c6c656e746573710075652074696e636964756e742074656d70757320656e696d20617420636f6e006775652e204e756c6c61206d61747469732074696e636964756e74206e697300692c2061742072686f6e63757320616e746520656c656966656e642068656e006472657269742e204e756c6c616d2064696374756d20706861726574726120006475692e20566573746962756c756d206c75637475732065737420757420610075677565207472697374697175652c2073697420616d657420656c656d656e0074756d2074656c6c757320656c656966656e642e20496e7465676572206e650063206f726e617265206a7573746f2c207175697320706f727461206469616d002e2051756973717565206e6f6e206e697369206e6f6e206c6f72656d207075006c76696e617220706f73756572652061206567657420656c69742e20536564002065676574206c6163696e69612073656d2e2050686173656c6c7573206e6f006e206e756c6c612074656d7075732c207363656c65726973717565206c69620065726f2076656c2c207068617265747261206e6962682e0a0a53757370656e006469737365206469676e697373696d20636f6e67756520657374206964207000686172657472612e20447569732076697461652066656c697320696e206c65006374757320666163696c6973697320706861726574726120736564206163200070757275732e2050656c6c656e7465737175652076656e656e617469732070006c616365726174206d61757269732c206120626962656e64756d206d617572006973206566666963697475722076697461652e204d6f7262692065666669630069747572206d65747573206575207363656c65726973717565206661756369006275732e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b200041656e65616e20696e74657264756d20666163696c69736973207175616d2000717569732066617563696275732e20566573746962756c756d20616e74652000697073756d207072696d697320696e206661756369627573206f726369206c00756374757320657420756c74726963657320706f737565726520637562696c0069612063757261653b205072616573656e74206c6f626f72746973206d6167006e612071756973206e697369206d616c657375616461206d6178696d7573200071756973206e6f6e206c6f72656d2e20437572616269747572206e6f6e206e00756c6c612073697420616d657420657261742074696e636964756e742066610063696c6973697320617420657420746f72746f722e204d6f72626920696420006175677565207669766572726120697073756d2070756c76696e617220736300656c657269737175652071756973206e65632076656c69742e204e616d207600656c206f64696f20636f6d6d6f646f2c20706f727461206172637520696e2c0020666163696c697369732073617069656e2e204e756e632073697420616d6500742076656e656e6174697320657261742c206174206c616f72656574206175006775652e20446f6e656320617563746f722070757275732071756973207465006d706f7220666575676961742e20496e2071756973206c6f72656d206567650074206e756e63206c6163696e696120646170696275732e20446f6e65632069006163756c6973206573742076656c2072686f6e63757320616c697175616d2e000a0a4d6f726269206d61676e61206f64696f2c2076656e656e61746973207600697461652073656d2069642c20646170696275732074656d707573206e756e00632e204d6f7262692066617563696275732074656d706f72206d6178696d7500732e205175697371756520657520696d70657264696574206d61676e612c2000696420616c697175616d2075726e612e20446f6e6563207574206c69626572006f206475692e20457469616d206d6174746973206e756c6c6120717569732000617567756520696e74657264756d2c2061206d6f6c6573746965206f72636900207472697374697175652e20446f6e6563206e656320756c6c616d636f7270006572206e6962682c2061742074696e636964756e742070757275732e20447500697320626c616e646974206e69626820756c74726963696573206f7263692000616363756d73616e20736f6c6c696369747564696e2e20446f6e6563206964002061756775652071756973206e65717565206c616f72656574206f726e617200652e204e756e632072757472756d206a7573746f2075742065676573746173002068656e6472657269742e20437261732074656d70757320696e206d61757200697320612074696e636964756e742e0a0a557420706f72747469746f72207400656d70757320616c697175616d2e204d616563656e617320677261766964610020636f6e736571756174206d692c20657420747269737469717565206c6f7200656d20666575676961742073697420616d65742e205072616573656e742073006564206d6178696d7573206f64696f2c206567657420636f6e736563746574007572206c616375732e20416c697175616d20647569206e657175652c20766900766572726120636f6e73657175617420636f6e6775652076656c2c20636f6e00736571756174206964206f7263692e2041656e65616e2066696e69627573200065782073656d706572206e69736c206d61747469732c2071756973206c75630074757320656e696d206c6163696e69612e2050726f696e206964206d6173730061206d61757269732e20496e74656765722065752061726375206c6163696e006961206c656374757320657569736d6f64206c75637475732e20496e20766f006c7574706174206e6f6e206d657475732073697420616d657420636f6e7661006c6c69732e204e616d206c6967756c61206d657475732c206665726d656e7400756d2065752074656c6c75732069642c20656c656966656e642076617269750073206e657175652e204675736365206175677565206c6f72656d2c2070686100726574726120612073656d2076656c2c20636f6e64696d656e74756d206d61007474697320646f6c6f722e2046757363652073656d706572206e69736c2069006e2075726e612073757363697069742c2065676574207072657469756d206a007573746f20736f6c6c696369747564696e2e0a0a496e7465676572207669740061652072686f6e637573206573742c207175697320626962656e64756d207200697375732e20457469616d206d616c657375616461206175677565206575200074656d70757320636f6e76616c6c69732e205175697371756520717569732000656c697420666575676961742c20756c6c616d636f72706572206e6962682000696e2c206c7563747573206d617373612e2050686173656c6c757320636f6e0076616c6c69732073617069656e2076656c206c616375732074696e63696475006e742c206e656320657569736d6f64206573742070656c6c656e746573717500652e20416c697175616d20706f727461206a7573746f206120756c74726963006965732068656e6472657269742e204d6175726973206c756374757320617500677565206575206c656374757320646170696275732c20757420706f7274610020656c69742070656c6c656e7465737175652e20496e74656765722073656400206d61676e6120757420646f6c6f722074696e636964756e74206672696e6700696c6c61206964206174206475692e204d6f72626920656c656966656e64200072697375732073697420616d6574206d61676e612074656d7075732c20766500686963756c61206c6f626f72746973206f72636920736f6c6c69636974756400696e2e204e616d2065742074656d706f72206d61676e612e204d6f726269200071756973207072657469756d2072697375732c2075742076656e656e61746900732074656c6c75732e204d617572697320706f72746120646f6c6f722065740020636f6e73656374657475722068656e6472657269742e204e616d2070656c006c656e7465737175652065676573746173206f64696f207472697374697175006520677261766964612e2050656c6c656e746573717565206964206665726d00656e74756d206469616d2e20496e20636f6e7365637465747572206d69207600656c206c696265726f20657569736d6f642064696374756d2e20446f6e65630020736167697474697320616e7465206d617373612e205072616573656e7420006163206175677565206e657175652e0a0a536564206d6173736120747572700069732c20636f6e76616c6c69732065676574207665686963756c612065752c0020636f6e64696d656e74756d20736564206d657475732e2053656420636f6e0064696d656e74756d20766f6c7574706174206573742c2076656c2070756c7600696e6172206e69736920736f6c6c696369747564696e206e6f6e2e20496e740065676572207574206d61676e6120657420746f72746f722064696374756d2000636f6e64696d656e74756d20696e20706f727461206573742e20496e207369007420616d65742061756775652065782e204e756e6320766573746962756c75006d206964206c616375732076656c2070756c76696e61722e2050726f696e200070756c76696e6172206d6173736120757420616e7465206d6178696d75732c00207669746165206c7563747573207175616d20656765737461732e204475690073206d6178696d757320616e74652073697420616d6574206d616c65737561006461206469676e697373696d2e204675736365207574206c656f20626c616e006469742c20666163696c69736973206d657475732061742c20636f6e73657100756174206c696265726f2e20437261732076656e656e61746973206e6973690020656765742075726e61206665726d656e74756d2c2061742066696e6962750073207175616d20696163756c69732e20517569737175652076656c206c6f7200656d2065782e2050726f696e206a7573746f2066656c69732c207363656c650072697371756520736564206f64696f2069642c206665756769617420736f6c006c696369747564696e207175616d2e20496e74656765722076617269757320006f7263692073697420616d65742076756c7075746174652068656e647265720069742e204d6f726269206d6178696d75732c2065726f73206e6f6e20636f6e007365717561742066696e696275732c207175616d206e69626820756c6c616d00636f72706572206475692c20616320696e74657264756d2073656d20616e74006520766974616520746f72746f722e204375726162697475722076697461650020706861726574726120656e696d2e20437261732073757363697069742063006f6e677565206c656f2c20696e20736f6c6c696369747564696e206e69736900207472697374697175652061742e20566976616d757320706f72747469746f007220746f72746f7220636f6e64696d656e74756d2c20696163756c6973206c006967756c612075742c207472697374697175652065726f732e0a0a496e20650075206c756374757320616e74652e204d6f726269206d6178696d7573207572006e61206e6f6e206c6967756c6120706f73756572652c206120766f6c757470006174206f7263692073616769747469732e204e616d20617420656c6974206500676574206d692066696e696275732073656d70657220756c747269636573200073656420616e74652e205072616573656e742065752073656d706572206f720063692e204e616d2071756973206469616d206e65632065737420656666696300697475722073656d7065722e204d6f7262692073697420616d6574206f6469006f2070656c6c656e746573717565206e69736c20626c616e64697420736f6400616c65732e20447569732067726176696461206964206c6f72656d2065752000616c69717565742e205365642065726f73207475727069732c207375736369007069742073697420616d657420736f64616c6573207365642c20666163696c0069736973206574206573742e204f72636920766172697573206e61746f717500652070656e617469627573206574206d61676e697320646973207061727475007269656e74206d6f6e7465732c206e61736365747572207269646963756c750073206d75732e20566976616d75732073656d7065722074656d706f7220766100726975732e20416c697175616d20696420616c697175616d206469616d2e0a000a416c697175616d20746f72746f72206573742c206c7563747573206575200075726e6120717569732c2074656d7075732068656e6472657269742061726300752e20566573746962756c756d2073697420616d657420656c656d656e7475006d206c656f2e2053757370656e64697373652071756973206e756e632061200073617069656e2068656e64726572697420696d706572646965742e205365640020696e2065676573746173206c696265726f2e20446f6e656320636f6e677500652073697420616d6574206e65717565206461706962757320657569736d6f00642e204675736365207363656c657269737175652076656c20707572757320006964207363656c657269737175652e2050726f696e2076656c20706f7274740069746f72206e69736c2e0a0a4d6f726269206964206475692065676574207400757270697320696163756c697320636f6e6775652e204e756c6c616d2061750063746f722c206c6967756c61206567657420636f6d6d6f646f20707265746900756d2c206c696265726f206e756c6c6120756c74726963696573206f64696f002c2075742072757472756d2061726375206172637520696e206e6973692e20004d61757269732065676574206c6163757320696e20657820766172697573200073616769747469732073656420696e20656c69742e204d6175726973206d6f006c6573746965206f64696f206574206f72636920706861726574726120706c006163657261742e20496e746567657220696e20747572706973206567657420006c696265726f20636f6e7365637465747572206c6f626f7274697320657520006e6f6e206c616375732e204d616563656e61732064696374756d206c656f200074656d707573206c61637573206d617474697320736f64616c65732e20446f006e6563206a7573746f206f64696f2c2074696e636964756e7420616320617200637520656765742c20666175636962757320706f737565726520646f6c6f72002e205072616573656e742065676574206e756e63206e65632066656c69732000696e74657264756d2072686f6e6375732e20566573746962756c756d20656c00656d656e74756d206461706962757320636f6e73656374657475722e205375007370656e6469737365206964206e756e63206d61747469732c206c756374750073206e6962682073697420616d65742c20636f6e64696d656e74756d206578002e20496e7465676572206f726e6172652075726e61207669746165206e69730069206c7563747573206469676e697373696d2e2041656e65616e2074696e63006964756e742068656e647265726974207269737573206e6f6e20616363756d0073616e2e204e756c6c6120617420736f64616c6573206e69736c2e20496e7400656765722068656e647265726974207669746165206d61676e61207669746100652073757363697069742e20437261732064617069627573206c65637475730020736564206c656f207363656c657269737175652073656d7065722e204d6100757269732061207269737573206e756c6c612e0a0a53656420696163756c6900732c206c656f20757420766573746962756c756d206672696e67696c6c612c002066656c69732073617069656e20636f6e76616c6c6973206c65637475732c002076656c206c616f72656574207175616d206f7263692061206d6175726973002e204e756c6c616d20657520616363756d73616e2073617069656e2e205065006c6c656e746573717565206d617474697320736f64616c6573206d6175726900732c20757420636f6e64696d656e74756d206d61676e6120636f6e677565200076656c2e2041656e65616e20706f72747469746f72206e6973692061632065007261742066617563696275732073757363697069742e2050686173656c6c75007320656c656d656e74756d2074696e636964756e74207175616d206e65632000636f6e64696d656e74756d2e204375726162697475722066696e6962757320006e756c6c612076656c206c6163696e696120696d706572646965742e204d61006563656e61732066657567696174206d617474697320646f6c6f722c206e65006320616363756d73616e20697073756d2074656d706f722075742e205068610073656c6c757320617563746f7220666163696c697369732072757472756d2e0020536564207669746165206d69206e6f6e206f64696f2070656c6c656e7465007371756520626c616e64697420696e2061206d61676e612e0a0a5365642069006e206469616d20636f6e6775652c20636f6d6d6f646f20746f72746f722061002c20657569736d6f64206c6967756c612e20496e2061632065666669636974007572206e756e632c2076656c20756c6c616d636f7270657220697073756d2e0020416c697175616d2076656c206469616d206665726d656e74756d2c20736f006c6c696369747564696e20617263752065742c20656c656d656e74756d207300617069656e2e2043726173206c656f206d657475732c2072686f6e637573200071756973206d617373612065752c206772617669646120696163756c69732000657261742e2043757261626974757220756c7472696365732073697420616d00657420656e696d20757420617563746f722e2041656e65616e20617420617500677565206163206a7573746f2074656d70757320626962656e64756d207365006420696d7065726469657420746f72746f722e204e756c6c616d2073656420006d61757269732073617069656e2e20447569732070656c6c656e746573717500652075726e6120696e2066696e69627573206d6f6c65737469652e20507261006573656e74206e6f6e207072657469756d206d61676e612c206e6563206c610063696e696120746f72746f722e2050726f696e20666175636962757320656c00656d656e74756d206c6f72656d2c2072686f6e6375732076756c7075746174006520657820616c69717565742061632e0a0a416c697175616d2074696e63690064756e7420617263752073617069656e2c20616c697175657420737573636900706974206c656f20656c656d656e74756d2076697461652e2043726173206d00617474697320617263752076656c206f726e617265206665726d656e74756d002e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65737469650020657261742073656d7065722c20736564206c7563747573206e65717565200076756c7075746174652e2053757370656e6469737365206d616c657375616400612c20646f6c6f722076656c20756c74726963657320696d70657264696574002c206d69206e69626820756c74726963696573207475727069732c206e656300207072657469756d206c696265726f20697073756d207669746165207269730075732e20416c697175616d20696e20636f6e677565206c616375732c2066650075676961742076756c7075746174652065726f732e20496e206c616f7265650074206e69626820696e2076756c70757461746520766573746962756c756d2e00205574206661756369627573206f726e617265206e756e632073697420616d00657420656c656966656e642e205072616573656e7420706c616365726174200073617069656e2076656c20656c69742074656d706f7220626962656e64756d002e204e756c6c612071756973207665686963756c6120617263752e205375730070656e646973736520736f64616c6573206c656f2061632075726e6120616c0069717565742076756c7075746174652e20536564206d6f6c6c69732c206c610063757320657520656c656966656e6420736f64616c65732c206d61676e6120006172637520766172697573206c656f2c20657520626c616e6469742066656c006973206572617420657420746f72746f722e205072616573656e742074656d007075732073697420616d6574206d61676e61207669746165206f726e617265002e20416c697175616d20656c656966656e642076656c206f64696f2069642000636f6e7365717561742e204d6175726973206574206e657175652071756973002073617069656e20706f737565726520756c74726963696573206575207369007420616d65742075726e612e20437261732072686f6e6375732065726f73200076656c2073656d2070756c76696e61722066696e696275732061206e6f6e200072697375732e0a0a536564206c6f626f72746973206f64696f207175616d2c00206e6f6e20637572737573206e756c6c6120616c697175616d206e6f6e2e2000446f6e65632061726375206573742c20666163696c6973697320696e2066610075636962757320612c2070686172657472612073697420616d6574206e6973006c2e205175697371756520696163756c6973206c656f206e6f6e20656c656d00656e74756d20706c6163657261742e2053656420766573746962756c756d20006c656f20616e74652c20616320636f6e76616c6c697320647569207361676900747469732069642e20496e206861632068616269746173736520706c61746500612064696374756d73742e20536564206d6f6c657374696520636f6e76616c006c69732066656c69732c20696e2070656c6c656e74657371756520616e74650020696e74657264756d20612e20566976616d757320706c6163657261742065006c656966656e6420616e74652e2050656c6c656e746573717565207369742000616d6574206f64696f207665686963756c612c207361676974746973206573007420656765742c20656c656d656e74756d206c6f72656d2e204d61757269730020656c6974206d61676e612c20636f6e6775652076656c2065726f73206e6500632c20696163756c6973206d616c65737561646120616e74652e2056697661006d757320696e20656666696369747572206f64696f2c207175697320616c69007175616d206e756c6c612e204e756c6c61207574206469676e697373696d20006475692e20496e206567657374617320666163696c69736973206c6f72656d002c206e6f6e20656c656d656e74756d20647569207665686963756c61206e6500632e204e756c6c61206d616c65737561646120706f72747469746f72206578002061206f726e6172652e204e756c6c61206e6f6e20766172697573206f6469006f2e2041656e65616e206e656320696d706572646965742073617069656e2e0020446f6e6563206e69736920617263752c2070756c76696e617220707265740069756d206d616c6573756164612061632c20706f72746120766974616520710075616d2e0a0a437572616269747572206d6f6c65737469652c206d6920696e0074657264756d206c7563747573206375727375732c207269737573207361700069656e206c6f626f72746973206c656f2c206174206566666963697475722000617567756520656c6974207365642074656c6c75732e204e756e6320737573006369706974206c7563747573206e69736c2073697420616d65742062696265006e64756d2e20446f6e6563206e6f6e206375727375732070757275732c20610063206661756369627573206a7573746f2e2050726f696e20617563746f722000766f6c7574706174206e756e632c20696e20747269737469717565206e6973006c20626962656e64756d2061742e2053757370656e64697373652076656e65006e61746973206e756e63206e69736c2c206e65632067726176696461206c69006265726f2074726973746971756520696e2e205175697371756520706c616300657261742061206e69736c20616320706c6163657261742e2041656e65616e0020756c74726963696573206c696265726f20696420697073756d2072686f6e006375732c2073697420616d657420616c697175616d20656e696d206c7563740075732e20447569732076656e656e6174697320646f6c6f722065742074656c006c757320636f6e736571756174206c6f626f727469732e20446f6e65632069006e206469616d20706f73756572652c206665726d656e74756d207269737573002065742c2070756c76696e6172206e657175652e0a0a496e7465676572206e006563206e6962682065752074656c6c7573207072657469756d20696e7465720064756d206174206574206469616d2e204e756c6c612070656c6c656e74657300717565206f64696f20717569732065726f73206567657374617320736f6461006c65732e2043757261626974757220656765742074656d707573206469616d002e2050656c6c656e74657371756520756c747269636965732061726375206500782c206120696d70657264696574206a7573746f20706f7375657265207665006c2e2050726f696e2076756c70757461746520736f64616c6573206d61737300612061742070686172657472612e20496e7465676572206e6f6e206d6173730061207574206c6967756c6120666575676961742074656d7075732e2051756900737175652073616769747469732076656c206e756e6320757420747269737400697175652e2041656e65616e2075742074656d706f72206a7573746f2e2044006f6e656320636f6e677565206e69736c20736564207175616d206d6f6c657300746965206d6f6c6c69732e204e756c6c616d20706c6163657261742c2074750072706973206567657420677261766964612072757472756d2c2066656c6973002076656c697420616c697175616d2065726f732c20696420656c656d656e7400756d206c6967756c612075726e6120696420657261742e204e756c6c61206e0065632072686f6e6375732073656d2e205574206e6563207665686963756c61002065782c2076656c2068656e647265726974206e657175652e20557420706c006163657261742076656c69742076656c2076656c69742068656e647265726900742c207669746165206665726d656e74756d207269737573206d6f6c6573740069652e0a0a4d6175726973206f726369206c65637475732c20696d7065726400696574207365642066696e69627573206e65632c20616c697175616d207665006c206e6962682e20566573746962756c756d206672696e67696c6c612061630063756d73616e206e756e63206574206d6f6c65737469652e205574206574200065726174206a7573746f2e2050656c6c656e74657371756520677261766964006120617263752070757275732e2041656e65616e20696e206e6962682076690074616520617263752064696374756d2074696e636964756e74206964206575002066656c69732e205072616573656e7420657420656c6974206964206d692000636f6e736563746574757220616c697175616d2e20566573746962756c756d0020696e20656e696d2064696374756d2c20626962656e64756d206572617420006e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e7465737100756520636f6e76616c6c6973206f726369206e6973692c206e656320756c7400726963696573206f64696f20706f73756572652073697420616d65742e0a0a004d616563656e61732073697420616d6574206665726d656e74756d206e6973006c2e20566573746962756c756d20616e746520697073756d207072696d69730020696e206661756369627573206f726369206c756374757320657420756c7400726963657320706f737565726520637562696c69612063757261653b20507200616573656e74206174206e756e6320696e206d61676e6120636f6e73657175006174207363656c657269737175652e204d616563656e617320696e20717561006d207574206a7573746f2074696e636964756e7420617563746f722e205068006173656c6c757320757420646f6c6f72206d657475732e20496e2073656d70006572206d6920736564206c6f72656d2070686172657472612072686f6e637500732e204675736365206567657420657374206c616f726565742c20736167690074746973206c696265726f2073697420616d65742c2066657567696174206e006962682e204d6f72626920646170696275732075726e61206163207175616d00206665726d656e74756d2072686f6e6375732e20446f6e656320636f6e7661006c6c697320657569736d6f64206469676e697373696d2e204375726162697400757220757420747269737469717565206c6967756c612e0a0a536564207275007472756d2074696e636964756e74207472697374697175652e204e756e6320006d69207175616d2c20637572737573206574207665686963756c612065676500742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e65632061007563746f722066696e69627573206f726e6172652e204d6f72626920766568006963756c612c206e69736c2076656c20636f6d6d6f646f20706f7274746974006f722c20646f6c6f72206e756e63207361676974746973206469616d2c2065006765742066617563696275732073617069656e2065782076656c206d61676e00612e204375726162697475722076656c206c6967756c612073697420616d650074206c6967756c6120646170696275732066696e696275732e20457469616d002073697420616d6574206c6f72656d206c65637475732e204e756c6c616d20006665726d656e74756d206e69736c206c696265726f2c207669746165207469006e636964756e74207075727573206c6163696e696120717569732e204d6f72006269207574206d6f6c657374696520697073756d2c206575206d6f6c657374006965206c6967756c612e2050686173656c6c7573206574206c656374757320006a7573746f2e20566976616d7573206578206d61676e612c20636f6e736571007561742076656c206a7573746f2076656c2c2074656d706f7220616c69717500616d20616e74652e205365642066696e6962757320736564206d6173736120007175697320636f6d6d6f646f2e20446f6e656320696e206e696268206e6563002074656c6c757320636f6e677565206469676e697373696d206567657420760069746165206e756c6c612e204475697320656c656966656e6420706c61636500726174207269737573206120706c6163657261742e204d6175726973206e650063206c65637475732068656e6472657269742c207361676974746973207665006c697420636f6e64696d656e74756d2c2065676573746173206475692e0a0a004e616d20696163756c69732076656c697420717569732075726e6120706f720074612073616769747469732e2041656e65616e20636f6d6d6f646f206e6973006c206e656320697073756d206c6f626f727469732c20626962656e64756d200065666669636974757220656e696d20636f6e64696d656e74756d2e2050726f00696e206172637520656c69742c206665726d656e74756d2075742065676573007461732061742c206c616f726565742076656c206e69736c2e20496e74656700657220626962656e64756d20747572706973207574206469616d206665726d00656e74756d2c2065752074656d707573206c656f206672696e67696c6c612e00204d616563656e61732076656c697420617263752c20636f6e64696d656e7400756d20696d7065726469657420657261742065742c206661756369627573200076756c707574617465206c65637475732e20437572616269747572206d657400757320656e696d2c206672696e67696c6c6120757420666163696c69736973002061632c20616363756d73616e20696e20697073756d2e204e756c6c616d20007665686963756c61206c6163696e6961206d617373612c2076656c20666175006369627573206f64696f20636f6e64696d656e74756d2061742e204d61757200697320706f72747469746f722065726f73206d61676e612c207574206d617800696d75732074656c6c7573206665726d656e74756d2069642e20566976616d007573207574206c6563747573206f726e6172652c20706f72747469746f7220006469616d20656765742c20756c6c616d636f72706572206e6962682e2044750069732076656e656e617469732074656d706f7220657261742c207574207661007269757320657374206c6f626f727469732076656c2e2050686173656c6c75007320736564206578206c65637475732e205365642076656c2073617069656e0020616c697175616d2c20696e74657264756d206475692069642c20656c65690066656e64206f7263692e0a0a5072616573656e74206174206c6f626f7274690073206d657475732e204e616d2074656d707573207175616d206475692c206e006563206c7563747573206d617373612074696e636964756e7420612e205065006c6c656e74657371756520616363756d73616e2076656c697420757420617500677565206d617474697320636f6e76616c6c69732e205574206567657374610073206f64696f20656e696d2c206163207669766572726120616e746520636f006e76616c6c69732075742e2041656e65616e20696e2064756920617420717500616d206665726d656e74756d2072757472756d2e20566976616d757320656700657420636f6e76616c6c6973206c65637475732e20457469616d2065756973006d6f64206672696e67696c6c6120746f72746f722c206e656320696e7465720064756d206a7573746f206d61747469732065752e204e756c6c616d206d617800696d7573206e696268206469616d2c206575206c6f626f72746973206a757300746f207072657469756d2076697461652e20517569737175652074696e63690064756e7420646f6c6f722061742075726e6120636f6e64696d656e74756d2c00207669746165206d616c6573756164612065737420706f72747469746f722e002050656c6c656e746573717565207669746165206475692065782e2056697600616d757320766f6c757470617420697073756d207574207475727069732065006c656d656e74756d20706f7274612e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d6175726973207365642066656c690073206e756c6c612e205072616573656e742076656c2072697375732076656c0069742e0a0a446f6e656320706f727461206174206469616d2073656d7065720020616c69717565742e2041656e65616e20637572737573206c6f72656d206e006f6e2076617269757320636f6d6d6f646f2e20536564206e65717565206572006f732c20656666696369747572206e6563206469616d20696e2c20747269730074697175652076697665727261206469616d2e2053757370656e64697373650020746f72746f72206475692c20657569736d6f64206e6563206e756c6c61200061632c20616c697175657420756c74726963696573206c6f72656d2e205068006173656c6c757320636f6e7365637465747572206575206573742061632065006765737461732e204e756e6320757420656c697420696e2070757275732061006363756d73616e20657569736d6f642e2043726173206c656f206f7263692c0020677261766964612076656c20626962656e64756d20656765742c20636f6e0076616c6c697320696e2072697375732e20467573636520656765742073656d007065722073617069656e2e0a0a536564206d6f6c657374696520706c61636500726174206c6967756c61206e656320766976657272612e20496e2061742065006666696369747572206d61676e612e204e616d2066696e69627573206c6f7200656d20657420726973757320756c747269636965732c2076656c2063757273007573206e65717565207363656c657269737175652e20496e74657264756d20006574206d616c6573756164612066616d657320616320616e74652069707375006d207072696d697320696e2066617563696275732e2053656420696e2065670065737461732065726f732e2041656e65616e2074656d706f722c206e6962680020636f6d6d6f646f20626962656e64756d206c75637475732c2076656c697400206e756e6320696e74657264756d206f7263692c2073697420616d6574207400656d707573206c656f2070757275732076697461652072697375732e2045740069616d207669746165207269737573206e6962682e20566573746962756c75006d206d6f6c65737469652063757273757320616e74652c2065676574206c610063696e6961206c656f206d6f6c65737469652076656c2e0a0a53757370656e00646973736520757420677261766964612073617069656e2e2056657374696200756c756d20616363756d73616e206e756e6320696e2064617069627573207300656d7065722e204e756e632076656c2073656d706572207175616d2e205065006c6c656e746573717565206861626974616e74206d6f72626920747269737400697175652073656e6563747573206574206e65747573206574206d616c657300756164612066616d65732061632074757270697320656765737461732e20460075736365206d6f6c6573746965206672696e67696c6c61206c6f72656d2c20007175697320747269737469717565206d61676e6120756c6c616d636f72706500722073697420616d65742e20437572616269747572207669746165206c6f7200656d207574206a7573746f206c616f72656574207665686963756c61206174002061206469616d2e2053757370656e646973736520616c697175657420636f006e73656374657475722065782c20757420636f6e7365637465747572206e650071756520636f6e7365637465747572206e65632e20496e74656765722076690074616520636f6e64696d656e74756d20746f72746f722e204e756e6320736500642073757363697069742073617069656e2e2050686173656c6c757320656c00656d656e74756d20657569736d6f642076656c69742c2065676574206469630074756d20646f6c6f7220756c6c616d636f727065722065752e0a0a5068617300656c6c75732061742064756920697073756d2e204e756e63206c75637475730020617563746f72206e69736c20657520617563746f722e20446f6e65632063006f6e76616c6c69732061726375206c6163696e6961206578207361676974740069732c20736564206f726e61726520616e7465206f726e6172652e204e616d002074696e636964756e74206a7573746f207475727069732c20736564206d61007474697320616e746520736f6c6c696369747564696e207365642e2053656400206f726e61726520697073756d206e6962682c2061632074656d706f72206d0061676e612076617269757320696e2e204e616d206672696e67696c6c61206d0061676e61206d692c2075742065676573746173206c6f72656d207661726975007320696e2e20536564206575206c75637475732073617069656e2e20496e7400656765722076656c206469676e697373696d20656c69742c20617420706c61006365726174207475727069732e20446f6e656320696e206e69626820696420006a7573746f206c6f626f727469732064696374756d2e20446f6e656320706800617265747261206f726369206e656320636f6e76616c6c697320736f6c6c69006369747564696e2e0a0a50656c6c656e7465737175652073697420616d657400206672696e67696c6c612073656d2c20616320737573636970697420656c6900742e20446f6e656320612074726973746971756520697073756d2c206e6f6e0020756c7472696365732065726f732e205072616573656e7420616c69717561006d20697073756d206567657420626962656e64756d20766f6c75747061742e0020447569732073697420616d6574206469616d20626962656e64756d2c2061007563746f72206e69736920656765742c206d6f6c6c697320746f72746f722e00204d61757269732065742076656c69742075726e612e2055742066656c697300206c65637475732c207072657469756d207365642074656d707573207369740020616d65742c206d6f6c6c6973207669746165206c65637475732e204d6175007269732073697420616d6574206f7263692065752074656c6c75732066616300696c697369732074696e636964756e742e20447569732068656e647265726900742066656c69732061206e6571756520617563746f7220636f6e6775652e20004d6f726269206c6967756c61206573742c2070656c6c656e746573717565200076656c2073616769747469732065742c20666175636962757320656765742000656e696d2e0a0a517569737175652064696374756d206e6973692069642073006f6c6c696369747564696e207072657469756d2e20496e74657264756d20650074206d616c6573756164612066616d657320616320616e746520697073756d00207072696d697320696e2066617563696275732e2053757370656e646973730065207665686963756c612076656e656e617469732072697375732c20617420007665686963756c61206c616375732072757472756d206e6f6e2e2050656c6c00656e746573717565206861626974616e74206d6f72626920747269737469710075652073656e6563747573206574206e65747573206574206d616c657375610064612066616d65732061632074757270697320656765737461732e20496e20007075727573206d617373612c206d6f6c657374696520696e206e6962682061002c2076656e656e6174697320626c616e64697420656c69742e205068617365006c6c75732073617069656e206469616d2c2074696e636964756e7420736f6400616c6573206469616d2076697461652c20636f6e67756520736167697474690073206f64696f2e2043757261626974757220657569736d6f64206e65632061006e746520736564207072657469756d2e2050656c6c656e746573717565206d006f6c65737469652076617269757320656e696d2c206e6f6e20666175636962007573206c656f2073616769747469732061632e20437572616269747572207100756973206d61757269732071756973206c6967756c6120756c6c616d636f7200706572206d616c65737561646120736564206575206c65637475732e0a0a5300757370656e64697373652076656c206d61676e61206469676e697373696d2c002064696374756d206e657175652073757363697069742c20626962656e6475006d206c616375732e205175697371756520717569732066656c69732061726300752e2050686173656c6c75732065726174206c656f2c2073656d7065722061007420646f6c6f7220656765742c2076656e656e617469732072686f6e637573002065782e2043726173206d6f6c6c6973206e696268207365642061756775650020736f64616c65732c2073697420616d6574206d6f6c6c6973207075727573002070686172657472612e2043726173206e6563206d692071756973206c656f0020696d7065726469657420616363756d73616e207574206964207175616d2e00204e616d206e69736c20656c69742c206f726e61726520657520756c747269006365732076697461652c20706f72747469746f72206574206c6967756c612e002050656c6c656e746573717565207665686963756c6120656c69742065742000697073756d20636f6e7365717561742c206e6563206d6f6c6c6973206573740020696e74657264756d2e2055742074656d706f7220637572737573206d6f6c0065737469652e204d61757269732074696e636964756e7420616363756d7361006e206e756e6320696420696d706572646965742e20457469616d206d616c650073756164612c206e6973692061632076756c70757461746520696163756c6900732c206e697369206f72636920706c616365726174206e756c6c612c206e6500632074696e636964756e742074656c6c757320656c69742071756973207572006e612e20457469616d206c61637573206d617373612c2068656e6472657269007420757420636f6d6d6f646f20612c20696e74657264756d206964206e6973006c2e20496e746567657220766974616520616e7465206672696e67696c6c6100206d692074696e636964756e7420636f6e73656374657475722e204e756c6c006120636f6e7365637465747572206f726e61726520626962656e64756d2e0a000a55742073697420616d657420657569736d6f642074656c6c75732e205065006c6c656e746573717565207072657469756d2074696e636964756e7420647500692065752073656d7065722e205365642076656c2065726f73206e6f6e2064006f6c6f7220696163756c697320696e74657264756d20736564207175697320006f7263692e20496e2073656d706572206c6f626f72746973206469676e69730073696d2e2053656420666175636962757320666575676961742070656c6c65006e7465737175652e2050656c6c656e74657371756520736f6c6c69636974750064696e206f64696f20736564206c65637475732073616769747469732c206e006f6e20756c7472696369657320697073756d2072757472756d2e205365642000736564206f726e6172652065782e0a0a5072616573656e7420766974616520006d6f6c6573746965207175616d2c20616320626c616e646974206f64696f2e0020457469616d2065676573746173206375727375732075726e612069642065007569736d6f642e204e616d20616c69717565742061726375206575206c756300747573206c616f726565742e20457469616d20696d7065726469657420717500616d2076656c20636f6e73657175617420626c616e6469742e204d61757269007320696e74657264756d2c206469616d20766172697573206c6163696e69610020616c69717565742c2076656c69742074656c6c757320706861726574726100206a7573746f2c20656765742073757363697069742075726e61206e756c6c00612071756973206c656f2e204e756c6c61206578206e69736c2c2066617563006962757320617420626c616e6469742061632c2063757273757320612069700073756d2e20566976616d75732071756973206469616d20636f6e6775652c2000657569736d6f642075726e612073697420616d65742c206672696e67696c6c006120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e677565206c00696265726f2074656d706f7220756c747269636965732e2050656c6c656e740065737175652070756c76696e61722073617069656e207669746165206e756e0063207363656c65726973717565206672696e67696c6c612e204675736365200068656e647265726974206566666963697475722066617563696275732e2041006c697175616d2070757275732061756775652c206c7563747573206e6f6e2000636f6e76616c6c697320717569732c206d6178696d7573206e6f6e20647569002e0a0a446f6e65632070656c6c656e74657371756520657261742065752065007374206c6163696e696120616363756d73616e2e2050726f696e206d6f6c6c0069732073656d20646f6c6f722c206964206d6f6c6c6973206c656374757320007669766572726120696e2e204e756e632071756973206d6173736120766172006975732c206665726d656e74756d206c656f2076697461652c206c6f626f7200746973206e657175652e205175697371756520756c6c616d636f7270657220006a7573746f20766974616520636f6e67756520656c656966656e642e2045740069616d206574206c61637573206573742e20496e7465676572207475727069007320617263752c20616363756d73616e2076656c20697073756d2065676574002c206d616c65737561646120756c6c616d636f72706572206a7573746f2e20004d6175726973206e6f6e2065782074696e636964756e742c20756c74726963006573206c616375732061742c20626c616e646974206f64696f2e2056657374006962756c756d2067726176696461206e65632073617069656e206e656320640069676e697373696d2e2053757370656e64697373652074656d706f7220696e00206e69736c2076656c206d6f6c6c69732e204d616563656e6173206772617600696461206c616375732074656c6c75732c20657420756c7472696369657320006e756c6c612074696e636964756e7420612e20416c697175616d20657261740020766f6c75747061742e20446f6e65632065726f73206c65637475732c20640069676e697373696d2069642073617069656e2061742c20706c6163657261740020666163696c697369732070757275732e20566976616d757320707265746900756d2c206d69206120756c6c616d636f727065722074696e636964756e742c00206475692074656c6c757320626c616e646974206d617373612c206e6563200066696e6962757320657374206e69736c2071756973206e6962682e2046757300636520646170696275732064756920696e20636f6e73656374657475722070006c6163657261742e20467573636520736f6c6c696369747564696e20656765007374617320657261742c2073697420616d657420616363756d73616e206c65006f2074696e636964756e7420696e2e204d6f7262692065666669636974757200206d61757269732069642064696374756d20666163696c697369732e0a0a5500742075726e61206d61676e612c20706f72747469746f722061632065666669006369747572206e6f6e2c20656666696369747572206174206d617373612e200041656e65616e2073656420656c6974206e6f6e2065782073757363697069740020616363756d73616e2e20416c697175616d207669746165206c656f207361006769747469732c2067726176696461206c6967756c612065742c2070756c7600696e617220646f6c6f722e20457469616d20616320746f72746f72206c6f7200656d2e2050686173656c6c7573206567657374617320696163756c69732067007261766964612e204e756e63206e6f6e206e756e63206e6962682e2056697600616d757320766974616520617563746f722073617069656e2e20437261732000706f7375657265206e756c6c61206f64696f2c20657520706f727461206578002076656e656e6174697320612e204e616d207269737573206e657175652c2000657569736d6f642075742063757273757320656765742c2066617563696275007320736f6c6c696369747564696e20746f72746f722e2043757261626974750072207574206d65747573206e6f6e206469616d20617563746f722074696e63006964756e742e20496e7465676572206d616c65737561646120707265746975006d2076656e656e617469732e20566976616d75732072686f6e637573207469006e636964756e74206c6f72656d207175697320756c747269636965732e205000686173656c6c7573206f726e6172652065726f732065742068656e6472657200697420636f6d6d6f646f2e0a0a43757261626974757220696163756c69732000636f6e7365717561742073656d20717569732070656c6c656e746573717565002e2050726f696e206d617474697320656e696d20696e2065737420736167690074746973207661726975732e204d6f726269206e65632074696e636964756e00742076656c69742c206575206469676e697373696d20657261742e20416c69007175616d206572617420766f6c75747061742e205072616573656e74206669006e696275732074656c6c757320696e2068656e6472657269742076657374690062756c756d2e20437572616269747572206d6f6c6c69732074656c6c757320006d692c206e6563206d616c6573756164612076656c6974207375736369706900742061742e205365642065726174206e657175652c2072757472756d2073650064206665726d656e74756d2076656c2c2070656c6c656e746573717565206e006f6e20616e74652e204e616d20736f64616c65732070756c76696e6172206c006f72656d2c2065742074696e636964756e74206d61737361206469676e69730073696d2061632e20457469616d206d61737361207175616d2c20766f6c757400706174206574206c6f626f727469732073697420616d65742c2076656e656e006174697320696420656e696d2e0a0a446f6e656320706f727461206e69736c0020657520697073756d20706f72747469746f722c20656765742070756c7669006e6172206c6f72656d206d6178696d75732e205574206163206e6571756520006c6f72656d2e204e756c6c612061206c6f72656d2065676574206c656f206d006f6c6c6973206469676e697373696d2e20566573746962756c756d20696d70006572646965742073656d706572206c65637475732e204e756c6c6120657420006469616d206574206e756c6c61206f726e61726520736f6c6c69636974756400696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c20766568006963756c61206a7573746f2061742c2074696e636964756e74207361706965006e2e2043757261626974757220657569736d6f642076697665727261207268006f6e6375732e204e756e6320766172697573206f726369206e6563206d617300736120766976657272612c2065676574206c7563747573206c616375732075006c7472696365732e204375726162697475722063757273757320656c69742000646f6c6f722e20467573636520616c6971756574206f726e6172652065726f00732c20612067726176696461206578206d616c6573756164612076656c2e20004e616d206163206d61676e6120636f6e7365717561742c2076617269757320006d61757269732065752c206665726d656e74756d206c696265726f2e0a0a500072616573656e7420657420646f6c6f722074656d706f72206475692074696e00636964756e742064696374756d2e2050656c6c656e746573717565206d617800696d757320697073756d20657520656765737461732074656d7075732e2046007573636520616c697175616d20696d7065726469657420616e74652065742000626c616e6469742e204d61757269732068656e647265726974206c6f626f7200746973206c616f726565742e2041656e65616e20706f72746120766f6c75740070617420697073756d2c206120736f6c6c696369747564696e20617263752000756c6c616d636f72706572206e6f6e2e205365642076617269757320706c6100636572617420656e696d206575207072657469756d2e20496e206a7573746f0020617263752c20656c656d656e74756d20757420616c69717565742065752c00206c616f72656574206964206c656f2e20496e7465676572207365642061720063752061206469616d206c75637475732072686f6e6375732e20557420656700657420636f6e677565206d657475732c2069642072757472756d206c6563740075732e0a0a4d6f726269207665686963756c6120616363756d73616e206e6900736c2c20617420706f727461206c616375732066617563696275732065676500742e2053757370656e64697373652076756c707574617465206d69206e6f6e0020766f6c757470617420666575676961742e2051756973717565206469637400756d20706f72747469746f72206f64696f2073697420616d657420636f6e670075652e2041656e65616e20657569736d6f64207072657469756d20656c69740020706f72747469746f722066696e696275732e204d616563656e617320736500642076756c7075746174652072697375732e2041656e65616e2065726f732000656e696d2c2076656e656e6174697320696420636f6e73657175617420612c002072686f6e637573206f726e6172652073656d2e20517569737175652062690062656e64756d20766f6c757470617420616e74652c20616320706f7375657200652073617069656e207375736369706974206566666963697475722e204e75006c6c61206f726e617265206e696268206163206d61757269732076756c707500746174652c206e6f6e207068617265747261206469616d2076697665727261002e20436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e002050726f696e20617420766573746962756c756d2076656c69742e205365640020766976657272612076656e656e61746973206d692c207574206d616c65730075616461206e756c6c612e2044756973207068617265747261206964206e6900626820617420636f6e6775652e20536564206c6163696e69612065726f73200061206572617420766976657272612c20612074696e636964756e742061756700756520616363756d73616e2e2050656c6c656e746573717565206c6f626f720074697320616363756d73616e2073656d2c2065676574206d616c65737561640061206e756c6c61206665726d656e74756d2073697420616d65742e20496e2000616363756d73616e206c616f72656574206e69736c2076697461652066657500676961742e20416c697175616d206572617420766f6c75747061742e0a0a440075697320696420616e7465206c6967756c612e2050686173656c6c75732073006167697474697320706c61636572617420706f73756572652e204d61656365006e61732076697461652076697665727261206c616375732c206d6f6c6c697300206d616c657375616461206c65637475732e2050656c6c656e7465737175650020696e20657374206c6163696e69612c20656c656d656e74756d206e756e630020656765742c2070656c6c656e746573717565206a7573746f2e20517569730071756520636f6e67756520747572706973206e6f6e206f64696f20626c616e00646974207361676974746973206772617669646120657420697073756d2e20004e756c6c616d206c6f626f72746973206e6571756520616320656c69742063006f6e76616c6c697320616363756d73616e2073697420616d65742070756c7600696e6172206d617373612e20446f6e656320657520636f6d6d6f646f20616e0074652c2073697420616d657420756c6c616d636f7270657220646f6c6f722e002044756973206d6175726973206c6967756c612c20656c656d656e74756d200061742066617563696275732061632c20616c697175616d20696e2066656c6900732e205072616573656e74206c6f626f727469732065782073697420616d650074206e69736c20756c74726963696573206c6163696e69612e20566976616d00757320617563746f722c2073656d207175697320766573746962756c756d20007363656c657269737175652c2073617069656e206e69736c2072757472756d00206c696265726f2c2073697420616d657420696e74657264756d206e69736c00206a7573746f207669746165206c65637475732e20566976616d757320696d0070657264696574206e756c6c6120657520657261742076656e656e61746973002c20736564206d6f6c657374696520646f6c6f72207665686963756c612e2000517569737175652076656c2061726375207365642073656d2073656d70657200206375727375732e2050656c6c656e746573717565206d617474697320656c00656966656e64207269737573206574206d6f6c6c69732e205574206c6f626f00727469732c2065737420736564206665726d656e74756d2073656d7065722c002075726e612072697375732064617069627573206475692c20612074656d70007573206d6175726973206e69736c206174206469616d2e20566976616d757300206469676e697373696d20666163696c6973697320636f6e7365637465747500722e20496e20706f737565726520736f6c6c696369747564696e20656c656d00656e74756d2e0a0a457469616d20697073756d206573742c206d616c65737500616461206120666575676961742073697420616d65742c206d6f6c65737469006520656765742066656c69732e2041656e65616e2074656d70757320667269006e67696c6c61206469616d20696e20616c697175616d2e20446f6e6563207300697420616d65742072757472756d206469616d2e2050686173656c6c75732000756c6c616d636f72706572206d617474697320616363756d73616e2e205375007370656e646973736520616c6971756574207669746165206e6973692061630020766f6c75747061742e2050726f696e207075727573206d61757269732c2000696d706572646965742073697420616d657420647569206e6f6e2c20766568006963756c6120637572737573206f7263692e20446f6e65632065742074656c006c7573206574206d6574757320766573746962756c756d20656c656d656e7400756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74657371750065206c6967756c61206e69736c2c20616c697175616d206163206c6967756c006120706f73756572652c20656c656d656e74756d2068656e64726572697420006d61757269732e204d617572697320666163696c697369732066656c69732000696e2072757472756d20696163756c69732e204e756e632066657567696174002073656d20612068656e6472657269742072757472756d2e20496e746567650072206d6f6c65737469652064696374756d2066696e696275732e2041656e6500616e206e656320766f6c7574706174206c6967756c612e205175697371756500206d617373612070757275732c20706861726574726120757420696163756c006973207365642c20706f72747469746f7220616320616e74652e20416c69710075616d206d6173736120656e696d2c2076756c707574617465206e6563206d00692069642c20756c6c616d636f72706572206665756769617420747572706900732e0a0a4e756e63207669766572726120647569206c6f72656d2c207369740020616d657420656666696369747572206d65747573207375736369706974200076656c2e20566573746962756c756d2073697420616d657420706f7274746900746f722065782e205574206d616c657375616461206c6563747573206e656300206d65747573206672696e67696c6c612c206e65632073656d706572207572006e61206d616c6573756164612e20557420756c6c616d636f72706572206e69007369206174206e69736c20696d706572646965742070756c76696e61722e2000566573746962756c756d2065726f7320646f6c6f722c20766f6c757470617400206964206f64696f2069642c2074656d70757320636f6e76616c6c6973207200697375732e2043726173206575206661756369627573206c696265726f2e200050656c6c656e74657371756520696163756c697320766573746962756c756d0020646f6c6f72206964206566666963697475722e2046757363652061206e75006e6320717569732075726e61206469676e697373696d20646170696275732e002050726f696e2076656c20696163756c69732073656d2c20617420636f6e7600616c6c6973206475692e20496e2069642066656c69732074656c6c75732e2000446f6e6563207068617265747261206d6f6c657374696520617263752c206100206d616c6573756164612065737420677261766964612069642e0a0a517569007371756520616c6971756574206c6967756c61207574206f72636920706f7300756572652c207365642074696e636964756e74206d61676e6120756c74726900636965732e204d616563656e61732073697420616d657420756c6c616d636f0072706572207475727069732e20536564206e6563206d6f6c657374696520710075616d2e20566976616d7573206d617474697320636f6e64696d656e74756d00206f7263692c206e6f6e206375727375732066656c69732074656d707573200065752e2053656420656765742072697375732075726e612e20566976616d750073206f726e61726520756c6c616d636f72706572206172637520616320616c0069717565742e205072616573656e74206d616c6573756164612070756c7669006e6172206c65637475732c2073697420616d65742064696374756d20726973007573206d616c6573756164612061742e204e756c6c612061206d616c65737500616461206c65637475732c2065676573746173206d616c657375616461206600656c69732e20496e20696420696e74657264756d206e756e632e20496e74650067657220666163696c69736973206469676e697373696d20616e74652071750069732070686172657472612e0a0a446f6e65632070656c6c656e7465737175006520656e696d20766974616520616e746520756c7472696365732c2061742000657569736d6f64206d617373612066696e696275732e20517569737175652000636f6e67756520756c7472696369657320706f72747469746f722e204375720061626974757220756c7472696369657320626c616e64697420637572737573002e204675736365206567657420647569206375727375732c2070686172657400726120617263752076656c2c20706c6163657261742070757275732e204372006173206e6563206d6175726973206c656f2e204e616d207072657469756d20007072657469756d20766f6c75747061742e2050686173656c6c7573206e65710075652074656c6c75732c206672696e67696c6c612073697420616d65742066006163696c6973697320717569732c20616363756d73616e207363656c65726900737175652073656d2e204e756e632076697461652066656c69732073656420006d6173736120756c747269636965732064617069627573206e6f6e2065752000656e696d2e20496e20706f72747469746f722074656d706f72206e69736c2c00206567657420666163696c697369732075726e612066696e69627573207669007461652e205365642070656c6c656e746573717565206e656320747572706900732075742073656d7065722e205072616573656e74206566666963697475720020656c656966656e64206f64696f2e0a0a4e756c6c6120617563746f722063006f6e64696d656e74756d206e756c6c612e204d616563656e6173206d616c65007375616461206d61757269732061206c6967756c6120756c7472696365732000636f6d6d6f646f2065742076656c206469616d2e2053757370656e64697373006520696e74657264756d2074696e636964756e74206c6967756c612c20612000626962656e64756d206d6920696163756c697320612e20536564206d616c65007375616461206d657475732076656c206c696265726f206469676e69737369006d2c2073697420616d657420636f6e677565207175616d2074696e63696475006e742e204375726162697475722066696e696275732074696e636964756e74002073616769747469732e20517569737175652073617069656e20656e696d2c0020736f64616c6573206163206469616d20612c206469676e697373696d206c006163696e69612074656c6c75732e20446f6e65632065666669636974757220006c616375732072686f6e637573206672696e67696c6c6120636f6d6d6f646f002e20496e20696420656c69742076656c206c6f72656d20736167697474697300206f726e6172652e204372617320757420646f6c6f72206c6967756c612e200053656420656c656966656e64206c6563747573207661726975732066696e69006275732072757472756d2e204675736365206e65632061756775652061206a007573746f207661726975732074656d706f7220736564207669746165206c6f0072656d2e204d6175726973206174206c696265726f20696e2065737420637500727375732064696374756d2075742076697461652065726f732e205068617300656c6c75732072757472756d2c206c656374757320766974616520696e7465007264756d20626c616e6469742c206c6f72656d2075726e61207669766572720061206d617373612c2071756973207363656c657269737175652066656c697300206c6563747573206574206f64696f2e204d617572697320666163696c6973006973206c656f207475727069732c20696d70657264696574206665756769610074206475692074656d706f722073697420616d65742e0a0a4d616563656e6100732061206c656f2061756775652e20437572616269747572206e6f6e2069700073756d2073697420616d657420656c6974206c616f726565742076656e656e00617469732065676574206e6f6e206d61676e612e204375726162697475722000616c697175616d20696163756c697320706f72747469746f722e2053656420006163206c6f72656d206120646f6c6f7220616c6971756574206c7563747573002e2050726f696e206c6163696e696120697073756d20616e74652c207369740020616d657420696d70657264696574206c6563747573206469676e69737369006d20656765742e20566573746962756c756d20656666696369747572207369007420616d65742073656d207175697320736f64616c65732e20566976616d7500732070756c76696e6172207068617265747261206e69736c2076697461652000616363756d73616e2e204475697320696e74657264756d20636f6e67756520007661726975732e20446f6e65632061207361676974746973206e6973692c20007175697320656c656d656e74756d206475692e20536564206c756374757320006c616f72656574206c656f206567657420756c7472696365732e0a0a446f6e006563206120617567756520656765737461732c2076756c70757461746520650073742076656c2c206c616f72656574206c616375732e20416c697175616d2000646f6c6f7220646f6c6f722c20706c61636572617420696e2065676573746100732073697420616d65742c20616c69717565742061206f7263692e20496e200076756c70757461746520626c616e64697420656c69742c2068656e6472657200697420636f6d6d6f646f2075726e6120626962656e64756d2065752e2045740069616d20617567756520616e74652c206d6f6c65737469652071756973206f0064696f2065752c2074656d70757320636f6d6d6f646f206e6962682e20557400206d6174746973206c6163696e69612073617069656e2075742064617069620075732e20457469616d20636f6e736571756174206e6f6e206f64696f207175006973206375727375732e204e756e6320616c697175657420626962656e6475006d20646f6c6f722065752073656d7065722e20566976616d7573206163206d00692073697420616d65742061726375206c6163696e69612072757472756d200073697420616d65742061206e756c6c612e2050686173656c6c75732065726100742072697375732c206c75637475732065676574206c6f72656d207669746100652c206d616c65737561646120626962656e64756d206d657475732e204e61006d206964206d617474697320656e696d2c206665756769617420736167697400746973206d657475732e2050686173656c6c7573206c7563747573207475720070697320657261742c20657420766172697573206d61676e612072686f6e630075732069642e0a0a4372617320766172697573207361676974746973206f6400696f20757420677261766964612e20536564206f726e61726520706f727461002076756c7075746174652e20496e746567657220706f7375657265206172630075206c6f72656d2c206964207363656c657269737175652073656d206566660069636974757220612e205365642076656c20617563746f7220697073756d2e002050656c6c656e7465737175652069642065726f73206574206c6f72656d2000616363756d73616e20616363756d73616e206567657420717569732065726f00732e204e756e632063757273757320636f6e64696d656e74756d206d692c20006e65632066617563696275732070757275732070756c76696e6172207068610072657472612e205365642073656420736f64616c6573206e756e632e204675007363652070756c76696e617220756c747269636573206d692c206964207275007472756d206d69206672696e67696c6c612061632e2053656420697073756d00207175616d2c20756c74726963696573207669746165206c6163696e6961200076697461652c206665726d656e74756d206e6f6e206d61757269732e20507200616573656e74206461706962757320756c6c616d636f72706572206c696775006c612c206567657420756c6c616d636f727065722073656d2064617069627500732065752e2046757363652073697420616d657420766573746962756c756d00206c616375732e205072616573656e74207365642074726973746971756520006c616375732c2076656c2070756c76696e6172206573742e0a0a467573636500206e6563206e6571756520646f6c6f722e20566573746962756c756d20616c00697175616d206c6967756c612075742064696374756d2073656d7065722e2000457469616d206d616c657375616461206d65747573206567657420656c69740020636f6e64696d656e74756d20636f6e7365717561742e2053757370656e64006973736520736167697474697320656e696d207175616d2c20696e20756c7400726963696573206c656f206461706962757320717569732e2050656c6c656e007465737175652063757273757320766172697573206e6973692c2076656c2000736167697474697320656c6974206d6178696d7573206e6f6e2e205375737000656e646973736520746f72746f72206f64696f2c207068617265747261207600656c206475692061632c20656c656d656e74756d2076756c707574617465200074656c6c75732e20416c697175616d20696420666163696c69736973206578002e2044756973206e6563206672696e67696c6c61206e69736c2e2046757363006520736564206672696e67696c6c612065782e204675736365207574206d610075726973206574207175616d207669766572726120696e74657264756d2061002061742065726f732e20416c697175616d20616363756d73616e2065726174002075742074656c6c7573206469676e697373696d20696163756c6973207365006420657420746f72746f722e2050726f696e20736564206175677565207369007420616d6574206d657475732072757472756d206772617669646120696e200076656c206e69736c2e20496e746567657220706f73756572652061726375200069642065726f73206665726d656e74756d2074656d706f722e0a0a55742075006c74726963657320697073756d206f7263692e204d61757269732061756374006f72206d6178696d75732072697375732c20717569732066696e6962757320006e756c6c612065666669636974757220696e2e204e616d20756c74726963650073206e6571756520616320657820666163696c697369732c20696e2074656d00707573206c6967756c61206c6f626f727469732e204372617320706861726500747261206c6f72656d20696e74657264756d206e657175652068656e6472650072697420617563746f722e2050686173656c6c7573206e6f6e207275747275006d206c696265726f2c20617420736f64616c657320697073756d2e20496e2000756c6c616d636f72706572206578206c65637475732c2073697420616d657400207068617265747261206e756c6c6120636f6e76616c6c69732072686f6e630075732e2053757370656e6469737365206e6f6e20656c6974206c6f72656d2e00205072616573656e7420756c6c616d636f72706572206e756c6c612076656c0020637572737573206469676e697373696d2e2041656e65616e20736f64616c00657320746f72746f72206f64696f2c20617420656c656966656e64206c696700756c61206469676e697373696d2073697420616d65742e2044756973207665006c20736f6c6c696369747564696e2074656c6c75732e204d616563656e61730020717569732070656c6c656e746573717565206475692e204d6175726973200071756973207361676974746973206e756e632e20447569732072757472756d00206d616c657375616461206c6967756c612065752070756c76696e61722e0a000a41656e65616e206772617669646120706f727461207175616d20736564200070656c6c656e7465737175652e2050656c6c656e7465737175652076657374006962756c756d20626962656e64756d207472697374697175652e2056657374006962756c756d20696e206572617420656e696d2e2050726f696e2065726f7300206f7263692c2072686f6e63757320616320616c697175616d206e6f6e2c20007072657469756d2061206f7263692e20566573746962756c756d2074656d700075732c2076656c6974206d616c657375616461206c6163696e69612064617000696275732c2075726e61206c6f72656d206672696e67696c6c61206d61737300612c20696e206d6178696d757320656e696d20656e696d206574206e69736c002e204e616d207669766572726120636f6e64696d656e74756d206c6967756c006120696e20696d706572646965742e20536564207175697320656c656d656e0074756d206a7573746f2e204e756c6c61206f726e61726520636f6e73656374006574757220656e696d2061742074696e636964756e742e20457469616d207300697420616d6574206c616f7265657420697073756d2e0a0a457469616d2066006163696c697369732065737420706f72747469746f722c2066696e69627573002066656c69732065742c207375736369706974206c65637475732e2041656e0065616e20706c616365726174206567657374617320616c69717565742e204d00617572697320657420656e696d206c65637475732e204d616563656e6173200070656c6c656e746573717565206d6f6c6c6973206d692064696374756d2063006f6e6775652e205072616573656e742076656c2066656c6973206c616f72650065742c20636f6e7365637465747572206e756c6c61206e6f6e2c2066657567006961742074656c6c75732e2053656420616c697175616d2076656c697420730065642073656d20706c616365726174207361676974746973206174207369740020616d6574206c696265726f2e2051756973717565206d6174746973207275007472756d20656e696d2c2073656420656c656d656e74756d2076656c69742e002050686173656c6c7573206e6f6e206c616f72656574206f64696f2e204375007261626974757220656c656966656e64206f64696f2073697420616d65742000756c7472696369657320756c6c616d636f727065722e20496e20656765742000726973757320756c7472696365732c207665686963756c61206c65637475730020696e2c20616c6971756574207475727069732e0a0a50686173656c6c757300206e6f6e206d6574757320617563746f722c20636f6e736563746574757220006e69736c2061742c207361676974746973207175616d2e205072616573656e007420746f72746f722074656c6c75732c2074656d706f72206e6f6e207068610072657472612069642c207661726975732061742070757275732e2053656420006120636f6e64696d656e74756d206e6962682e205072616573656e74206c65006f206e756e632c20756c6c616d636f72706572207665686963756c612076650073746962756c756d2074696e636964756e742c206665726d656e74756d2075007420616e74652e20496e206f726e617265206c61637573206e6f6e206c69620065726f20736f6c6c696369747564696e2c2065752066657567696174206e75006c6c6120626c616e6469742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e204e756e632065676574206e756e63207369007420616d6574206d617572697320706861726574726120766573746962756c00756d20657520766974616520656e696d2e20496e20766f6c7574706174207300617069656e2065676574206c65637475732074696e636964756e7420766f6c0075747061742e20416c697175616d2073656420766976657272612075726e61002e204675736365206c6563747573206d657475732c20756c747269636573200076656c20657569736d6f642065742c20616c69717565742073656420746f7200746f722e2050686173656c6c757320626c616e6469742070656c6c656e7465007371756520756c747269636965732e204f72636920766172697573206e6174006f7175652070656e617469627573206574206d61676e697320646973207061007274757269656e74206d6f6e7465732c206e6173636574757220726964696300756c7573206d75732e204e756c6c61206469676e697373696d2c2076656c690074207175697320666163696c697369732072686f6e6375732c206e756c6c61002066656c697320747269737469717565206d61757269732c20657520636f6d006d6f646f206c656f206f726369206174206e6973692e20467573636520636f006e736563746574757220746f72746f7220657420706861726574726120766500686963756c612e204e756e63207665686963756c612c206d65747573207369007420616d657420657569736d6f642064696374756d2c20646f6c6f72206d650074757320616363756d73616e206573742c20696e20696163756c6973206d6100737361206c696265726f206e6f6e206c65637475732e0a0a496e2061742063006f6e736571756174207475727069732e204675736365206d69206e756c6c61002c206672696e67696c6c61207574207661726975732076697461652c2074720069737469717565206174206e6973692e204e756c6c61206964206d69206572006f732e204d6f726269206469616d20616e74652c2076656e656e617469732000696e2073757363697069742076656c2c2074696e636964756e7420766974610065206f64696f2e204d61757269732068656e647265726974206e6f6e20617200637520696420636f6e73656374657475722e205072616573656e7420616c69007175616d206e756e632076656c206d61676e61207665686963756c6120616c0069717565742e204e616d20636f6e7365637465747572206e756c6c612071750069732075726e6120696163756c697320756c6c616d636f727065722070656c006c656e74657371756520657420617263752e20496e7465676572206163206c00616f726565742076656c69742e2050656c6c656e7465737175652075742061006e7465207175616d2e20566976616d75732061206d6174746973206c656f2c002069642074656d707573206d692e204675736365207363656c657269737175006520646170696275732070757275732073656420616c697175616d2e0a0a4600757363652076656c20656e696d2070656c6c656e7465737175652c20656c65006d656e74756d206469616d2065752c2076756c7075746174652076656c6974002e204e756e63206c696265726f2074656c6c75732c20656c656d656e74756d00206964207175616d2073697420616d65742c20617563746f7220706f7274740069746f722070757275732e204c6f72656d20697073756d20646f6c6f72207300697420616d65742c20636f6e73656374657475722061646970697363696e670020656c69742e20457469616d206d6f6c6573746965206e756e6320736f6461006c657320636f6d6d6f646f20696163756c69732e204e616d20717569732065006c69742061206c696265726f20616c697175657420636f6e64696d656e7475006d207669746165206163206d692e20457469616d20756c7472696365732075006c74726963696573206d61676e6120766974616520706f73756572652e2056006976616d757320757420657569736d6f642076656c69742e20437261732073006f64616c6573206c6163696e6961206d61676e612c2071756973206665726d00656e74756d20657261742064696374756d2073697420616d65742e204675730063652074696e636964756e74206c696265726f206574206e657175652074720069737469717565206375727375732e204372617320616320646f6c6f72206c006967756c612e2050726f696e206567657420696d70657264696574206d6175007269732e20416c697175616d206469616d20646f6c6f722c20666163696c69007369732076656c206e69626820656765742c20636f6e7365717561742076650073746962756c756d206c696265726f2e204375726162697475722076756c700075746174652066617563696275732061756775652065676574207375736369007069742e204e756e632074696e636964756e742074656c6c7573207574206d006f6c6c6973206d6178696d75732e2050726f696e20766573746962756c756d00206c616f726565742073617069656e2c206e6563206672696e67696c6c6120006e6973692074656d70757320696e2e0a0a566573746962756c756d20616e74006520697073756d207072696d697320696e206661756369627573206f72636900206c756374757320657420756c74726963657320706f73756572652063756200696c69612063757261653b20566573746962756c756d20666163696c69736900732c20707572757320657520706f7375657265206c6163696e69612c2070750072757320657374206c616f72656574206e69736c2c206e656320766f6c75740070617420616e746520657261742076697665727261206e756c6c612e204e75006c6c6120666163696c6973692e20496e206e656320706f727461206d65747500732e20446f6e656320666163696c6973697320646f6c6f722073697420616d006574206f64696f20616c697175616d2c206567657420706f72747469746f720020697073756d2076756c7075746174652e204d61757269732076656e656e6100746973206d61676e61206575206578206f726e6172652c20696420736f6c6c00696369747564696e20616e746520636f6e6775652e2050656c6c656e746573007175652075726e61206f7263692c20756c747269636965732076697461652000706f73756572652075742c20756c74726963657320717569732074656c6c7500732e20536564206e6f6e20656c656966656e64206d692c20657520747269730074697175652073656d2e2041656e65616e2074656d707573206d61737361200065752067726176696461206d616c6573756164612e2050726f696e206e6563002076756c707574617465206e756e632e204e756e63206d616c657375616461002c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c207175616d00206e69736c2074696e636964756e74206c616375732c2073697420616d6574002066657567696174206c6f72656d206e756c6c61206e656320697073756d2e000a0a4d617572697320736564206d6574757320617420646f6c6f7220636f6e0064696d656e74756d20636f6e73657175617420616363756d73616e2061632000646f6c6f722e2053757370656e6469737365206c756374757320626c616e640069742065782c20617420656c656d656e74756d206d692064696374756d206500752e20416c697175616d2074696e636964756e7420656c656d656e74756d20006d61676e6120766974616520616c69717565742e20446f6e656320696e206f00726e617265206d61757269732e20496e206c6163696e69612073697420616d006574206e756c6c61207669746165206665726d656e74756d2e20446f6e656300206e6563206665726d656e74756d2075726e612c206174206672696e67696c006c612076656c69742e20416c697175616d206572617420766f6c7574706174002e20566573746962756c756d2073656420747572706973206e657175652e2000496e74656765722076656c207375736369706974207475727069732e2053650064206e656320636f6e64696d656e74756d206e657175652e2041656e65616e0020636f6e76616c6c697320766f6c757470617420706f73756572652e205068006173656c6c7573206c6f626f72746973206c6967756c612076656c2072686f006e637573206c616f726565742e2041656e65616e2065676574206573742069006163756c69732c2076656e656e61746973206f64696f2075742c206469637400756d2074656c6c75732e2044756973207669746165206572617420766974610065206e69736920637572737573206d61747469732e204e756e6320626c616e006469742070656c6c656e7465737175652072697375732c206c7563747573200074696e636964756e74206d61676e6120706f7274612061632e204372617320007669766572726120616c697175657420706f73756572652e0a0a4c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e204e756c6c616d20657520006c61637573206c65637475732e20467573636520612074656c6c7573206c61006375732e20496e74657264756d206574206d616c6573756164612066616d65007320616320616e746520697073756d207072696d697320696e206661756369006275732e204e756c6c616d2070656c6c656e746573717565206c6f72656d20007175616d2c2076656c2074656d706f7220746f72746f72207072657469756d002076697461652e20566573746962756c756d20736f6c6c696369747564696e002071756973206d692061632072757472756d2e20496e746567657220646967006e697373696d206c696265726f20616c697175616d206672696e67696c6c610020616363756d73616e2e20446f6e656320666163696c697369732064756920006e6f6e206c656f2074656d707573206c75637475732e20536564206d616c65007375616461207665686963756c6120756c7472696365732e20557420616e74006520616e74652c20616c69717565742073697420616d657420736f6c6c69630069747564696e2066696e696275732c20626c616e64697420756c747269636500732061756775652e20536564206e6563206e69736920717569732076656c69007420636f6e64696d656e74756d20677261766964612e2041656e65616e2061006c697175657420657569736d6f64206475692c207574207665686963756c610020697073756d2066617563696275732065752e0a0a46757363652076656c6900742073617069656e2c2073656d706572206574206469676e697373696d207600656c2c20696163756c69732069642076656c69742e205072616573656e7420006e6f6e206e69736c206567657420616e746520736f6c6c696369747564696e002072757472756d206e6563206e6563206573742e205365642076697665727200612066656c6973206e69736c2c206e65632065676573746173206573742073006f64616c65732065742e204e616d20636f6e67756520617567756520737573006369706974206578206c616f7265657420706f72747469746f722e2046757300636520626962656e64756d20697073756d206e657175652c206163206d617800696d757320646f6c6f72206672696e67696c6c612075742e2043757261626900747572206120636f6e736571756174206c6967756c612e204e616d20766f6c00757470617420636f6e736571756174206c696265726f20657520626c616e640069742e204e616d20696e74657264756d2074656c6c7573207574206f64696f0020636f6e736571756174206f726e6172652e204e756c6c6120666163696c690073692e204d616563656e6173206c756374757320616e74652065676574206f0064696f20636f6e64696d656e74756d206672696e67696c6c612e20496e7465006765722065676574206d61676e612073697420616d6574206d61676e6120660065726d656e74756d20677261766964612e0a0a4d6f72626920736f64616c6500732076656c6974206e6973692c2061206d6178696d75732064756920656c65006966656e64206e6f6e2e204d61757269732070757275732065726f732c2061007563746f722075742066696e6962757320656765742c20756c7472696369650073207175697320657261742e2041656e65616e207361676974746973207475007270697320696e206f72636920706f7274612c20696420706861726574726100206578206566666963697475722e20467573636520617420636f6e6775652000657261742e20566573746962756c756d206c756374757320656e696d20666500726d656e74756d206c656f2064696374756d207472697374697175652e2044006f6e6563206e65632066656c69732073697420616d65742064756920706f7200747469746f7220656c656d656e74756d2e205072616573656e74206c616f72006565742c2066656c6973207669746165207472697374697175652062696265006e64756d2c206c6f72656d206e6962682070656c6c656e746573717565207300617069656e2c20736564207363656c65726973717565206c6f72656d206e690062682076656c2073656d2e204675736365206e6f6e2076656e656e6174697300206e657175652e20446f6e6563207363656c65726973717565206469676e69007373696d20726973757320696420706f7274612e0a0a53757370656e6469730073652072686f6e637573206c696265726f2076656c2066656c6973206c616300696e69612074656d7075732e2046757363652064696374756d206e657175650020736564206e69626820677261766964612c20626962656e64756d206c6f62006f727469732075726e6120616c69717565742e204375726162697475722065007420657569736d6f6420656e696d2e2050656c6c656e74657371756520696d0070657264696574206175677565206c6f72656d2c2075742068656e64726572006974206e657175652073656d7065722076656c2e2050686173656c6c75732000636f6d6d6f646f20647569206e6f6e206c6f626f727469732076656e656e61007469732e20437261732076697665727261207361676974746973206e69736c002c207669746165206c6f626f72746973206d6574757320756c747269636965007320696e2e20416c697175616d207669746165206469676e697373696d207000757275732c206661756369627573207072657469756d2072697375732e20500072616573656e74206163206d61676e6120617563746f722c206d616c65737500616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f20647569002e205072616573656e7420617420746f72746f7220697073756d2e204675730063652074656d7075732c2066656c697320696e20616363756d73616e206661007563696275732c206c696265726f20656e696d206d6f6c6c697320656e696d002c20696420656c656d656e74756d206d657475732070757275732061206d6100676e612e204375726162697475722073697420616d657420636f6e64696d65006e74756d2075726e612e20496e2075726e612066656c69732c20636f6e6469006d656e74756d207669746165206e756c6c612065752c20706f73756572652000636f6e64696d656e74756d206e6962682e2050656c6c656e746573717565200067726176696461206f64696f20656c69742c2076656c20616c69717565742000726973757320636f6e7365637465747572206e6f6e2e204d616563656e6173002074656d706f722c206d61676e6120616320706861726574726120616c69710075616d2c20616e7465206c6967756c612066657567696174207175616d2c20006575206d6174746973206e756c6c61206e69736c206e6f6e206d617373612e000a0a496e746567657220756c74726963657320736f64616c6573206a757374006f2e20416c697175616d20626962656e64756d207068617265747261207269007375732c2061632076697665727261206e69736920616363756d73616e207500742e20457469616d2067726176696461206665726d656e74756d206d692069006e207363656c657269737175652e20467573636520696e74657264756d2c20006c656f207175697320626962656e64756d206d61747469732c206a7573746f00206d65747573206672696e67696c6c6120656c69742c20616320706c6163650072617420747572706973206469616d206661756369627573206e69736c2e2000457469616d206c616f72656574206c696265726f206c6f72656d2c2076656c002074656d707573206f64696f206469676e697373696d2065742e204e756c6c006120666163696c6973692e20496e74656765722064617069627573206d6f6c00657374696520656e696d2c2061632074696e636964756e742073617069656e0020636f6e76616c6c69732075742e2043726173206d6f6c6c697320636f6e73006563746574757220666163696c697369732e2043757261626974757220747200697374697175652c20726973757320706f72747469746f722076756c7075740061746520756c7472696365732c206c6f72656d2073656d206469676e69737300696d206e657175652c20657520706f72747469746f72206d61676e61206e69007369207669746165207475727069732e20446f6e656320636f6e7365717561007420657374206575206469616d20666575676961742c2076656c2076657374006962756c756d206469616d206c6163696e69612e20457469616d20756c74720069636573206c65637475732073697420616d6574206f726369207361676974007469732c2076656c20616c69717565742065726f73206c6163696e69612e2000496e74656765722070686172657472612c206172637520657520626c616e640069742064696374756d2c2076656c6974206f64696f20636f6d6d6f646f206f0064696f2c20757420636f6e7365717561742074656c6c7573207175616d206e006563206a7573746f2e2053656420656666696369747572207365642066656c0069732061206d6178696d75732e204e756c6c616d20656c656966656e6420730063656c65726973717565206c6f72656d2c20696e206d6f6c65737469652074006f72746f72206d616c6573756164612076697461652e20457469616d20636f006e64696d656e74756d2c20617567756520657420696163756c69732064617000696275732c206469616d206172637520706f72747469746f722075726e612c0020616320636f6e76616c6c6973206d61676e61206175677565207365642064006f6c6f722e2050686173656c6c75732076656c206f64696f2070757275732e000a0a457469616d20656c656966656e64206469676e697373696d206e697369002066657567696174206c6163696e69612e2051756973717565206574206c6100637573207669746165206172637520706f73756572652074656d7075732e20004e616d20636f6e73657175617420657820696e206172637520756c747269630065732c2076656c2076656e656e61746973206e756e63206672696e67696c6c00612e20496e7465676572206575206a7573746f206964206e6962682062696200656e64756d2072757472756d2e20457469616d207363656c657269737175650020747572706973206c656f2c2061632074696e636964756e74207175616d200064696374756d2065752e204475697320636f6e73657175617420636f6e67750065206a7573746f2c206469676e697373696d20626962656e64756d207361700069656e20656c656966656e6420656765742e204d616563656e617320646967006e697373696d206d6173736120757420626c616e646974206c6163696e6961002e2050726f696e2066657567696174206e756e6320736564206c6f72656d2000616c697175616d2070756c76696e61722e20416c697175616d207661726975007320616e7465207365642073617069656e206469676e697373696d2c206574002064696374756d2073617069656e20696e74657264756d2e2041656e65616e00206574206c656f2061756775652e2053656420756c74726963696573207469006e636964756e742065726f732c2073656420706f727461206d6175726973200066696e69627573206e65632e0a0a53757370656e6469737365206e6563206c006f72656d206c696265726f2e204d616563656e6173206e6563206c6967756c0061206e6f6e20657820626c616e6469742073757363697069742e2050656c6c00656e746573717565206c616375732072697375732c206f726e6172652061200063757273757320656765742c2074656d706f72207669746165206e69736c2e00204375726162697475722072757472756d20766f6c757470617420657820610020706c6163657261742e204d6f726269206d616c6573756164612074656c6c0075732065752061726375206d6f6c6573746965206d61747469732e2045746900616d207363656c6572697371756520636f6d6d6f646f2061756775652c20710075697320636f6d6d6f646f2076656c697420656c656966656e642069642e20004d617572697320617563746f72207669746165206d657475732071756973200076656e656e617469732e2050726f696e20626962656e64756d206661756369006275732074656c6c75732c20736f6c6c696369747564696e20696d7065726400696574206e69736920766f6c75747061742076656c2e20446f6e656320666100756369627573206d6f6c6573746965207175616d2c206574206672696e6769006c6c61206469616d2e0a0a446f6e656320696d706572646965742065726174002061206e6973692066696e696275732c207574206469676e697373696d206e0069736920666163696c697369732e204e756c6c6120696163756c697320757400207175616d20616c69717565742068656e6472657269742e2050656c6c656e0074657371756520757420656c656966656e64206e657175652e20446f6e656300206575206c6563747573206574206c656f20696e74657264756d2074696e63006964756e742e204e616d20756c74726963657320656c6974206e6973692c200065676574206d6178696d7573207269737573206672696e67696c6c612071750069732e205365642076656c206e69736920617420747572706973207275747200756d2074696e636964756e742e204e756c6c6120636f6e677565206572617400206c6f72656d2c207365642066696e69627573206c6163757320616c6971750065742065742e2050656c6c656e746573717565207574207175616d20696e20006f72636920736f64616c65732074656d706f72207574206575206e65717565002e2051756973717565206d616c65737561646120736167697474697320726900737573206e6f6e2076656e656e617469732e204e756e632066696e696275730020756c74726963696573206e69626820706f737565726520636f6e7365637400657475722e20496e7465676572206e6563206c6967756c61206e756e632e20005574206e6563206d617373612076656c206c6967756c612074726973746971007565206665726d656e74756d20696e2065752074656c6c75732e0a0a4d61750072697320736f64616c6573206469616d2069642066656c6973206c616f72650065742c207175697320736f6c6c696369747564696e2074757270697320756c006c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207361706965006e20657420756c6c616d636f7270657220736f6c6c696369747564696e2c200073656d206c6563747573206672696e67696c6c61207175616d2c2061742070006c6163657261742065782065726f732075742073617069656e2e20496e206f0064696f206e6973692c207661726975732073697420616d657420646f6c6f72002076656c2c20756c74726963657320706c6163657261742074656c6c75732e0020557420646f6c6f72206d692c2073656d706572206e6f6e206d6178696d7500732076656c2c2070756c76696e61722061742066656c69732e20457469616d00207269737573206e756c6c612c20656666696369747572206174206c6f7265006d206c6f626f727469732c20706f72746120656c656966656e64206c6f7265006d2e20566976616d757320617420636f6e64696d656e74756d2065726f732e00204475697320657420696163756c6973206d692c20766974616520636f6e73006563746574757220617263752e20496e2065726f73206d61757269732c207400656d706f7220717569732070656c6c656e74657371756520696e2c207068610072657472612076656c206c65637475732e204d6f72626920706f7274612c20006c696265726f20617420736f64616c657320656c656966656e642c206c6163007573206c6f72656d20626962656e64756d206f64696f2c206e656320706f7200747469746f72206c65637475732074656c6c75732076656c2073656d2e204e00756c6c61207363656c657269737175652065742075726e61206575206469630074756d2e205574206f726e617265206d61747469732074656d7075732e2055007420626c616e646974206f64696f2061206d61737361206d6178696d75732c00206e6563206d616c657375616461206c696265726f2066617563696275732e000a0a5574206d6178696d757320756c7472696369657320747269737469717500652e20457469616d206163206469616d206174206e756c6c61206c75637475007320756c6c616d636f7270657220696e20657520656c69742e2053656420650074206d617373612076656c206e6962682072686f6e6375732074696e63696400756e742e2053656420636f6e677565207363656c657269737175652074656d007075732e205175697371756520766f6c7574706174206d61737361206c6f7200656d2c2076656c2072757472756d20656e696d20636f6e64696d656e74756d00206e65632e20416c697175616d2074757270697320646f6c6f722c2065666600696369747572207365642064696374756d20616c697175616d2c206d617474006973206964206c616375732e204d616563656e61732066657567696174206e006973692071756973206d6178696d757320636f6e76616c6c69732e0a0a536500642074696e636964756e74207574206a7573746f2076697461652066696e69006275732e204d617572697320626c616e6469742065726174206e756e632c2000766974616520616363756d73616e2061726375206672696e67696c6c612071007569732e2053656420756c7472696365732074696e636964756e7420646961006d2073697420616d657420626962656e64756d2e20416c697175616d20666100756369627573206c61637573206567657420766573746962756c756d206865006e6472657269742e204e756c6c616d20766172697573206e6563206e657175006520657420656c656966656e642e2053656420766974616520747572706973002065742074757270697320656c656966656e642074656d706f722e2050656c006c656e74657371756520766573746962756c756d206172637520612065756900736d6f64206d61747469732e205072616573656e74206e6563207269737573002073697420616d6574207475727069732064617069627573207375736369700069742e20446f6e656320626962656e64756d2074656d707573206d6920696e002072757472756d2e20566573746962756c756d206d61737361206d65747573002c20696d7065726469657420657520736f64616c657320717569732c2061630063756d73616e2076656e656e6174697320617263752e20496e206e6f6e2070006f7375657265206c696265726f2c2076656c2073757363697069742075726e00612e0a0a53757370656e64697373652073617069656e206d657475732c207000756c76696e6172206e6563206c61637573206d6f6c65737469652c20656765007374617320766573746962756c756d2065782e20566573746962756c756d200074656d706f7220616e7465206e6563206e756e632074696e636964756e742000666163696c697369732e20457469616d20626962656e64756d2c20616e74650020696e207072657469756d20636f6e6775652c206d61737361206c6f72656d00206c6f626f727469732065782c206e65632072686f6e63757320746f72746f0072206d61757269732061632070757275732e20496e2072686f6e637573207600756c707574617465206d61676e6120617420657569736d6f642e204d61656300656e61732076656c206c616f72656574206a7573746f2c20696e206c616369006e6961206f64696f2e2050656c6c656e74657371756520616c697175657420006c616375732061632076656e656e61746973206c75637475732e20496e7465007264756d206574206d616c6573756164612066616d657320616320616e74650020697073756d207072696d697320696e2066617563696275732e205175697300717565206c6163696e6961207072657469756d2075726e6120736f64616c650073206d6178696d75732e20496e7465676572206469676e697373696d20707200657469756d206d6f6c6c69732e20536564206c656374757320656c69742c2000616c697175616d2061206469616d2069642c20646170696275732076617269007573206c6967756c612e204d6f726269206c6163696e696120736f64616c650073206c6f72656d2c20696420616c697175616d206e69736c20706f73756572006520656765742e0a0a41656e65616e2070686172657472612c2074656c6c750073206163206469676e697373696d20656765737461732c206175677565206500737420656c656d656e74756d2066656c69732c2076656c206c6f626f7274690073206e69736920656e696d20636f6d6d6f646f207475727069732e205375730070656e6469737365206e756e63207475727069732c206c6f626f727469732000736564206d61757269732069642c20706f72746120736f6c6c69636974756400696e206a7573746f2e2050726f696e20656c656d656e74756d206d6175726900732073697420616d6574206f72636920696e74657264756d2074696e63696400756e742e2053656420706f7274612075726e612066656c69732c206964207600656e656e617469732073617069656e207363656c657269737175652065742e0020566976616d7573206461706962757320706f72747469746f72206a757374006f2c206964206d6f6c6573746965206e69736c20696163756c69732074696e00636964756e742e20496e206d6174746973206d61757269732073697420616d00657420636f6e76616c6c697320756c747269636965732e20446f6e65632063006f6d6d6f646f2065676573746173206572617420766974616520617563746f00722e204e756c6c616d2066657567696174206d61676e61206573742c2065740020706f72747469746f72206573742074656d706f722061632e20416c69717500616d20766172697573206d69206575206c61637573206d61747469732c207300697420616d6574207375736369706974206e69736920736f64616c65732e200041656e65616e2065742068656e6472657269742076656c69742c20696e2070006c616365726174206e6973692e20446f6e656320717569732076656c697420006d692e20457469616d20706c61636572617420657261742076656c2065726f0073206672696e67696c6c6120636f6d6d6f646f2e0a0a50686173656c6c757300207669746165206475692066656c69732e205072616573656e7420707265740069756d206d6174746973206e657175652c2065676574206672696e67696c6c00612066656c69732074656d706f722061742e204372617320617563746f7220006e69736c206e65632073656d206c6f626f72746973206d61747469732e205000656c6c656e746573717565206d61747469732074696e636964756e74207465006d7075732e2050726f696e206c616f726565742073656d206120766f6c7574007061742072686f6e6375732e204d6f726269206575206d6175726973207369007420616d65742072697375732074696e636964756e74206f726e6172652e200041656e65616e20756c6c616d636f72706572206c61637573206e6f6e206e75006e6320696d706572646965742c20657420656c656966656e642074656c6c75007320706c6163657261742e2043726173206574206d6920696e206469616d20006567657374617320706c616365726174206e6f6e2073697420616d6574206c0065637475732e20416c697175616d20696163756c6973207075727573206c6f00626f727469732c207363656c657269737175652065726f7320656765742c200076617269757320646f6c6f722e2043757261626974757220737573636970690074206e6571756520736564206567657374617320636f6e7365717561742e2000496e2076656c20616c697175616d206d657475732c206c756374757320636f006d6d6f646f206e6962682e2053656420636f6e7365717561742070756c7669006e6172206d692c20736167697474697320616c69717565742065726f73206d006178696d75732076756c7075746174652e2055742065742074656d70757320006c616375732e0a0a53757370656e646973736520706f74656e74692e2044750069732076656c2076756c707574617465206d61757269732c20757420736f6c006c696369747564696e206d692e20446f6e65632076656c20616c697175616d00206c6967756c612c20656765742072686f6e6375732074656c6c75732e20500072616573656e74206e65632065726f732076697461652065726f732076756c0070757461746520617563746f722e204e756e632073757363697069742c206d00617572697320696420696e74657264756d20756c6c616d636f727065722c2000746f72746f72206a7573746f20646170696275732073617069656e2c20766900746165206c6163696e6961206c656f2075726e612076697665727261206e690062682e205175697371756520626962656e64756d20617563746f722065726f00732c206964206d6174746973206d617373612064696374756d20612e20557400206964206d69206e69736c2e20566573746962756c756d206575206c756374007573206c616375732e20446f6e65632061206d6178696d75732066656c6973002e0a0a446f6e65632073656d206e69736c2c20756c7472696365732061207400656c6c75732075742c2070656c6c656e74657371756520666163696c6973690073206e756c6c612e205365642065742073617069656e2075742065726f732000636f6e64696d656e74756d20706f72747469746f722e204675736365207369007420616d6574206d657475732065782e20496e20612065782073697420616d0065742074656c6c75732070756c76696e617220636f6e73657175617420612000696420656e696d2e204d616563656e617320756c6c616d636f727065722073006f64616c6573207475727069732c207175697320756c6c616d636f72706572002065726f7320636f6e7365717561742065742e20496e746567657220736f6400616c6573206573742073697420616d657420616e74652074656d7075732c2000696420616c69717565742066656c69732072757472756d2e204c6f72656d2000697073756d20646f6c6f722073697420616d65742c20636f6e7365637465740075722061646970697363696e6720656c69742e204d616563656e61732069640020747572706973207669746165206573742076656e656e6174697320656c65006d656e74756d2e0a0a446f6e656320696163756c697320677261766964612000636f6e73656374657475722e20457469616d20657569736d6f642065726f7300206567657420766573746962756c756d206672696e67696c6c612e20496e2000706f7274612c206572617420766974616520656c656d656e74756d2067726100766964612c20747572706973206c6f72656d206d6f6c6573746965206e696200682c20696420706861726574726120746f72746f72206d65747573206c616300696e6961207475727069732e204d6175726973207072657469756d2076617200697573207475727069732c2065742063757273757320657820766976657272006120717569732e20536564206d616c657375616461206c656f206574206d61007373612074656d707573206c6163696e69612e204e756e632073697420616d00657420656e696d2073656d2e20446f6e65632076656c206772617669646120007175616d2c2076656e656e61746973207665686963756c6120657261742e0a000a496e206e6f6e206c61637573206d616c6573756164612c206d6178696d750073206e696268206e65632c20636f6e73656374657475722076656c69742e20004e756c6c61206575206772617669646120746f72746f722e2050686173656c006c757320696e74657264756d206665726d656e74756d207661726975732e20004d6f726269207661726975732076656c697420696e206c6163757320736365006c65726973717565206d616c6573756164612e2050686173656c6c75732073007573636970697420616c697175616d2065726f7320696e20747269737469710075652e20566573746962756c756d2061632075726e61206e756e632e204d610075726973207072657469756d20746f72746f72206469616d2c206120667269006e67696c6c61206c65637475732074656d7075732061632e0a0a4d6f7262690020696d70657264696574206d6f6c6c697320646f6c6f722c206e65632065660066696369747572207175616d20616c697175657420612e20566976616d757300206c75637475732070757275732076656c206e69736c20657569736d6f642000706f72747469746f722061632076697461652074656c6c75732e2043726173002073757363697069742074726973746971756520707572757320757420736300656c657269737175652e2050656c6c656e7465737175652073697420616d65007420656c6974206964206c696265726f206665726d656e74756d20736f6461006c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c6120696e00207175616d207072657469756d2c20696420616c6971756574206e6962682000636f6e7365717561742e204e756c6c6120666163696c6973692e2041656e6500616e206f726369206c696265726f2c2068656e647265726974207574206c6f0072656d2076656c2c20706f72747469746f7220706f72747469746f72206c69006265726f2e20557420696420616363756d73616e206d617373612e20536564002073617069656e206c656f2c2074696e636964756e74207072657469756d200061756775652076697461652c207669766572726120766f6c7574706174207300617069656e2e204d6f726269206d6f6c6c6973206f7263692073656420756c0074726963657320636f6e64696d656e74756d2e204372617320616363756d7300616e20736167697474697320696d706572646965742e204e616d2074656d70006f7220766573746962756c756d207475727069732c20636f6e64696d656e7400756d2074656d706f72206f64696f20656c656d656e74756d2076656c2e2056006573746962756c756d20737573636970697420616e7465206120617263752000616363756d73616e2c2076656c20636f6e677565206d61757269732067726100766964612e0a0a50686173656c6c757320766f6c7574706174206d6175726900732065676574206c696265726f206c616f7265657420616c697175616d2e2000566573746962756c756d207269737573206e69736c2c2074656d7075732061007420766f6c75747061742076697461652c2074696e636964756e74207669740061652065726f732e20416c697175616d2076656e656e6174697320616e74650020626c616e64697420707572757320666575676961742c206120616c69717500616d20616e746520626962656e64756d2e2050726f696e20696e7465726475006d20697073756d206e6962682c2076656c20706f7274612066656c69732065007569736d6f642065742e20457469616d20717569732074656c6c757320646f006c6f722e2044756973206964206c616f72656574206f64696f2c20657420630075727375732072697375732e2053757370656e6469737365206c616f726565007420646f6c6f72206575206e756c6c6120666575676961742c20736564206600657567696174206e756c6c6120626c616e6469742e20416c697175616d2071007569732061726375207175697320617567756520756c7472696365732069610063756c69732e20446f6e65632069642065726f73206e6f6e206e6973692061006363756d73616e206f726e6172652076656c20757420657261742e205365640020636f6d6d6f646f206c756374757320616e746520717569732070756c7669006e61722e205072616573656e7420616c697175616d206d6f6c6c6973207075007275732072686f6e63757320636f6e7365717561742e2055742076697461650020636f6e6775652072697375732e20496e206d6f6c6c6973206120707572750073206964206c6163696e69612e0a0a467573636520616c697175616d206175006775652073697420616d6574206a7573746f2070656c6c656e746573717565002c20756c6c616d636f7270657220706f7274612064756920696163756c6973002e2050726f696e20656765737461732076756c707574617465206e69736c2c002076656c20637572737573206d6173736120706f72747469746f722061742e0020536564206e6f6e2074656c6c75732076656c206e756c6c6120626c616e6400697420666163696c697369732e204d616563656e6173206572617420656e69006d2c20736f64616c65732061206c6163696e69612076656c2c20616c697175006574207574206e756c6c612e20496e74656765722066656c69732061726375002c20736f64616c65732076656c2066617563696275732073697420616d6574002c20766573746962756c756d2065676574206c6f72656d2e204e756c6c61200076697665727261206f64696f206163206e756e63206c75637475732c2065750020706c6163657261742074656c6c757320616c697175616d2e204d6f72626900206e65632073656d20657520616e746520706f737565726520736f6c6c69630069747564696e2e204e756c6c6120616363756d73616e20636f6e7365637465007475722065737420766974616520756c747269636965732e20447569732066006163696c69736973207363656c65726973717565206d61757269732c206e6f006e20636f6e64696d656e74756d2064756920766f6c757470617420696e2e0a000a4d617572697320717569732066696e6962757320656e696d2e204e756e630020656765742065726f7320616c69717565742c206d6178696d7573206c6f7200656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e204d6f720062692065676574206e756e6320696420726973757320657569736d6f642062006c616e6469742076656c20612072697375732e204d6175726973206120736f0064616c65732074656c6c75732e2043757261626974757220626c616e64697400206174206e756e63206174206566666963697475722e204475697320657520006c696265726f206e656320647569206d6174746973206d6178696d75732e200053656420636f6e7365717561742065726174206d61757269732c2075742070006f727461206c6563747573206665756769617420717569732e2056657374690062756c756d2076656c2074656c6c7573206e65632073617069656e20636f6e006775652076656e656e617469732e20446f6e656320706c6163657261742075006c747269636573206d692e204675736365206c7563747573206e6f6e206d610075726973206163206375727375732e204e756c6c612065676574206d61676e006120766974616520747572706973206d616c6573756164612076697665727200612e2050656c6c656e746573717565206174206c6563747573206964206d6100676e612064617069627573206d61747469732076697461652061207175616d002e0a0a496e206572617420657261742c20696d7065726469657420757420710075616d206e65632c20756c6c616d636f727065722072757472756d20747572007069732e204d6f72626920706c61636572617420656c6974206174206e697300692070656c6c656e74657371756520706c6163657261742e2050726f696e20007669766572726120736f6c6c696369747564696e206375727375732e204675007363652076656e656e6174697320626c616e646974206e69736c207365642000636f6e6775652e204675736365206d6f6c65737469652c2075726e61207665006c20636f6e76616c6c69732072686f6e6375732c20656c6974206d657475730020657569736d6f642065782c2071756973207665686963756c61206d6173730061207075727573206163206475692e2041656e65616e206e6f6e206c6163750073207665686963756c612c20656c656966656e6420656c697420736f64616c0065732c207661726975732073617069656e2e20536564206e756c6c61206a750073746f2c206665726d656e74756d20706f72747469746f722076697665727200612075742c20706f727461206567657420656e696d2e2050656c6c656e7465007371756520636f6e736563746574757220736167697474697320747572706900732c206174206375727375732064756920706f737565726520696e2e20517500697371756520612073757363697069742065726f732e20457469616d20616c0069717565742c20646f6c6f722061742064696374756d2072686f6e6375732c00206d692065737420756c6c616d636f727065722072697375732c2061207469006e636964756e742074757270697320746f72746f72206e6f6e206e6962682e002053656420636f6d6d6f646f206469616d206163206f72636920766f6c7574007061742c207669746165206c6f626f72746973206d61676e6120706f7375650072652e204475697320636f6d6d6f646f20656c697420696420657820766172006975732c206567657420706f737565726520697073756d20617563746f722e0020467573636520756c74726963696573206f64696f20657520636f6e6775650020616c69717565742e2055742071756973206573742070756c76696e61722c002076756c707574617465206c65637475732076756c7075746174652c20636f006e7365717561742073617069656e2e0a0a446f6e656320636f6e76616c6c690073206d61757269732074656d7075732076617269757320617563746f722e2000416c697175616d207472697374697175652064696374756d2070757275732c0020696420677261766964612075726e6120616c69717565742075742e2056690076616d75732065752076656e656e6174697320616e74652c206d6178696d7500732074696e636964756e74206f7263692e20557420617420616c697175616d00206c6f72656d2e20416c697175616d206e6f6e206c61637573206e756c6c61002e204d6f72626920766974616520656666696369747572206d617373612c200076697461652072686f6e63757320657261742e2041656e65616e206e6f6e2000657261742071756973206d617572697320657569736d6f6420626c616e646900742e205574207669746165206e756c6c612073697420616d65742074656c6c007573206567657374617320636f6e7365717561742e205574206c696265726f00206c65637475732c20626c616e6469742070756c76696e6172207375736369007069742065752c20636f6e7365637465747572207669746165207361706965006e2e2043757261626974757220706f727461206e756e632066656c69732c2000717569732070656c6c656e746573717565206c656f206469676e697373696d002061742e204d6f7262692076656c20696163756c6973206e6962682e20446f006e65632074696e636964756e742065737420657520696d706572646965742000706f72747469746f722e20566573746962756c756d20696e207475727069730020746f72746f722e0a0a50726f696e2076697461652061726375206e696268002e205072616573656e74206573742073617069656e2c2074696e636964756e007420617420617263752076697461652c2076656e656e6174697320736f6c6c00696369747564696e20746f72746f722e2050656c6c656e7465737175652066006163696c697369732c206f64696f20696e2074726973746971756520736f6400616c65732c20657374206e6571756520657569736d6f6420697073756d2c2000657520656c656d656e74756d206f726369206e65717565207669746165206c00696265726f2e20446f6e65632074656d706f72206c696265726f20696e206c00656f20636f6d6d6f646f2c2075742076756c707574617465206d61676e6120006c616f726565742e204d616563656e61732072757472756d20656c656d656e0074756d20766f6c75747061742e20536564206d6f6c65737469652c206d657400757320657520656c656d656e74756d20616363756d73616e2c2073656d20710075616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d616c6573007561646120616e7465206c61637573206c6f626f7274697320746f72746f72002e205365642076656c697420646f6c6f722c20636f6e73656374657475722000617563746f7220616c697175657420696e2c206f726e617265206575207361007069656e2e204e756c6c61206574206c65637475732061207075727573207300656d706572206d61747469732e204e756c6c616d206d617474697320656c65006966656e64206d6f6c65737469652e0a0a4d6175726973206c6f626f72746900732065726174206c616375732c20757420766573746962756c756d20617567007565207072657469756d2065752e20446f6e65632065742073656d70657220006d61757269732c2073697420616d65742067726176696461206c6563747573002e20447569732076656e656e61746973206d69206f7263692c2061206566660069636974757220646f6c6f7220617563746f722069642e204e756c6c61206e006f6e2075726e612075742065726174207665686963756c612074696e63696400756e74207574206964206a7573746f2e2041656e65616e206c6163696e69610020657374206964206c7563747573206d616c6573756164612e205574206f72006e61726520647569207175697320636f6e736563746574757220707265746900756d2e20496e206163206a7573746f206163206e756c6c61207669766572720061207665686963756c612e2053757370656e646973736520696e2076657374006962756c756d206d657475732c206120736f64616c6573206c6f72656d2e20004d6f726269206e6f6e206c6967756c612076697461652074656c6c7573206600696e69627573207363656c6572697371756520617420696e20616e74652e20005175697371756520696e2073656d70657220646f6c6f722e20457469616d20006d6f6c6c69732c206d6574757320696420766f6c75747061742073656d706500722c206d61737361206e65717565206c6163696e69612073656d2c20696e2000656666696369747572206c656374757320656c6974207574206e756e632e200050726f696e206c6163696e6961206c6f72656d2071756973207475727069730020756c7472696365732c20757420666175636962757320646f6c6f7220656c00656966656e642e20446f6e6563206c6f626f7274697320697073756d20657500206572617420616c69717565742c2065752065676573746173206c6967756c006120656c656d656e74756d2e205072616573656e742069642065726f73206600696e696275732c206d6f6c6c69732074757270697320696e2c206d6f6c6c690073207175616d2e2050686173656c6c757320626c616e64697420636f6d6d6f00646f206e756e6320696e20626c616e6469742e204e616d207175697320726900737573207574206469616d206c6f626f727469732073616769747469732e0a000a50726f696e20766f6c75747061742074656d7075732072757472756d2e200050726f696e20696d7065726469657420626c616e6469742073617069656e20007175697320706c6163657261742e204e756c6c6120706f73756572652064750069206964206f64696f20657569736d6f642c20696420696163756c6973207500726e6120646170696275732e20446f6e65632070656c6c656e74657371756500206d617373612069642076697665727261206c616f726565742e204e756c6c00616d2071756973206c6163757320636f6e76616c6c69732c20626c616e64690074206c656f206e6f6e2c20616c697175616d206c696265726f2e2053656420006461706962757320617567756520696e2075726e612070686172657472612c002061742073656d706572206c656374757320706c6163657261742e205365640020756c74726963657320726973757320696420696163756c69732074656d700075732e20496e7465676572206665726d656e74756d2c2072697375732065740020636f6e736563746574757220636f6e6775652c206e756e63206573742069006163756c69732072697375732c20706f73756572652076656e656e61746973002065726f7320616e74652076656c2070757275732e20496e7465676572206c006163696e69612074656c6c7573207669766572726120726973757320736167006974746973206672696e67696c6c612e2043726173206e6f6e20697073756d002071756973206e65717565207669766572726120666163696c69736973206e006f6e20736564206475692e20467573636520636f6d6d6f646f20656c65696600656e64206a7573746f207175697320636f6e6775652e0a0a566976616d757300207363656c657269737175652074696e636964756e74206e756e6320646967006e697373696d20636f6e64696d656e74756d2e2051756973717565206172630075206e69736c2c20756c6c616d636f72706572206e6563206c65637475732000717569732c20636f6e67756520616363756d73616e20657261742e2043757200616269747572207574206e697369207475727069732e20496e20766974616500206573742071756973206d657475732074656d70757320766573746962756c00756d206575206e656320617263752e2055742073656d206a7573746f2c20660065756769617420657520636f6e73657175617420656765742c20756c6c616d00636f72706572206567657420697073756d2e205072616573656e7420707265007469756d206d6174746973206c656f2c20677261766964612068656e64726500726974206c696265726f2065666669636974757220656765742e204d61656300656e617320626c616e646974206e696268206469616d2c206e6563206c616300696e69612061726375206c6163696e69612065742e0a0a4675736365207469006e636964756e7420746f72746f722066656c69732e20536564206469616d20006e6962682c20637572737573206e6563206461706962757320656765742c20006f726e61726520656666696369747572206d692e20446f6e65632069642074006f72746f72207669746165206d692064696374756d20766573746962756c75006d2e2050726f696e206964206c696265726f20616c697175616d2076656c6900742074656d706f7220696d706572646965742073697420616d657420766974006165206c616375732e20437261732073697420616d65742065782068656e640072657269742c206672696e67696c6c6120617567756520696e2c206c616f7200656574206f7263692e204d616563656e6173206c61637573206d657475732c0020656c656966656e6420736564206d657475732075742c20657569736d6f640020657569736d6f642076656c69742e20496e746567657220696e2061636375006d73616e206d692e0a0a41656e65616e20696163756c69732076656c206a750073746f20756c7472696369657320766f6c75747061742e204372617320636f006e73656374657475722c2065726f73206e6f6e20756c6c616d636f727065720020696163756c69732c2076656c6974206578207665686963756c612076656c0069742c2073697420616d657420696163756c6973206a7573746f206469616d00206567657420657261742e20496e74656765722066696e6962757320736f6400616c6573206d617373612073697420616d6574206d616c6573756164612e2000496e2072686f6e6375732073617069656e206964207175616d207669766572007261207665686963756c612e20496e20686163206861626974617373652070006c617465612064696374756d73742e20446f6e656320616320706f7274746900746f72206e657175652c2073656420656666696369747572206c6967756c61002e20446f6e6563206567657420616c697175616d206c616375732c206e6f6e00207665686963756c61206e69736c2e2053656420706c616365726174206d61007474697320636f6e76616c6c69732e20496e746567657220736f64616c6573002c206e69736c2061207665686963756c61206469676e697373696d2c207665006c69742074656c6c7573206566666963697475722070757275732c20612076006573746962756c756d206f64696f206c61637573206964206469616d2e204e00756c6c616d20766974616520626c616e64697420656c69742e20507261657300656e742074696e636964756e74206c656374757320656c69742c206e6f6e200074656d707573206e69736c20677261766964612076697461652e204e756c6c0061206469616d2070757275732c206c616f7265657420766974616520656765007374617320696e2c20636f6e7365637465747572206574206d61757269732e002053656420766172697573206d6f6c6c697320656c656d656e74756d2e204e00616d2073697420616d6574206d61676e6120677261766964612c2068656e6400726572697420697073756d206e6f6e2c2074656d7075732073656d2e204d61006563656e6173206469676e697373696d206d6f6c6c69732072686f6e637573002e205365642066656c6973206e69736c2c2073656d7065722061742074656c006c75732065742c206d616c65737561646120616c697175616d20697073756d002e0a0a496e74656765722073757363697069742076656c6974206964207365006d206665726d656e74756d2c207175697320756c7472696365732073656d200074696e636964756e742e2041656e65616e2076656c20646f6c6f72206e6563002074757270697320656c656d656e74756d207363656c657269737175652e200050726f696e206f64696f20746f72746f722c20616c697175657420656765740020696d7065726469657420717569732c20736f6c6c696369747564696e20690064206c616375732e2050656c6c656e74657371756520656e696d20656c6974002c207375736369706974206964207175616d206e65632c206375727375732000616c697175616d2065726f732e20446f6e656320626962656e64756d207369007420616d6574206d657475732071756973207363656c657269737175652e20004e756e6320616320747572706973206a7573746f2e2053656420706c6163650072617420746f72746f72206e6563206c6163757320736f6c6c69636974756400696e207363656c657269737175652e2050686173656c6c7573207669746165002063757273757320657261742c20616320756c7472696369657320746f7274006f722e0a0a43726173206d616c6573756164612067726176696461206a757300746f2076656c207661726975732e204e756c6c616d206c616f7265657420690064206d617572697320696e20646170696275732e20437572616269747572200073757363697069742065782065676574207361676974746973206c7563747500732e20447569732071756973207669766572726120656c69742c20717569730020756c6c616d636f72706572206e756e632e204d617572697320656c65696600656e642c206d6173736120696e20626962656e64756d20616363756d73616e002c206578206e69736920766573746962756c756d206469616d2c2075742069006163756c697320647569206f72636920736564207475727069732e204e756c006c6120626962656e64756d2c2076656c697420657520636f6e76616c6c6973002073656d7065722c206d65747573206e69736c20706f7375657265206175670075652c2068656e64726572697420696163756c69732073617069656e20717500616d206574206469616d2e2050726f696e2076656c206e69736c206175677500652e20566976616d75732076656e656e61746973206d657475732073656420006d617572697320706f73756572652c20612068656e64726572697420656e69006d20766976657272612e204475697320636f6d6d6f646f206172637520657400206d61676e6120756c7472696365732070656c6c656e7465737175652e204e00616d20696e206c696265726f2076656e656e617469732c2076657374696275006c756d206175677565206c6163696e69612c20766172697573206c6f72656d002e20457469616d206574206c7563747573206c616375732e205175697371750065206d6f6c65737469652c206e69626820617420756c747269636573206d6100747469732c206c616375732075726e6120636f6e76616c6c6973206e756c6c00612c20696e206d616c657375616461206e756c6c61206c6563747573206e6f006e206469616d2e20457469616d206567657420697073756d206d61676e612e002050686173656c6c75732066656c6973207175616d2c20626962656e64756d002073697420616d657420726973757320717569732c20677261766964612065007569736d6f642066656c69732e0a0a46757363652076656e656e617469732000696e74657264756d20656c69742c20717569732072757472756d206f7263690020706f7375657265206e6f6e2e20496e20656c656966656e6420657374207100756973206469616d20666163696c697369732c206163206d616c65737561640061206d61737361206f726e6172652e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e205365642063757273757320616c697175616d206f0064696f2076656c2073757363697069742e2050656c6c656e74657371756520006163206c696265726f206163206572617420616c6971756574207361676974007469732e204d616563656e617320616e7465206c616375732c207363656c6500726973717565206574207472697374697175652076697461652c20656666690063697475722065676574207175616d2e2050686173656c6c7573207275747200756d20656c69742061756775652c2071756973206c6163696e6961206f726300692074696e636964756e74206e65632e20496e20636f6e736563746574757200206964206f726369206575207363656c657269737175652e2050656c6c656e0074657371756520616c69717565742074656d707573206f64696f207574207600756c7075746174652e2051756973717565206c696265726f206e69736c2c200072757472756d2061742073617069656e206e65632c206c616f726565742074007269737469717565206a7573746f2e2043726173206c6163696e6961206e690062682069642065726f732072757472756d207363656c657269737175652e20004e756e63206e6f6e206d6175726973206f7263692e204e616d20696d70657200646965742064617069627573206a7573746f2e20496e2076656c206c616375007320706f72747469746f722c207661726975732072697375732075742c2061006c697175616d20746f72746f722e2043757261626974757220696e206d65740075732076656c2065782076656e656e6174697320706f7274612e0a0a5375730070656e6469737365207365642070756c76696e6172206573742e205068617300656c6c7573206e6563206d6920656c656966656e642c20666575676961742000617263752061742c20706f72747469746f72206e6973692e204475697320650067657420626c616e6469742065782e20437261732061206475692065726f73002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e20496e2073656d206c696265726f2c20766f6c757470617420656765742000647569207365642c2070656c6c656e746573717565206c7563747573206578002e20536564206574206c656f20656765742065726f7320696e74657264756d00206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c657374690065206c65637475732c206e6f6e207665686963756c61206c65637475732e2000446f6e656320656666696369747572206d616c657375616461206d6175726900732c2065676574207472697374697175652073656d206c6f626f727469732000612e204e616d2074656c6c75732075726e612c2072686f6e63757320666572006d656e74756d20737573636970697420717569732c20696d70657264696574002071756973206f7263692e20557420637572737573206572617420766974610065206665726d656e74756d20666163696c697369732e204e756e632075742000626c616e646974206c6f72656d2e20566573746962756c756d2074656c6c750073206469616d2c20636f6e67756520657520706f73756572652075742c206c006f626f7274697320612073656d2e204e756c6c616d206163206f726369206e006f6e2075726e6120656c656966656e6420696d706572646965742e0a0a507200616573656e74207669746165206e69736c206672696e67696c6c612c207375007363697069742065726174207365642c20656c656d656e74756d207269737500732e20446f6e656320696420756c74726963696573206f64696f2e2050726f00696e206d6174746973206d61757269732061206d61737361206d6178696d750073207472697374697175652e2050686173656c6c7573206567657420706f730075657265206e6962682e2050686173656c6c757320736564206d657475732000657420657820636f6d6d6f646f20766f6c75747061742e2041656e65616e20006c6163696e69612c206175677565206e6f6e2065666669636974757220636f006e6775652c206d617373612073656d2076697665727261206469616d2c20710075697320706f737565726520647569206c6f72656d2061206c6f72656d2e2000496e2076756c7075746174652064756920657520656c6974207375736369700069742074656d706f722e204372617320696d70657264696574206d6175726900732073656420657820637572737573206c616f726565742e20566976616d750073206e65717565206573742c20666163696c6973697320717569732066656c00697320717569732c20706f72747469746f7220706f72747469746f72206e75006e632e204675736365206e6f6e206c6f626f72746973206c6f72656d2e0a0a004d616563656e617320766f6c75747061742066617563696275732074656c6c00757320756c747269636965732070756c76696e61722e2050686173656c6c750073206120706f72747469746f7220617263752e20446f6e65632076756c7075007461746520656e696d207475727069732c20612074696e636964756e7420640069616d2074656d706f722065752e20446f6e656320736f6c6c69636974756400696e2c206578207669746165206c756374757320766573746962756c756d2c00206e69736c20616e746520756c6c616d636f72706572206d692c2061742075006c7472696369657320656e696d20646f6c6f722073656420656c69742e20500072616573656e74206d6f6c6c697320656666696369747572207269737573200071756973207072657469756d2e20566573746962756c756d2071756973206600696e69627573206475692c2065676574206f726e617265206c65637475732e0020457469616d2065676574206a7573746f20766573746962756c756d2c2062006c616e6469742073656d20696e2c206d6178696d75732065726f732e0a0a5000686173656c6c7573206120697073756d206575206d69206375727375732073006f64616c6573206e656320736564206e6973692e2044756973206672696e6700696c6c6120657374206163206c6967756c612070756c76696e61722067726100766964612e2050726f696e207669766572726120616363756d73616e207365006d2c2076656c2072757472756d206e69736c20636f6e736571756174207665006c2e204e756e63206672696e67696c6c61206d657475732076656c206661750063696275732074656d706f722e205072616573656e7420636f6e73656374650074757220646170696275732061756775652c206574207363656c6572697371007565206c656374757320636f6e64696d656e74756d206e65632e204e756e630020616363756d73616e2c2075726e61206e6f6e20706c61636572617420756c007472696365732c206d617572697320617567756520736f6c6c69636974756400696e20616e74652c2073697420616d657420616c697175616d206c61637573002076656c69742061632074656c6c75732e205365642076656e656e61746973002c2074656c6c7573206e656320617563746f7220646170696275732c206c6f0072656d2073617069656e2073656d70657220657261742c206575207669766500727261207175616d2075726e61207669746165206c6f72656d2e204d61656300656e6173207375736369706974206e756e63207574206d6f6c657374696520006d61747469732e20416c697175616d20766974616520657374206469676e69007373696d2064756920656c656d656e74756d20617563746f722e0a0a4d6f72006269206e756c6c61206c616375732c2073656d7065722073697420616d6574002066656c69732065742c2076756c707574617465206d616c65737561646120006475692e2050726f696e20656765742065726f73206c65637475732e20446f006e65632074696e636964756e7420656c69742076656c20736f6c6c69636974007564696e2073616769747469732e2050726f696e206163206d6f6c6573746900652073656d2e2053757370656e646973736520696163756c69732076657374006962756c756d2073656d206574206d61747469732e2050726f696e206c6f62006f72746973206c616f72656574206469616d2c2073656420706f737565726500206573742074656d706f722065742e2053656420696e20746f72746f7220710075697320657820696d70657264696574206c6163696e69612071756973206e006563206c6f72656d2e204d616563656e617320636f6e76616c6c69732065660066696369747572206f7263692c20657420706f72747469746f72206e69736c0020666163696c69736973206e6f6e2e205365642068656e647265726974207600656e656e617469732066656c697320666175636962757320656c656d656e7400756d2e204d6f7262692061632064756920736f64616c65732c2070656c6c65006e74657371756520697073756d2076656c2c20736f64616c65732076656c6900742e20457469616d20656e696d206c6f72656d2c2076656e656e6174697320006163206c616375732065742c2065676573746173206d616c65737561646120006c65637475732e20416c697175616d20736f64616c6573206e6962682065660066696369747572206c656374757320616c697175616d20766573746962756c00756d206e6f6e2061206f64696f2e204d61757269732069642066617563696200757320656c69742c2073656d70657220706f72747469746f72206e756c6c61002e204675736365206f726e6172652c206a7573746f20696e20766568696375006c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e677565200074656c6c75732c20757420666175636962757320697073756d207269737573002061206e756c6c612e20457469616d207669766572726120707572757320710075616d2c2076656c20706f72747469746f72206d6574757320696d70657264006965742065752e204d6f72626920636f6e76616c6c697320636f6e73657175006174206475692e0a0a4d61757269732074726973746971756520617263752000717569732072686f6e6375732064696374756d2e204e756e6320646f6c6f7200206c696265726f2c206d6178696d757320617420656e696d2075742c2067720061766964612072686f6e637573207175616d2e20566573746962756c756d20006d61747469732074696e636964756e7420666163696c697369732e20467573006365206e756c6c612061756775652c206567657374617320736564206c616300696e69612076697461652c206d616c657375616461206163206e756c6c612e00204d617572697320696163756c6973207072657469756d206c616375732c2000612066696e696275732075726e6120706f73756572652061632e204d6f7262006920696e74657264756d20666175636962757320657261742c2061206c616f0072656574206d61676e6120626c616e64697420612e2043726173206e656320006d61676e612071756973206c61637573206567657374617320696163756c6900732e0a0a4c6f72656d20697073756d20646f6c6f722073697420616d65742c0020636f6e73656374657475722061646970697363696e6720656c69742e2055007420756c74726963696573206f726369207175616d2c2073697420616d65740020656c656966656e6420616e7465206672696e67696c6c61206e65632e205000726f696e20616c697175616d20696e2074656c6c757320677261766964612000636f6e76616c6c69732e2050726f696e2072757472756d20636f6e7365717500617420656e696d20736564206d616c6573756164612e2041656e65616e206500676573746173206d657475732076697461652073656d20636f6e64696d656e0074756d2073757363697069742e2053757370656e6469737365206172637520006475692c206772617669646120696e2065726f732065742c206d61747469730020616c69717565742074656c6c75732e20496e74656765722070656c6c656e0074657371756520616e74652066696e69627573206d692072757472756d2061006c697175616d2e20496e7465676572206d6174746973206469616d2073656400206665756769617420696d706572646965742e2046757363652069642062690062656e64756d206d617373612e20496e74656765722061742074656d7075730020656e696d2e20416c697175616d206574206d6f6c6c6973206d61676e612e000a0a5365642073656d70657220656c656d656e74756d206d61737361206e6f006e20766976657272612e205365642073697420616d6574206d61676e612065007420697073756d207472697374697175652076756c7075746174652e205065006c6c656e74657371756520696e206c696265726f2073656d2e205375737065006e646973736520736f64616c65732074656d706f722061756775652074696e00636964756e7420666163696c697369732e204d616563656e6173207363656c006572697371756520697073756d20617420666575676961742064696374756d002e204d616563656e61732076656c2075726e6120736564206d657475732075006c74726963696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6100757269732c2073757363697069742065676574206172637520696e2c207275007472756d2072757472756d206d617373612e204d616563656e61732061632000696d7065726469657420656c69742c207365642073757363697069742069700073756d2e2050726f696e206d6f6c6573746965206d6173736120617263752c00206120636f6e64696d656e74756d206f64696f20756c747269636573207369007420616d65742e205072616573656e742072686f6e637573206578207075720075732c2073656420706c616365726174206e756e63206f726e617265206574002e2050686173656c6c75732061206e696268206d616c6573756164612c2075006c6c616d636f72706572206e69736c2061742c2070656c6c656e74657371750065206c6f72656d2e2050686173656c6c7573206c6f72656d20697073756d2c0020756c6c616d636f727065722075742076756c70757461746520616c6971750065742c207661726975732065676574206c6f72656d2e0a0a4d6175726973200068656e6472657269742074696e636964756e74207175616d20616320696e7400657264756d2e20496e206120697073756d206e6f6e207175616d206d617869006d75732066696e696275732e20536564206f64696f2065782c206c6163696e00696120766974616520697073756d2073616769747469732c20766568696375006c6120656765737461732072697375732e204e756c6c616d20616320656c65006966656e6420646f6c6f722c20657520706f72747469746f722074656c6c7500732e204d616563656e617320746f72746f722076656c69742c20636f6e6469006d656e74756d20696420656e696d2076656c2c20657569736d6f64206f726e006172652072697375732e20416c697175616d206964206c6f72656d20696e7400657264756d2c20616c697175616d20707572757320696e2c20706861726574007261206a7573746f2e205574207669746165206c656f206469616d2e204e75006c6c6120656c656d656e74756d206e756e63206d657475732c206e65632076006172697573206f64696f2066696e69627573206e65632e20457469616d207100756973206e69736c20696e74657264756d2c20766f6c757470617420646f6c006f722065742c2072686f6e637573206e6962682e204d616563656e6173206e006f6e2072757472756d2061756775652c20657520656c656966656e64206d69002e20446f6e6563206c6f626f7274697320616e7465207669746165206175670075652070686172657472612c206174206c6163696e696120746f72746f7220007072657469756d2e0a0a4d616563656e61732061742074656d706f72206d6100676e612c20696e20737573636970697420656e696d2e204e756c6c6120656c00656d656e74756d2072757472756d2065782c206567657420736f64616c657300206e756c6c6120636f6e76616c6c69732076697461652e20566976616d757300206469676e697373696d2c2065726f7320657520656c656d656e74756d2073006f6c6c696369747564696e2c206c6f72656d20647569206c7563747573207300617069656e2c206163206d617474697320646f6c6f7220656e696d2073757300636970697420656c69742e204e756c6c61206567657420696d7065726469650074206d657475732e2043757261626974757220636f6e64696d656e74756d200061207075727573207363656c6572697371756520756c7472696365732e2041006c697175616d206c696265726f206d692c20766573746962756c756d206574002074656d706f722065752c2070686172657472612073697420616d65742065006c69742e20557420696420616c697175616d206c696265726f2e0a0a5365640020636f6e7365637465747572206c65637475732066696e69627573206c656300747573206f726e61726520706f7274612e20447569732073656420636f6e670075652073617069656e2c20757420696d7065726469657420656e696d2e205300656420656c656d656e74756d20696163756c6973206c6967756c612c206e6f006e2076656e656e617469732073617069656e206c75637475732069642e2053006564206566666963697475722c20616e7465207669746165206d6f6c657374006965206566666963697475722c20656c697420697073756d20636f6e64696d00656e74756d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f0064696f207669746165206c616375732e2053757370656e64697373652065670065737461732073656d206f64696f2c20696e20766573746962756c756d206e0069736c20706f72747469746f722076656c2e20496e2074696e636964756e74002c206d657475732061206c6f626f7274697320756c7472696365732c2069700073756d206d6574757320766573746962756c756d206e756c6c612c2061742000696d7065726469657420746f72746f72206e6571756520736564206d692e20004d617572697320617420616e746520616e74652e20566573746962756c756d0020637572737573207665686963756c6120756c7472696365732e204d6f72620069206c7563747573206120657374206e656320696d706572646965742e20550074206e6f6e2075726e61206672696e67696c6c612c2065676573746173206d00657475732065752c2064696374756d20656c69742e20496e2064696374756d00207075727573206964206c656374757320616c69717565742074656d706f72002e20416c697175616d206572617420766f6c75747061742e204e616d206175006775652066656c69732c20696d70657264696574206174206d61676e61206e0065632c2070656c6c656e746573717565207661726975732074656c6c75732e000a0a4d616563656e617320656765742065782070656c6c656e746573717565002c20656c656d656e74756d206469616d2061742c20656c656966656e642064006f6c6f722e204e756c6c616d20626962656e64756d2065726f73206e65632000646f6c6f7220646170696275732c206174207361676974746973206573742000636f6e64696d656e74756d2e205072616573656e74206e6f6e2068656e647200657269742065726f732e204d616563656e617320636f6e736571756174206d006173736120766974616520647569207665686963756c612c20757420756c740072696365732072697375732073656d7065722e2053757370656e646973736500206461706962757320616e746520646f6c6f722c206120626962656e64756d002076656c69742074726973746971756520696e2e204d616563656e6173206e00656320696163756c697320656e696d2e20566573746962756c756d2073656400206f64696f2064696374756d2c20766573746962756c756d206f64696f2065006765742c20656c656966656e64206d657475732e204d617572697320616320006c696265726f20736564206c656f2070756c76696e617220636f6e76616c6c0069732e2044756973207665686963756c61206f72636920656c69742e2056650073746962756c756d206566666963697475722065676573746173206578206100206f726e6172652e2051756973717565206f726e617265206e6962682063750072737573206d6f6c65737469652070656c6c656e7465737175652e0a0a446f006e65632074696e636964756e7420666575676961742073757363697069742e0020566573746962756c756d20756c6c616d636f7270657220646f6c6f72206e006f6e206c6967756c6120766573746962756c756d2c20612070756c76696e610072206e756e6320636f6e7365717561742e20416c697175616d2070756c7669006e6172207661726975732074656c6c757320657520617563746f722e204d6100757269732076697665727261207665686963756c612065782c2076697461650020616c697175616d20617263752064696374756d2069642e205175697371750065207068617265747261207669746165206d61676e6120696e206f726e617200652e20566573746962756c756d207072657469756d207363656c6572697371007565206f64696f20696420636f6e73656374657475722e204e756c6c61207300656420656e696d207574207175616d20636f6e736563746574757220747269007374697175652e0a0a4e756c6c616d206f64696f206d61757269732c20666500756769617420657520666575676961742075742c20706f737565726520766900746165206d61676e612e205365642076697461652073656d70657220747572007069732c2073697420616d6574207363656c65726973717565206e756c6c61002e20517569737175652074656d707573206e6f6e206d692073656420706f7200747469746f722e2050726f696e206c656f2065782c20706f73756572652065007520656765737461732076656c2c206d6f6c657374696520736564206d65740075732e204e616d20747269737469717565206c616375732065742069707375006d206d6178696d757320756c747269636965732e204e756c6c616d20706f7300756572652073697420616d65742073617069656e206d6f6c65737469652075006c6c616d636f727065722e204d6f72626920656765737461732c20657261740020616320626c616e6469742064696374756d2c2073617069656e206e69736c002066696e69627573206e6973692c2073656420656666696369747572206c6500637475732073656d20657520697073756d2e2050686173656c6c7573206c65006f2061756775652c2076756c70757461746520706c616365726174206175670075652065752c2074656d706f722074696e636964756e74206c6f72656d2e200046757363652073697420616d65742073656d70657220746f72746f722e0a0a0053757370656e646973736520706f74656e74692e204d616563656e6173206900642064617069627573207475727069732c206e6f6e2076756c707574617465002065782e204e756c6c616d2072757472756d206c6967756c61206e65632072006973757320737573636970697420766f6c75747061742e20416c697175616d00206c7563747573206e657175652073697420616d65742061726375207472690073746971756520766f6c75747061742e205365642076697461652066656c690073206c6f72656d2e20416c697175616d20706c61636572617420656c656d65006e74756d2073617069656e2c2076697461652076756c7075746174652072690073757320766f6c757470617420696e2e204d616563656e6173207669746165002064756920657261742e2050686173656c6c7573206672696e67696c6c61200073617069656e2073656420647569207665686963756c612c207661726975730020636f6e736563746574757220616e746520736f6c6c696369747564696e2e00204372617320696163756c69732c2073617069656e20696e74657264756d2000696d70657264696574206566666963697475722c20647569206d6175726973002070756c76696e617220697073756d2c2061742076656e656e61746973206e0069736c206f64696f2071756973207175616d2e204e756e63206566666963690074757220636f6e73656374657475722073656d7065722e204e756c6c616d2000706f7375657265206e756c6c612072686f6e6375732070756c76696e61722000756c747269636965732e204e756e632074656c6c757320617263752c206865006e64726572697420736f6c6c696369747564696e206469616d207669746165002c2068656e6472657269742066696e696275732065782e0a0a536564206c6f00626f72746973206d6174746973206c6967756c612c20766974616520636f6e0076616c6c6973206c656f2064617069627573206e6f6e2e204d616563656e610073207669746165206c61637573206575206e69736c20617563746f7220656c00656d656e74756d206e6563207669746165206c65637475732e204d61656365006e6173207669746165206f726369207669746165206d6920756c6c616d636f007270657220706f72747469746f72206964206c6f626f72746973206e69736c002e20446f6e6563206964206d617572697320697073756d2e20416c69717561006d206572617420766f6c75747061742e20566976616d7573206c6f626f7274006973206e696268207574206573742076756c7075746174652066657567696100742e20496e7465676572206c696265726f207175616d2c20756c74726963650073206174206f7263692061742c20636f6e677565206665726d656e74756d20006d617373612e20457469616d2069642065726f7320696163756c69732c2063006f6e64696d656e74756d206f7263692074696e636964756e742c206d617474006973206d657475732e204d616563656e617320756c747269636573207369740020616d657420646f6c6f722069642070656c6c656e7465737175652e2056650073746962756c756d20706f727461206d6178696d7573206e69736c2c20696e002066696e6962757320746f72746f7220766f6c75747061742075742e2055740020677261766964612c20646f6c6f7220756c7472696365732068656e6472650072697420666575676961742c20656e696d2073656d20696e74657264756d20006c6967756c612c20616320656666696369747572206572617420656c697420006964206c6f72656d2e20496e2073697420616d657420756c6c616d636f7270006572206c6f72656d2e0a0a50686173656c6c7573206c6967756c612075726e00612c20636f6e736571756174206574206c756374757320612c206f726e617200652065742061756775652e20566573746962756c756d20657420616e746520006174206c6163757320626962656e64756d20696d706572646965742e2045740069616d2074757270697320617263752c2063757273757320766974616520760069766572726120612c2068656e64726572697420766974616520617263752e002050726f696e206f726e617265206d6175726973207574206d61676e61206d006f6c6573746965206d61747469732e20446f6e65632074656d706f72206c6500637475732071756973206d617373612076756c70757461746520696e7465720064756d2e2050726f696e206575206c6967756c61206469616d2e204d61656300656e6173206461706962757320747572706973206c65637475732c2075742000666163696c6973697320656c6974206469676e697373696d2075742e204e75006e6320626c616e646974206f726369206120616e746520666163696c69736900732c20617420636f6e76616c6c69732066656c697320666163696c69736973002e20437572616269747572207375736369706974206d692061206c69626572006f20706f73756572652c2071756973206f726e617265206a7573746f2076690076657272612e2050656c6c656e746573717565206861626974616e74206d6f00726269207472697374697175652073656e6563747573206574206e6574757300206574206d616c6573756164612066616d6573206163207475727069732065006765737461732e204e756c6c612070756c76696e6172207363656c6572697300717565206d61676e612c2065676574206c6f626f72746973206e6962682063006f6d6d6f646f2061742e20447569732065676574207661726975732066656c0069732c20636f6e64696d656e74756d20706c616365726174206c6563747573002e20416c697175616d20617563746f722074656d706f722075726e61206575002070756c76696e61722e204d6f726269206375727375732074656d706f7220006e657175652c206e6f6e20626c616e64697420646f6c6f7220666163696c690073697320656765742e2053656420736564206c6f626f727469732073656d2e000a0a4d617572697320756c7472696369657320656c69742075726e612c207600656c20616c697175657420707572757320617563746f722076697461652e20005072616573656e742076697665727261206f64696f2074656c6c75732c20710075697320706f7375657265206e756c6c6120616c69717565742061742e204c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e20437572616269007475722065676574206d65747573206174206c6967756c6120656c65696665006e6420706861726574726120696e206d616c657375616461206475692e20440075697320636f6e7365637465747572206469616d2075742066657567696174002072757472756d2e20566976616d757320657569736d6f64206e69736c207600656c206d6178696d75732073616769747469732e20496e20636f6d6d6f646f002073697420616d6574206c6f72656d2065742074696e636964756e742e205500742070656c6c656e746573717565206e756c6c61206e6f6e206d61757269730020636f6e64696d656e74756d2c2069642076756c707574617465206f64696f0020626c616e6469742e2053757370656e6469737365206e6f6e20707265746900756d206d61757269732c206e65632074696e636964756e742073617069656e002e0a0a4675736365206461706962757320657569736d6f6420747572706973002c20757420656c656d656e74756d20656e696d20657569736d6f64206e6f6e002e204e616d2061206e6962682074656c6c75732e2050656c6c656e7465737100756520696163756c697320746f72746f722073656420706f72747469746f720020636f6e64696d656e74756d2e204375726162697475722066617563696275007320747572706973206d6178696d75732c2076656e656e6174697320616e740065207365642c206d6f6c6c69732072697375732e205365642074656d70757300206d61676e612065676574206e756e6320706f72747469746f722c206174200072757472756d207175616d20636f6d6d6f646f2e20496e746567657220626c00616e646974207661726975732074656c6c75732073697420616d6574207275007472756d2e2050726f696e206d6f6c6c697320747269737469717565206e6500717565207365642074656d7075732e204475697320706c6163657261742c20006f7263692069642064696374756d20766573746962756c756d2c206c696775006c6120646f6c6f7220766f6c7574706174206c656f2c2076697461652066610075636962757320656e696d206e756c6c6120717569732065782e20437261730020666175636962757320657374206573742c2073697420616d65742061636300756d73616e206c6163757320696d706572646965742069642e204e616d206d0061747469732c206e756e6320736564206469676e697373696d20706c616365007261742c206d617373612075726e6120696163756c69732076656c69742c200071756973206c7563747573206469616d206a7573746f206575206e6973692e0020416c697175616d206572617420766f6c75747061742e0a0a50656c6c656e00746573717565206e6571756520617263752c20636f6e677565206e6f6e2061007567756520717569732c2074726973746971756520696e74657264756d206e00756e632e2050726f696e20646f6c6f7220746f72746f722c206461706962750073207365642070656c6c656e74657371756520612c2072757472756d206567006574206e6973692e20437261732065742074656d7075732074656c6c75732e00204e756c6c6120706f72747469746f722c206e69736920657520617563746f0072207661726975732c206572617420746f72746f722072757472756d20747500727069732c206e6f6e2068656e64726572697420616e7465206e6571756520007574206573742e20416c697175616d2076756c7075746174652076656c69740020766974616520657569736d6f6420656765737461732e20496e7465676572002072757472756d206d6f6c6c697320617263752c20757420756c7472696369006573206a7573746f206d6f6c6c697320656765742e20457469616d206174200066696e6962757320656e696d2c206574206d6174746973206d61757269732e00204d616563656e617320696e20616c69717565742061756775652e204e616d0020756c74726963657320656c656d656e74756d20617263752076656c20616c00697175616d2e20566573746962756c756d20696e206c6967756c6120747269007374697175652c206661756369627573206f64696f20656765742c206c6f62006f72746973206a7573746f2e204d6f726269206575206e756e63207369742000616d657420726973757320636f6e73657175617420616c697175657420736500642061632065782e20496e2068656e64726572697420756c7472696369657300206c6967756c612c2071756973207375736369706974206c6563747573206400696374756d2065752e20536564206c616f7265657420636f6e67756520756c007472696365732e2050686173656c6c7573207375736369706974206d6173730061206120666163696c6973697320696d706572646965742e0a0a44756973200074696e636964756e742065726f732071756973206772617669646120766172006975732e2053757370656e6469737365206e6f6e206475692070757275732e0020496e74657264756d206574206d616c6573756164612066616d65732061630020616e746520697073756d207072696d697320696e2066617563696275732e0020446f6e65632061742070756c76696e61722066656c69732e20446f6e656300206e656320616c697175616d2065726f732c2064696374756d20626962656e0064756d20617263752e20496e206e656320646f6c6f722066696e696275732c00207072657469756d206c6967756c612065742c20636f6e736571756174206500782e20496e206861632068616269746173736520706c61746561206469637400756d73742e20457469616d2074656c6c757320656e696d2c20696e7465726400756d2073656d70657220697073756d20736f64616c65732c206772617669640061206672696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e690061206a7573746f20736f6c6c696369747564696e206c616f72656574206d6f006c65737469652e20457469616d20616320766573746962756c756d20717561006d2c20696420657569736d6f6420697073756d2e205574206174206772617600696461206c6f72656d2e2053757370656e646973736520696e74657264756d0020656c656966656e64206c65637475732c2065752073656d7065722070757200757320766f6c757470617420612e0a0a55742076656c20617567756520756c007472696365732c2074696e636964756e74206d6173736120612c20736167690074746973206e69736c2e2050726f696e206567657420616e746520616c69710075616d2c206f726e6172652061756775652070656c6c656e7465737175652c0020646170696275732070757275732e20496e206574206d657475732061726300752e2050656c6c656e74657371756520616c697175616d20626c616e6469740020617263752071756973207472697374697175652e204d617572697320746f0072746f72206d617373612c206d6178696d75732071756973207661726975730020612c20706f72747469746f7220636f6e73656374657475722073656d2e200050726f696e207665686963756c6120707572757320657420696163756c69730020636f6e73656374657475722e20557420736f6c6c696369747564696e206600696e6962757320657820696e20656c656d656e74756d2e204f7263692076610072697573206e61746f7175652070656e617469627573206574206d61676e690073206469732070617274757269656e74206d6f6e7465732c206e6173636574007572207269646963756c7573206d75732e205072616573656e74206e65632000696d70657264696574206d61676e612e205574206d616c65737561646120690064207075727573206e656320766573746962756c756d2e2053757370656e64006973736520616363756d73616e2065726174206c656f2c20696e20666175630069627573206469616d20696163756c69732073697420616d65742e20447569007320736f6c6c696369747564696e206c6563747573207175697320656e696d00206c6163696e696120657569736d6f642076656c2075742061756775652e0a000a416c697175616d20756c7472696369657320636f6e76616c6c6973207465006c6c75732c206964206567657374617320656c69742073616769747469732000696e2e204372617320706f72747469746f72206e6973692065676574207361007069656e20636f6e76616c6c697320706f73756572652e204d6175726973200067726176696461206e65717565207669746165206c696265726f20637572730075732c20696420636f6e736571756174206e657175652072686f6e6375732e0020496e746567657220616c69717565742065676574206e696268206163207000686172657472612e204e756c6c616d20696163756c6973206e69736c206665006c69732c207175697320696d70657264696574206e756c6c6120756c74726900636573207365642e205175697371756520747269737469717565206c61637500732061742072686f6e63757320706f7274612e204e616d20616320636f6e6400696d656e74756d2075726e612e20536564206e656320706f72747469746f7200206e6962682e205365642067726176696461206d61676e612069642070757200757320706f737565726520766573746962756c756d206e6f6e20736564206e006973692e20566573746962756c756d2061726375207475727069732c2069610063756c69732076656c20636f6e7365717561742069642c206c6f626f72746900732073697420616d65742065782e205072616573656e742071756973207465006d706f722061756775652e204e756c6c61206567657420656e696d20656c65006966656e642c2074696e636964756e74206c696265726f2073697420616d6500742c206d6174746973206e6973692e20446f6e65632064756920657261742c002070756c76696e61722076656c207075727573206e65632c20666163696c69007369732066696e69627573206c6f72656d2e204e756c6c616d20756c7472690063657320707572757320766573746962756c756d20636f6d6d6f646f20616c00697175616d2e0a0a4f72636920766172697573206e61746f7175652070656e00617469627573206574206d61676e6973206469732070617274757269656e7400206d6f6e7465732c206e61736365747572207269646963756c7573206d7573002e204e756e6320626c616e646974206e756c6c612072697375732c2076656c0020736f64616c6573206c6f72656d206f726e6172652061632e20496e746567006572206e6f6e20646f6c6f7220626962656e64756d2c206f726e6172652074006f72746f7220656765742c20756c7472696369657320697073756d2e204165006e65616e2066696e69627573206469676e697373696d206f726e6172652e20004d61757269732074656d7075732c206572617420617420626962656e64756d0020617563746f722c206c656f20656c6974206c6163696e6961206f64696f2c002061742074656d7075732061726375206475692071756973206573742e20500072616573656e74206672696e67696c6c61206c6f72656d206d616c6573756100646120706f72747469746f7220696d706572646965742e20496e7465726475006d206574206d616c6573756164612066616d657320616320616e74652069700073756d207072696d697320696e2066617563696275732e204d6f7262692076006974616520666163696c69736973206c6f72656d2c20766974616520636f6e0073657175617420697073756d2e20457469616d20696420656c656d656e7475006d20657261742e204e616d20646f6c6f72206c656f2c2074656d706f722061006320657820717569732c206469676e697373696d206665726d656e74756d2000616e74652e0a0a446f6e65632061206e756c6c612072697375732e204d6175007269732066617563696275732c206e756e63206163206d6178696d7573207600656e656e617469732c206d61676e612076656c6974207072657469756d2061006e74652c206e6f6e206665726d656e74756d20656c6974206d617572697320006e6f6e206e756e632e20446f6e65632068656e6472657269742075726e61200061742074656c6c757320636f6e76616c6c69732c2061632066617563696275007320656c6974206c6f626f727469732e204e756c6c616d20626962656e6475006d20656c656966656e64206d61676e612073697420616d657420696e7465720064756d2e20496e20696e20736f64616c657320746f72746f722c206e6f6e20006c6f626f72746973206d692e205072616573656e742076656c2073656d206100206f64696f2076656e656e6174697320666163696c697369732e2056657374006962756c756d206163206d6f6c657374696520646f6c6f722c206174206669006e69627573206e6973692e0a0a566573746962756c756d20616e74652069700073756d207072696d697320696e206661756369627573206f726369206c75630074757320657420756c74726963657320706f737565726520637562696c6961002063757261653b2046757363652061632074656d70757320617263752c2076006974616520696163756c6973206e657175652e2055742061206e69736c207500742076656c697420636f6e73657175617420636f6e64696d656e74756d207600697461652065676574206e6962682e2044756973206574206d61676e612061006c69717565742c20636f6e76616c6c697320656c69742069642c20756c6c61006d636f72706572206d692e20566976616d757320696d70657264696574206600656c6973207175697320636f6e7365717561742072757472756d2e204d6f7200626920757420617263752073697420616d657420617567756520636f6e677500652074696e636964756e742e2053757370656e64697373652061206d617474006973206f7263692e204e756e6320656765737461732c2076656c69742073650064206469676e697373696d2073656d7065722c20656c6974206d61757269730020626962656e64756d206e657175652c206567657420616c697175616d206e00697369206e65717565206120616e74652e204e616d2066657567696174206e006571756520646f6c6f722e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20557420696e20636f6e736563746574757220646f6c6f722e002051756973717565206e6f6e20636f6e677565206e657175652e0a0a4e756c006c61207363656c657269737175652c206e65717565206567657420636f6e7600616c6c697320626962656e64756d2c206c6f72656d206d65747573207068610072657472612070757275732c2073656420626c616e6469742065726174206100726375206575206e6973692e204d617572697320706c616365726174206d6100737361206575206e6571756520766f6c75747061742c2073697420616d6574002076697665727261207269737573207363656c657269737175652e20496e200076656c20766573746962756c756d206e756c6c612e20416c697175616d207200686f6e6375732061632061756775652076656c2076756c7075746174652e20004d6175726973207669746165206469616d20696d706572646965742c20766f006c7574706174206e6962682065752c206661756369627573206d657475732e0020457469616d2070656c6c656e74657371756520747572706973206964206e0069626820636f6e73657175617420736f6c6c696369747564696e2e204e756e00632065676574206a7573746f2070756c76696e6172206d65747573207275740072756d206c75637475732073697420616d65742061206d657475732e204e75006c6c6120666163696c6973692e2053757370656e646973736520657520617500677565206c65637475732e2053757370656e646973736520736f6c6c69636900747564696e20657569736d6f64207661726975732e2050686173656c6c75730020616e746520657261742c20666175636962757320696420746f72746f7220006e65632c207363656c6572697371756520766172697573206e756e632e0a0a00457469616d206672696e67696c6c6120766f6c7574706174206d692c20706f00737565726520766573746962756c756d206c6967756c6120756c7472696365007320696e2e20446f6e6563207665686963756c612074757270697320717569007320756c74726963696573207661726975732e20446f6e65632073656d7065007220616e746520657261742c20616320666575676961742074656c6c75732000626962656e64756d2069642e20446f6e656320697073756d206e69736c2c200070756c76696e6172206e6563207175616d20696e2c20736f6c6c69636974750064696e20696e74657264756d20656e696d2e20566976616d7573206c616f72006565742074656c6c75732065676574206f72636920636f6e64696d656e7475006d207363656c657269737175652e2050726f696e20657420666175636962750073206f64696f2c206163206566666963697475722061756775652e2055742000696e74657264756d20747269737469717565206475692074656d7075732070006f7274612e20416c697175616d206672696e67696c6c6120707572757320760069746165206e6962682074656d706f7220626962656e64756d2e205175697300717565206574207361676974746973206f7263692c2061742074656d706f72002076656c69742e205365642066696e696275732073617069656e20657420740075727069732073656d7065722c206e6f6e206d6f6c6573746965206e756e6300206c75637475732e20536564206a7573746f206e6973692c20736f6c6c69630069747564696e20696e20697073756d20696e2c206665726d656e74756d20700072657469756d206f64696f2e204e756c6c6120757420766f6c7574706174200073656d2e0a0a436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e204e756c6c61206e6f6e206f726369206d692e2056657374696275006c756d207361676974746973206f72636920657520636f6e64696d656e7475006d20636f6e6775652e20446f6e656320736564206d61676e612070656c6c65006e7465737175652c20706c61636572617420697073756d207365642c20616c00697175616d2073656d2e2043757261626974757220696d706572646965742000617567756520657420656c697420706c6163657261742c2061742070756c7600696e617220617263752066617563696275732e20566573746962756c756d2000666575676961742c20697073756d20617420756c747269636573206d6f6c6500737469652c206e65717565206f64696f20656c656966656e642076656c6974002c2061742065676573746173206f72636920647569206574206573742e2049006e7465676572207574206a7573746f206c65637475732e204e756c6c616d20006665756769617420696e74657264756d206f726369206e656320617563746f00722e0a0a446f6e656320616c697175657420616363756d73616e206d61737300612c20766974616520666163696c697369732072697375732e20467573636500207072657469756d206e756e63206e6f6e20636f6e73657175617420656c65006d656e74756d2e204d616563656e617320636f6e64696d656e74756d20736300656c6572697371756520706f72747469746f722e204f7263692076617269750073206e61746f7175652070656e617469627573206574206d61676e697320640069732070617274757269656e74206d6f6e7465732c206e6173636574757220007269646963756c7573206d75732e204d6175726973206e6563207075727573002066617563696275732c2074656d707573206469616d206e65632c20756c74007269636573206f7263692e2041656e65616e2066617563696275732c207361007069656e20757420706f72747469746f7220616c69717565742c206e756e6300206572617420636f6e6775652061756775652c2071756973206469676e69730073696d2073656d20697073756d206574206469616d2e2053757370656e646900737365206772617669646120657569736d6f6420697073756d2c206120696d0070657264696574206e756c6c6120636f6e7365717561742061632e2050726f00696e207175697320636f6e73657175617420697073756d2c20696e20737573006369706974206e657175652e204e616d207669746165207669766572726120006c656f2e2041656e65616e20756c74726963657320706c6163657261742062006c616e6469742e20496e7465676572206e6571756520617263752c2066616300696c697369732073697420616d6574206f726369207365642c2076657374690062756c756d206672696e67696c6c6120746f72746f722e2050656c6c656e740065737175652066657567696174206575206c6967756c612065676574206c6f00626f727469732e20536564206575206d6f6c6c69732065782c20696e206461007069627573206c616375732e20467573636520616c697175616d2c206e657100756520636f6e73657175617420666163696c6973697320706c616365726174002c20697073756d206f72636920696163756c6973206a7573746f2c20696d700065726469657420706f7375657265206d61676e61206f64696f206e6563207500726e612e20437572616269747572206d6f6c6c69732c20657820696e2066610063696c6973697320766f6c75747061742c206e697369206a7573746f20656c00656966656e64206c696265726f2c20612070656c6c656e7465737175652065006e696d206d61676e612071756973206e6962682e204d617572697320756c7400726963696573206469616d2065676574206c616375732070756c76696e6172002c20657420636f6e64696d656e74756d206e6962682073656d7065722e0a0a00566976616d757320746f72746f72207175616d2c20616c697175657420696e00206e756e632075742c206f726e61726520756c74726963696573206e65717500652e2050656c6c656e74657371756520637572737573206163206a7573746f0020766974616520756c747269636965732e20446f6e65632065676574206e6900736c2071756973206f726369206772617669646120766f6c75747061742065007420696420656e696d2e2053656420706f72747469746f72206c616375732000717569732073656d20756c74726963657320666163696c6973697320757420006567657420656e696d2e20416c697175616d20696163756c6973206572617400206e6563206d617373612072686f6e6375732068656e6472657269742e2041006c697175616d206f726e6172652070686172657472612075726e612065752000617563746f722e20566976616d7573206964206469616d206120617567756500206567657374617320636f6e6775652e205072616573656e742068656e647200657269742073617069656e20696e206f72636920636f6e6775652c20656765007420636f6e6775652073617069656e20696d706572646965742e205365642000617563746f7220657374206163206c7563747573206c6163696e69612e2049006e7465676572206e65717565206e657175652c20656c656966656e64207665006c206c656f2069642c20626962656e64756d20756c6c616d636f72706572200073656d2e20566573746962756c756d2076656c20666163696c6973697320650073742e20536564207175697320766f6c7574706174207475727069732e0a0a004e616d206d6174746973206d6f6c6573746965206d61676e612c2076697461006520636f6e736571756174206d657475732e204e616d206d6178696d75732000657569736d6f6420656c6974206e6563206f726e6172652e204e756c6c6120006d6f6c6c697320696420707572757320717569732074656d706f722e205065006c6c656e7465737175652072686f6e63757320656765737461732066657567006961742e204475697320756c74726963657320656c6974207574206c6f7265006d2070756c76696e617220736f6c6c696369747564696e2e2043757261626900747572206672696e67696c6c612076756c7075746174652076656e656e61740069732e204d61757269732074656d706f7220617563746f722075726e612e0a000a496e206861632068616269746173736520706c617465612064696374756d0073742e204d616563656e617320617563746f72206d61747469732062696265006e64756d2e20566573746962756c756d2074656d7075732072686f6e63757300206c65637475732c2069642072686f6e637573206e69736c206d6178696d7500732061742e204475697320766172697573206672696e67696c6c6120617567007565206e656320666163696c697369732e204e756c6c6120696163756c69730020612070757275732065676574206665726d656e74756d2e20457469616d20006e6563207361676974746973206f7263692e205072616573656e74206d6174007469732066656c69732072697375732e204e616d206567657420656c656d65006e74756d206c6967756c612e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e2050686173656c6c75732065676573746173207000757275732070656c6c656e7465737175652c2070656c6c656e746573717565002076656c6974206e6f6e2c206772617669646120656c69742e0a0a53656420006e6f6e2074656d7075732070757275732e2053757370656e6469737365207000756c76696e6172206d65747573206e657175652c206e6f6e207472697374690071756520697073756d20706f727461206e6f6e2e205574206567657420747500727069732074696e636964756e742c2074656d706f722073656d2071756973002c2076656e656e61746973206d61676e612e20566573746962756c756d20690064206d6178696d75732072697375732e204475697320616c69717565742070006f73756572652066656c697320696e20706c6163657261742e2051756973710075652076656c6974206f64696f2c20656666696369747572206174206d617300736120612c20747269737469717565206f726e61726520646f6c6f722e204e00756c6c616d206567657374617320706c61636572617420647569207574207300656d7065722e20416c697175616d20717569732073617069656e206d65747500732e204475697320656c656d656e74756d2c2065726174206e656320626c61006e6469742072686f6e6375732c2065726f7320656e696d207363656c65726900737175652061756775652c206e656320766976657272612065726f73206c65006f206575206c656f2e204d6f7262692073656420666163696c69736973206a007573746f2e20566976616d75732073697420616d6574206d61676e61206865006e647265726974206c656f206772617669646120617563746f722e0a0a4e75006e632063757273757320616c6971756574206f64696f2e204e756e632069610063756c69732065742074757270697320617420756c747269636965732e204e00616d2076756c70757461746520656e696d2065676574207075727573207465006d707573206f726e6172652e204e756c6c616d20636f6e736571756174206d006f6c6573746965206469616d2c20766974616520756c747269636573206e6900626820706f72747469746f722065742e20566573746962756c756d20766f6c007574706174207574206c6f72656d20656765742070656c6c656e746573717500652e204e616d2064617069627573206c696265726f206d692e2050656c6c65006e7465737175652074696e636964756e74206e696268206e657175652c20610020696e74657264756d206c6f72656d20636f6e6775652076656e656e61746900732e2050686173656c6c757320696e2073656d206574206d617373612066610075636962757320616363756d73616e2074696e636964756e742076656c206e006962682e0a0a4e756c6c61206d616c657375616461206e69736c206e69736c002c206575206d6f6c657374696520697073756d206d6f6c6c69732065676574002e20416c697175616d2076756c70757461746520707572757320736564206c006967756c6120736167697474697320616c69717565742e20496e20616c69710075616d206469616d20677261766964612072757472756d2070756c76696e6100722e20496e206d616c6573756164612075726e612065676574206f726e6172006520656765737461732e20566573746962756c756d20766974616520736365006c65726973717565206573742c206567657420766573746962756c756d206f007263692e2050656c6c656e746573717565206672696e67696c6c61206d616c0065737561646120706f73756572652e204e756c6c6120696e74657264756d20006c656f207669746165207072657469756d20706f73756572652e204e616d20006d6f6c6c69732065726f73207365642074656c6c7573206d6174746973207300616769747469732e0a0a53757370656e646973736520636f6e64696d656e7400756d206c6563747573206574206c6f72656d20657569736d6f6420637572730075732e204d6175726973206172637520617263752c2072757472756d20636f006e73657175617420707572757320696e2c206567657374617320696163756c006973206c696265726f2e204d6f726269207068617265747261206d6178696d007573206d617373612c206567657420626c616e64697420747572706973207000756c76696e61722065742e204d6175726973206e656320646f6c6f72207665006e656e617469732c2070656c6c656e746573717565206d61676e612069642c0020617563746f722075726e612e204d616563656e617320766976657272612000706f72747469746f72206e6973692c2076656c20756c74726963696573206500726174206375727375732061742e20467573636520636f6e6775652074656c006c75732076697461652073617069656e20747269737469717565206665726d00656e74756d2e20446f6e656320696d706572646965742073656d206e6f6e20006d617572697320756c7472696365732076656e656e617469732e20437261730020756c747269636573206c6f72656d206c656f2e2053656420736564207665006e656e61746973206e657175652c2076697461652065676573746173206665006c69732e205072616573656e7420617420616e746520706f7274612c20636f006e64696d656e74756d206c65637475732076697461652c20706f7274746974006f72206e657175652e204e616d2074656c6c7573206c616375732c20747269007374697175652074656d706f72206e756c6c61206e65632c20706c6163657200617420626962656e64756d2061756775652e204e756c6c616d20657569736d006f642076697665727261206f7263692c206575206772617669646120656e69006d20636f6e64696d656e74756d20626962656e64756d2e2053757370656e6400697373652065676574206c6f72656d20766974616520697073756d20706c610063657261742070656c6c656e74657371756520696420636f6d6d6f646f206f0064696f2e204675736365206d61747469732075726e61207574206475692063006f6d6d6f646f2c206e656320636f6d6d6f646f20647569207068617265747200612e0a0a496e206861632068616269746173736520706c61746561206469630074756d73742e204e616d206a7573746f206e6962682c207665686963756c61002061206c6967756c612065752c206d617474697320656c656966656e64206c006967756c612e205175697371756520656765742074757270697320612061750067756520747269737469717565206665726d656e74756d2e204e756c6c616d00207669746165206c61637573206d6f6c65737469652c207363656c65726973007175652061756775652061742c20656c656966656e64206e69736c2e204e75006c6c61206d61676e612065726f732c20636f6e76616c6c697320736564206f0064696f207363656c657269737175652c206c6f626f7274697320636f6e7661006c6c6973206e6962682e204e616d206174207361676974746973206175677500652c20657520766172697573206c6967756c612e204e756c6c616d20706f730075657265206d6178696d7573206e697369206e656320616c69717565742e2000457469616d207363656c657269737175652071756973206469616d20656765007420656765737461732e205072616573656e7420756c7472696369657320730063656c65726973717565206d69206e656320626962656e64756d2e2056657300746962756c756d20616c697175616d2074656c6c75732076656c206a757374006f206c616f726565742c207574207072657469756d2073656d206f726e617200652e204e616d20616e7465206e6962682c2066696e69627573206e6563207300617069656e20612c2076656e656e6174697320636f6e677565207269737573002e20496e2076656c206e65717565206120656e696d20636f6e7365637465740075722070656c6c656e7465737175652e20566976616d757320636f6e76616c006c697320657374207574206e756c6c6120736167697474697320706f7375650072652e2050656c6c656e74657371756520626962656e64756d20736f64616c00657320697073756d2065742068656e6472657269742e0a0a536564207269730075732066656c69732c20736f6c6c696369747564696e206575206d6f6c6573007469652065742c20657569736d6f6420656765742065782e20457469616d200065676574206e756c6c61206e6962682e2043726173206772617669646120610020746f72746f722076697665727261207661726975732e2050686173656c6c0075732066696e696275732c2073617069656e20657420616c697175616d2075006c7472696365732c206d61757269732065726f7320706f72747469746f72200065726f732c20616320636f6e677565206c656f206573742065676574206d6100757269732e20536564206e756e632076656c69742c2065676573746173207300656420656c69742065752c20657569736d6f64206d6178696d7573207361700069656e2e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b2000566573746962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071007569732076756c7075746174652061742c20736f6c6c696369747564696e200073697420616d6574206573742e205365642070756c76696e61722c2076656c00697420736564206469676e697373696d20766976657272612c206d617373610020646f6c6f722073656d706572206c6f72656d2c206e6f6e206d6f6c657374006965206d6175726973206f64696f2065742070757275732e204d616563656e006173206c6f626f7274697320696e74657264756d206e756e63207574206d6f006c65737469652e20536564206d6f6c6c697320636f6d6d6f646f2076656e65006e617469732e20496e74657264756d206574206d616c657375616461206661006d657320616320616e746520697073756d207072696d697320696e206661750063696275732e2055742073656420617263752076656c69742e204d617572690073206175677565206e756c6c612c206f726e617265206e656320616c697175006574207365642c20636f6d6d6f646f20696e206475692e0a0a496e74656765007220736f6c6c696369747564696e2075726e612065676574206e756c6c61200070686172657472612c206e6f6e20766172697573206e657175652070756c7600696e61722e204e756c6c61207574206c656374757320736564206d61757269007320756c6c616d636f7270657220706f7274612e2051756973717565206e650063206469616d207472697374697175652c2064617069627573206c65637475007320612c20616c697175616d206e6962682e2043757261626974757220616c006971756574206d6f6c6c69732073617069656e207574206d6f6c6573746965002e2050686173656c6c7573207361676974746973206e69736c20766974616500206d6178696d75732066617563696275732e20446f6e6563206d6178696d750073206120647569206575207661726975732e20457469616d2072686f6e6375007320746f72746f722076656c206e756e63206665726d656e74756d2070756c0076696e617220736564206e656320657261742e20416c697175616d20757420006c656f206e6f6e206e69736920646170696275732076756c7075746174652e0020496e746567657220616363756d73616e20636f6e6775652072686f6e637500732e2055742076756c707574617465206f64696f20656c69742c20707265740069756d2073656d7065722065726174207375736369706974206e65632e205300757370656e6469737365206d6174746973207475727069732076656c206572006f732070756c76696e617220756c7472696365732072757472756d207369740020616d657420616e74652e204475697320656c656966656e64206d6178696d00757320617567756520696e207363656c657269737175652e20446f6e656320006e6f6e20746f72746f722073697420616d657420657261742066617563696200757320616c69717565742e205365642074656d70757320747269737469717500652072697375732c207072657469756d20747269737469717565206475692000636f6e76616c6c69732065752e0a0a50686173656c6c757320616c69717561006d20747572706973206174206c656f20706f73756572652c207365642061630063756d73616e206e69736c2074656d7075732e204d616563656e6173207669007461652073617069656e206a7573746f2e2050686173656c6c75732074656d00707573206672696e67696c6c612070656c6c656e7465737175652e2050656c006c656e74657371756520617420646f6c6f72206964206d6175726973206c61006f7265657420637572737573206e6f6e2071756973206d657475732e204475006973206163206d69206e6f6e2074656c6c7573206461706962757320706f7200747469746f72206e6f6e206574206c6967756c612e20457469616d20736f6400616c65732069642074757270697320696e20756c747269636965732e205365006420616e7465206c616375732c2068656e64726572697420757420706f7274007469746f722075742c206665726d656e74756d207669746165206c656f2e0a000a4372617320706861726574726120616e746520616e74652c2076756c7075007461746520666575676961742072697375732066617563696275732065676500742e2050726f696e2073697420616d65742074656c6c75732072686f6e637500732c207665686963756c61206469616d206e6f6e2c206567657374617320650073742e2043726173207669746165206c696265726f206e657175652e20446f006e656320697073756d2066656c69732c20696e74657264756d2076656c20650067657374617320656765742c20616c6971756574206e65632065726f732e2000446f6e6563206e697369206d617373612c20766573746962756c756d207665006c20656e696d2065742c206461706962757320636f6e67756520697073756d002e205072616573656e7420647569206573742c20636f6e67756520766974610065206d6f6c657374696520717569732c206d616c657375616461206567657400206469616d2e20457469616d206e6f6e2076697665727261206f7263692e2000566573746962756c756d206d6f6c6c69732065726f73206174206c65637475007320706f72747469746f7220756c6c616d636f727065722e20496e2066657500676961742066656c6973206e656320657820756c7472696365732c2073656400206665726d656e74756d206a7573746f2066696e696275732e204475697320006e6f6e20706f7375657265206e657175652c20657420636f6e73657175617400206f7263692e20416c697175616d206575206a7573746f20756c747269636500732c2076656e656e6174697320746f72746f722061632c2072757472756d2000656e696d2e0a0a496e7465676572206469676e697373696d207175616d20650075206d61757269732066696e6962757320666163696c697369732e204d617500726973206c6163696e6961206a7573746f206c65637475732c2076656c206c007563747573207175616d20766f6c757470617420766f6c75747061742e20550074206e6f6e206f726369206e756c6c612e2041656e65616e20617563746f72002073617069656e206120726973757320656c656d656e74756d206d616c657300756164612e204e616d2065676574206c6563747573206c696265726f2e2041006c697175616d20697073756d206d617373612c20736f6c6c69636974756469006e20616320696163756c697320612c206d6178696d757320657520747572700069732e204d616563656e61732076656c206e756e632076656c2065726f732000766f6c7574706174207472697374697175652076697461652061742065782e002043757261626974757220657420656e696d206d6f6c6c69732c20707265740069756d20646f6c6f7220717569732c2068656e647265726974206c61637573002e20496e2074656d70757320657569736d6f6420646f6c6f722c206964206400696374756d206d657475732072757472756d20717569732e0a0a43757261620069747572207072657469756d206c6f626f72746973207363656c65726973710075652e204d61757269732076656c206d69206120697073756d20766568696300756c61207363656c657269737175652e204e756c6c6120666163696c697369002e20446f6e656320636f6e736571756174206f64696f206120657261742075006c6c616d636f7270657220666163696c697369732e2044756973206d617373006120656e696d2c20756c74726963696573206e6f6e2075726e612071756973002c20657569736d6f64207072657469756d20746f72746f722e20457469616d002068656e647265726974206c656374757320766974616520656c656d656e7400756d2076756c7075746174652e20496e74657264756d206574206d616c657300756164612066616d657320616320616e746520697073756d207072696d69730020696e2066617563696275732e20536564206f64696f206d61676e612c2063006f6e73656374657475722073697420616d657420706f727461207669746165002c20766976657272612061206d61676e612e20437261732065752069707375006d20656c656966656e64206f64696f20766976657272612072757472756d20006574206e6f6e206c6f72656d2e20517569737175652071756973206c656f2000757420726973757320756c6c616d636f72706572207375736369706974207600656c206e6563206469616d2e20467573636520646170696275732065726f7300206e6f6e206e69736c2066617563696275732c20657420656666696369747500722073656d20706c6163657261742e20566573746962756c756d20616e74650020697073756d207072696d697320696e206661756369627573206f72636920006c756374757320657420756c74726963657320706f73756572652063756269006c69612063757261653b20416c697175616d2069642073656d206163206c6f0072656d20706f72747469746f72206c616f7265657420616320717569732065006c69742e0a0a446f6e65632076656c20646f6c6f72206d6178696d75732c20006d6f6c6c6973206d61676e612073697420616d65742c207068617265747261002076656c69742e2041656e65616e2070656c6c656e74657371756520737573006369706974206c6563747573206174207665686963756c612e20446f6e656300206e6563206661756369627573206469616d2e204e616d20656765742064750069206575206d6175726973206461706962757320616c697175616d206469630074756d206575206d61757269732e20446f6e6563206c6563747573206d65740075732c206d6f6c657374696520636f6e73657175617420756c747269636965007320656765742c206c616f72656574206e6563206475692e20446f6e656320006575206c656374757320717569732076656c697420656c656d656e74756d2000657569736d6f642e204d616563656e617320626962656e64756d206c61637500732073697420616d657420736f6c6c696369747564696e206c6163696e6961002e0a0a5175697371756520737573636970697420706f73756572652070757200757320636f6e64696d656e74756d20706f7274612e20457469616d2068656e00647265726974207574206c696265726f20696e2072757472756d2e204e756c006c616d20756c74726963696573206c696265726f20657420647569206c6f62006f72746973206672696e67696c6c612e20496e746567657220757420656c690074206d61676e612e2051756973717565207665686963756c61206d6f6c6c690073206c656f2c206964207665686963756c61206d61676e6120616c6971756500742075742e20457469616d206e6f6e20706f72747469746f72206e69736c2c002073697420616d65742076756c707574617465206469616d2e2050726f696e00206e6571756520657261742c20737573636970697420656765742066656c69007320696e2c20677261766964612066696e69627573207175616d2e205068610073656c6c7573206d617474697320746f72746f722072697375732c2075742000656c656d656e74756d206d6574757320737573636970697420626962656e6400756d2e0a0a4e756c6c616d207175616d2065782c20706f72746120696e2070007572757320696e2c206d6f6c65737469652074726973746971756520646f6c006f722e20457469616d207472697374697175652072697375732076656c206c0061637573206672696e67696c6c612c206174206c75637475732075726e612000616c697175616d2e20416c697175616d2065752066656c69732066657567690061742c20696163756c6973206c6f72656d2073697420616d65742c2070756c0076696e617220697073756d2e204e616d2076697461652074696e636964756e0074206d61676e612e204d617572697320756c6c616d636f727065722c206d650074757320636f6e64696d656e74756d20736f64616c657320756c6c616d636f00727065722c2073656d2074656c6c757320636f6e7365637465747572206c6500637475732c2061742074656d7075732073617069656e206d6175726973207600656e656e61746973206d61757269732e2041656e65616e2076657374696275006c756d20646f6c6f722065782c2076656c2076697665727261206e69626820006d6178696d7573207365642e20457469616d20636f6d6d6f646f206d616c65007375616461206f7263692e204e616d20616363756d73616e206469616d206e006563206e756e6320766f6c7574706174206566666963697475722e20467573006365207072657469756d20697073756d206c656f2c207175697320696e7465007264756d206172637520736f6c6c696369747564696e20656765742e205065006c6c656e746573717565206d617474697320617420697073756d206567657400207072657469756d2e0a0a536564206c656f206d692c207068617265747261002073697420616d657420696d706572646965742065752c2074696e63696475006e7420657420746f72746f722e2055742071756973207072657469756d206d0061676e612c20657520616c697175657420697073756d2e2050726f696e2061006320756c74726963657320697073756d2c2076656c206d6f6c6573746965200073617069656e2e20457469616d20736f64616c6573206e6571756520616320006f726e6172652070686172657472612e204d6f7262692071756973206175670075652073697420616d65742075726e6120706c6163657261742070756c7669006e61722e204375726162697475722076617269757320666163696c69736973002072697375732c206964207375736369706974207175616d20696d7065726400696574206d616c6573756164612e20416c697175616d20646170696275732c0020697073756d2076656c20636f6e64696d656e74756d206d61747469732c20006c6967756c6120657374206375727375732074656c6c75732c20657520696e0074657264756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6100207175616d206e6973692c20706f737565726520657420616363756d73616e0020696e74657264756d2c2076756c707574617465206e6f6e2070757275732e00204e756e632076617269757320696d706572646965742066656c6973206e65006320696e74657264756d2e2050726f696e2076656e656e617469732061206c006967756c6120657420636f6e73656374657475722e2050686173656c6c757300206e65632065726f73206d6f6c6c69732c20756c7472696369657320656c690074206e6f6e2c206c6163696e6961206d692e2053757370656e646973736520006c6967756c6120617263752c206665726d656e74756d20617420617563746f007220717569732c20656c656966656e64207669746165206e69736c2e0a0a53006564206665726d656e74756d20707572757320696e206f64696f2070756c7600696e61722c20766573746962756c756d20656c656966656e64206573742063006f6d6d6f646f2e2046757363652076617269757320736564207475727069730020696e20666575676961742e20557420616320666163696c69736973206f6400696f2e20557420766f6c757470617420697073756d20646f6c6f722c20696e0020657569736d6f6420646f6c6f7220696e74657264756d2069642e20536564002073617069656e206573742c20696d70657264696574206575206f726e6172006520656765742c2074656d70757320656765742066656c69732e205068617300656c6c75732070656c6c656e7465737175652c206e756c6c61207369742061006d65742066696e6962757320677261766964612c207175616d206e69736c200064696374756d206a7573746f2c2073697420616d6574206672696e67696c6c0061206469616d206c616375732065676574206573742e20566573746962756c00756d20626c616e646974206d617572697320696e20616e7465206d6178696d00757320766f6c75747061742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e20566573746962756c756d2066656c6973200072697375732c2073616769747469732076656c20636f6d6d6f646f20736564002c20706f72746120617563746f722073656d2e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d616563656e6173206e65006320706f72747469746f722066656c69732e20446f6e656320656c656d656e0074756d2073656d206e756c6c612e0a0a416c697175616d20656c656d656e7400756d206575206c6f72656d206964206c75637475732e204e756e6320617420006e696268206573742e205072616573656e7420666175636962757320766172006975732065726174206e656320706f73756572652e204e756c6c616d20717500616d206c616375732c20766f6c7574706174206e6563206c616f7265657420006e6f6e2c20706f7375657265206163206c6967756c612e2050726f696e2071007569732065676573746173206e69736c2c20736564206c7563747573206665006c69732e204e756c6c61207072657469756d207175616d206e65632066696e006962757320656c656966656e642e20457469616d206d617572697320656e69006d2c2072686f6e6375732076656c206d616c657375616461207365642c2063006f6e64696d656e74756d2076697665727261206c696265726f2e20416c69710075616d207175616d2073656d2c2072757472756d2061742073617069656e20006e65632c206c616f7265657420666163696c69736973207475727069732e20004e616d206e65632074656d707573206573742e204d616563656e617320766100726975732c206e69626820617420636f6e73656374657475722074656d707500732c206e756e63206c6f72656d206672696e67696c6c6120617263752c2069006d706572646965742072757472756d206e69736c206475692061206175677500652e205072616573656e7420706c6163657261742073617069656e2073656400206d69206d6f6c6c697320666163696c697369732061206e6563207075727500732e205072616573656e7420736f6c6c696369747564696e2066656c697320006d617373612c2076656c206d6174746973206c656f2068656e647265726974002061632e2053757370656e646973736520657569736d6f642064696374756d002074696e636964756e742e0a0a416c697175616d2064617069627573206c6f0072656d20657520736f64616c65732066617563696275732e204e756c6c612000747269737469717565206f64696f2065742072697375732064696374756d2c0020756c74726963696573206c6f626f72746973206c6967756c61207361676900747469732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e204e756e632074656d7075732076656c206572617420766974610065206c6163696e69612e204e756c6c6120696e20656765737461732065726f00732e204e756c6c616d2076656c20646f6c6f722076656c2076656c69742070006c6163657261742076756c70757461746520696e20736564206c616375732e0020416c697175616d206c6f626f7274697320616e746520696e2074656c6c75007320696163756c69732c206120636f6d6d6f646f207175616d20616363756d0073616e2e2050726f696e2066657567696174206c6967756c61206964206e75006e632076756c70757461746520646170696275732e20457469616d20707265007469756d207669746165206475692073697420616d657420616c697175616d002e2041656e65616e206c6f626f727469732072757472756d206e6973692c2000612074656d7075732065726f7320666163696c697369732069642e204d617500726973206e6f6e2061726375206174206e6973692076697665727261206375007273757320657520616320646f6c6f722e0a0a4e756e6320696e206f64696f00206d692e204e616d206d617474697320736564206c6967756c61207369742000616d65742074656d706f722e20496e74656765722064696374756d207269730075732066617563696275732c2076656e656e6174697320616e74652065752c0020756c747269636573206d61757269732e20446f6e6563206e656320636f6e0064696d656e74756d2065782e2053656420666163696c69736973206f64696f00206475692c207669746165206672696e67696c6c61206d61757269732061750063746f72206e6f6e2e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e2053757370656e646973736520717569732074656c6c007573206c616f726565742c20756c7472696365732073656d206e65632c20730063656c6572697371756520656c69742e20536564207363656c65726973717500652065737420766f6c75747061742c20636f6e64696d656e74756d20616e74006520612c2076656e656e61746973206d617373612e204d6f726269206e65630020617563746f72206c65637475732c206163207072657469756d206e696268002e204675736365207363656c65726973717565206d61737361206e6f6e206300757273757320706f7274612e20566573746962756c756d206d65747573207000757275732c20636f6e736571756174206964206672696e67696c6c6120612c002074656d707573207068617265747261206c65637475732e2056657374696200756c756d20736f64616c6573206c6f626f7274697320756c7472696365732e000a0a4e616d2073697420616d657420626c616e646974206573742e204675730063652073697420616d65742074696e636964756e7420646f6c6f722e20446f006e65632076656c206e697369206c616375732e204d617572697320706f7375006572652075726e6120616320656c656966656e6420616c69717565742e205300757370656e6469737365206661756369627573206665726d656e74756d206c00696265726f2c20616320617563746f72206d617373612068656e647265726900742074656d706f722e20467573636520706f72747469746f72206172637520006163206c656374757320626962656e64756d20636f6d6d6f646f2e205365640020617563746f72206575206f64696f2076656c20616c69717565742e20436c0061737320617074656e742074616369746920736f63696f737175206164206c0069746f726120746f727175656e742070657220636f6e75626961206e6f73740072612c2070657220696e636570746f732068696d656e61656f732e2056697600616d7573206574206c756374757320656e696d2e20566573746962756c756d002074656d706f7220616e746520736564206d61747469732064696374756d2e002051756973717565207068617265747261206172637520656765742075726e006120756c74726963657320617563746f722e204d6f72626920656c65696665006e6420636f6e736571756174206d692069642068656e6472657269742e20460075736365206d617474697320616e746520636f6e64696d656e74756d20706f00737565726520736f64616c65732e20437572616269747572206c6f626f72740069732075726e612073697420616d6574206d61747469732065676573746173002e204d6175726973206665756769617420656c69742074656c6c75732c2075006c7472696369657320696d70657264696574206469616d2074656d707573200076656c2e0a0a566573746962756c756d206672696e67696c6c6120747269730074697175652075726e6120657520706f7274612e2050726f696e206665756700696174206e69736c207475727069732c207574206c6f626f727469732072690073757320696d706572646965742061742e2050686173656c6c7573207369740020616d657420616c69717565742066656c69732c20766974616520706f737500657265206d692e20416c697175616d2073616769747469732076617269757300206e696268206e6563206f726e6172652e2050656c6c656e746573717565200074696e636964756e742076697461652065737420657520616c697175616d2e00204475697320696163756c697320757420617263752073656420656c656d65006e74756d2e20467573636520616363756d73616e2c20646f6c6f72206e6f6e002074656d70757320616363756d73616e2c20646f6c6f72207175616d2061750063746f72206e657175652c2071756973206f726e61726520616e7465206c65006f2069642070757275732e2050686173656c6c75732073656420656c65696600656e6420656c69742e204372617320657520706f737565726520616e74652e0020496e20616e7465206c6f72656d2c2070686172657472612073697420616d00657420766573746962756c756d207365642c2072686f6e637573206964206a007573746f2e2055742074656d707573206469676e697373696d20766568696300756c612e204d616563656e6173206d61757269732076656c69742c2065676500737461732073697420616d6574207661726975732076697461652c2066616300696c697369732073697420616d6574206c6967756c612e0a0a4d6175726973002067726176696461206c656f2073697420616d6574206f7263692076656e65006e617469732c207574206d6178696d75732073617069656e20636f6e736571007561742e204d6f726269206e6563206f7263692065782e20566976616d757300207665686963756c61206469676e697373696d20707572757320736564207400696e636964756e742e20467573636520657569736d6f64206e6f6e20656e69006d20657420636f6d6d6f646f2e205072616573656e7420766f6c757470617400206d6f6c6573746965206f726e6172652e20566976616d757320636f6e6469006d656e74756d2076656c697420656c656d656e74756d2c207072657469756d00207475727069732065752c20626c616e6469742072697375732e204675736300652070656c6c656e746573717565206d6178696d7573206e697369206163200073656d7065722e20416c697175616d20757420657569736d6f642076656c6900742c2073656420656c656d656e74756d206c6f72656d2e204d616563656e610073206964207269737573206e6f6e206d61737361206772617669646120636f006d6d6f646f2e204e756c6c616d20696e20707572757320696420656c69742000666163696c6973697320636f6e6775652e2041656e65616e20636f6e677565002076756c707574617465206c616f726565742e20416c697175616d20656765007420656c69742074656c6c75732e205175697371756520737573636970697400207175616d206163206d6173736120626962656e64756d2065676573746173002e20416c697175616d2071756973206578206e6f6e2076656c697420736365006c6572697371756520756c6c616d636f727065722069642065676574206d6100676e612e2041656e65616e20612073656d206e6f6e2065726174206c6f626f007274697320636f6e6775652e0a0a43726173206e6f6e20647569206f64696f002e205175697371756520766f6c7574706174207363656c657269737175652000697073756d206174207661726975732e20536564206f726e6172652073656d00207365642076656e656e6174697320636f6e7365717561742e204475697320006f726e6172652076656e656e61746973206d6f6c6c69732e2053656420657800206e657175652c2065666669636974757220626962656e64756d20706c616300657261742065742c20736f6c6c696369747564696e2076656c206f7263692e0020496e7465676572206e696268206e657175652c20666163696c6973697320006e6f6e206d61757269732076656c2c20636f6e73656374657475722074726900737469717565206e756c6c612e204e756e632073697420616d657420706861007265747261206c656f2e204e756c6c616d206c656f206f7263692c20696d70006572646965742073697420616d657420696e74657264756d20717569732c2000696163756c6973206575206e69736c2e20416c697175616d2073656420747200697374697175652073656d2c206e6563206c6f626f7274697320746f72746f00722e204d616563656e617320736f64616c6573207075727573206e65632061006c697175616d20706f72747469746f722e20447569732075742066656c69730020657261742e0a0a437261732061206d6173736120696d706572646965742c0020616363756d73616e2072697375732069642c207375736369706974206e75006e632e20446f6e65632073656d70657220656e696d206575206d61676e612000636f6e7365717561742074696e636964756e742e2053757370656e64697373006520636f6e736571756174206c6563747573207669746165206d657475732000616c6971756574206c616f726565742e20436c61737320617074656e74207400616369746920736f63696f737175206164206c69746f726120746f72717565006e742070657220636f6e75626961206e6f737472612c2070657220696e63650070746f732068696d656e61656f732e20446f6e656320696e74657264756d20006469616d206174206e69626820616363756d73616e2c20657420617563746f0072206d61737361206c6163696e69612e20467573636520696420657820766900746165207269737573206c616f7265657420706f72746120636f6e64696d65006e74756d206567657420656e696d2e2050686173656c6c7573206c656374750073206f64696f2c20666163696c6973697320612074656d707573207365642c0020736f64616c6573206575206475692e204e616d20696e206d616c65737561006461206f64696f2e205175697371756520706c61636572617420697073756d002076656e656e617469732072697375732074656d707573206661756369627500732e2050656c6c656e74657371756520656c656d656e74756d20646f6c6f72002071756973206672696e67696c6c612074656d7075732e20457469616d207400696e636964756e7420766172697573206c6f72656d20696e206f726e617265002e204e616d206120656c656d656e74756d206f7263692e2050686173656c6c0075732067726176696461206e69736c20657520656c697420756c74726963690065732c20657420626962656e64756d2074656c6c75732066696e696275732e000a0a4372617320626c616e6469742070756c76696e6172206d657475732c2000616320696e74657264756d2066656c6973206d6178696d757320626962656e0064756d2e2041656e65616e20626962656e64756d20696d706572646965742000636f6e64696d656e74756d2e204e616d206e6f6e206c61637573206c696775006c612e20517569737175652073656420766573746962756c756d207361706900656e2e20536564207665686963756c612074696e636964756e74206c656f200071756973206c6163696e69612e20536564206c61637573206c6f72656d2c2000756c747269636573206e6563206c6f72656d207365642c20706c6163657261007420766f6c7574706174206d657475732e205365642075742073656d207369007420616d657420746f72746f7220756c747269636573207375736369706974002076656c206174207475727069732e0a0a5574207669746165206175677565002073697420616d657420656c69742070756c76696e61722068656e64726572006974206e65632061206c6967756c612e20446f6e656320706f727461206e6900736920636f6d6d6f646f20616e7465207665686963756c612073656d706572002e2055742066696e696275732c20707572757320757420666175636962757300206d6f6c6c69732c2066656c6973206e65717565206d616c65737561646120006e6962682c2061632076656e656e61746973206e756c6c612076656c69742000612066656c69732e204d617572697320677261766964612c206c6967756c6100206964206c6163696e696120766976657272612c206a7573746f206c69626500726f20766172697573206c6967756c612c2073697420616d657420706f72740061206c6f72656d206c696265726f2061206d657475732e20416c697175616d0020756c6c616d636f72706572206d61757269732073617069656e2c2061206700726176696461207075727573207363656c6572697371756520717569732e20004e756c6c616d2072757472756d20746f72746f722073697420616d6574206f0064696f20656666696369747572207072657469756d2e2044756973206c616f0072656574206566666963697475722076656c69742c20612073656d706572200066656c69732e2050726f696e206e696268206c616375732c20637572737573002073697420616d6574206c656374757320717569732c2065666669636974750072207665686963756c61206475692e20446f6e65632061726375206c656f2c002072757472756d2075742063757273757320696e2c207363656c6572697371007565206574206c616375732e204d616563656e61732074696e636964756e740020617263752061206e6571756520666575676961742c2076656c206469637400756d206e69736c2073656d7065722e20446f6e6563206e756e632076656c6900742c20636f6d6d6f646f20696420746f72746f722076697461652c20616c690071756574206661756369627573206c6f72656d2e2041656e65616e2076617200697573206d61747469732073617069656e2065676574206d6f6c6c69732e2000446f6e65632076697461652075726e6120756c6c616d636f727065722c20640069676e697373696d20656e696d2076697461652c20766573746962756c756d00206d657475732e2050686173656c6c757320636f6e7365637465747572206500726f7320696d706572646965742c20677261766964612065726f732069642c00206d6f6c6c69732076656c69742e0a0a5574206163206c6163757320636f6e0076616c6c69732c207665686963756c61206e6571756520717569732c2065660066696369747572206f7263692e205574206d69206c616375732c206566666900636974757220657420736f6c6c696369747564696e2075742c206661756369006275732073697420616d657420616e74652e2053656420636f6e64696d656e0074756d206567657420656c697420617420677261766964612e20457469616d00206e6563206e69736c2073656420656e696d20706f72746120706c616365720061742e205072616573656e74206672696e67696c6c6120736167697474697300206c656f2c2076656c2074656d706f72206f64696f206d6f6c6c69732076690076657272612e20566573746962756c756d2066696e69627573206a7573746f002072697375732c2065752073656d706572206475692066696e69627573206100632e204d617572697320706c616365726174206c6563747573206e6973692c00206e6f6e20766573746962756c756d20746f72746f72206d6174746973206100632e204e756c6c61206e656320626962656e64756d207175616d2e0a0a53650064206574206469616d2065676574206c696265726f2070756c76696e617220006672696e67696c6c6120756c74726963696573206964207475727069732e20005072616573656e7420657520656e696d206672696e67696c6c612c20706c61006365726174206172637520696e2c20766573746962756c756d206e65717565002e20457469616d207665686963756c6120657261742064696374756d206e6900626820657569736d6f6420736f6c6c696369747564696e2e20507261657365006e74206e65632074757270697320616c69717565742c206c6f626f7274697300206c656f20717569732c207665686963756c61207175616d2e205068617365006c6c75732073656420626962656e64756d206e6973692e204d616563656e61007320696420646f6c6f72206567657420616e746520626c616e6469742064610070696275732e20446f6e656320656c656d656e74756d20736564206e696268002065752073616769747469732e20467573636520636f6e6775652073656d20006c6f72656d2c206e6f6e206672696e67696c6c61206f64696f20617563746f007220612e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b20004d616563656e61732073656420636f6e7365637465747572206a7573746f2e0020536564206566666963697475722061207175616d2073697420616d657420006d6178696d75732e0a0a416c697175616d20636f6d6d6f646f20616e746520006574206d6f6c657374696520706f72747469746f722e204d616563656e61730020766f6c7574706174206e69736c207363656c657269737175652c206c6f62006f72746973206d61757269732061632c2064696374756d206d617373612e200050686173656c6c7573206d616c657375616461206c6163696e6961206f6469006f2069642066696e696275732e204d616563656e61732061206d61676e6120006f64696f2e20467573636520697073756d2075726e612c2073616769747469007320666175636962757320616e7465207365642c20756c747269636573206400617069627573206d61757269732e2053757370656e6469737365207574206f0064696f20717569732073656d206461706962757320616c697175616d20696e0020696420646f6c6f722e205574206d61747469732071756973206f64696f20007669746165206c6f626f727469732e20416c697175616d20616320746f7274006f72206163206d657475732073656d70657220766976657272612e20416c69007175616d206e65632064696374756d206d617373612c2076656c2073757363006970697420656c69742e2044756973207365642073656d206575206e6962680020636f6e736563746574757220696163756c69732076656c207574206175670075652e2044756973207669746165206c75637475732075726e612e204e616d00206e756c6c61206e6962682c20626c616e6469742073697420616d6574207300656d7065722076697461652c206d6f6c6c6973206c6f626f72746973206e75006e632e2053656420757420666175636962757320746f72746f722c20656765007420696163756c6973206f7263692e20496e206120626c616e64697420647500692c206174207068617265747261206d657475732e20457469616d2068656e00647265726974206c696265726f207669746165206c656374757320737573630069706974206f726e6172652e2051756973717565206d6174746973206c6163007573206174207068617265747261207661726975732e0a0a4d616563656e61007320666163696c6973697320656c697420756c74726963657320707265746900756d206c6f626f727469732e2046757363652076656c20766573746962756c00756d20657261742e20457469616d206175677565206d617373612c20666575006769617420766974616520657261742061632c206c6f626f7274697320766f006c7574706174206d61676e612e20446f6e6563206d616c6573756164612073006564206c6967756c6120717569732066696e696275732e204e756c6c616d20006566666963697475722076697665727261206475692c206e6f6e2076657374006962756c756d20746f72746f7220696e74657264756d2076656c2e2050726f00696e20616e7465206573742c20626c616e64697420696e207363656c65726900737175652073697420616d65742c20756c74726963696573206e6563206572006f732e205365642065726174206e69736c2c2067726176696461206574207400656d706f722065742c206665726d656e74756d2073697420616d6574206578002e2053656420656666696369747572206d6920766974616520657569736d6f0064206672696e67696c6c612e2053757370656e646973736520656765742061007563746f72206e6962682e20446f6e6563206e656320706861726574726120006f64696f2c2068656e64726572697420636f6e64696d656e74756d20646f6c006f722e0a0a4d6f72626920696d706572646965742c206469616d206e6563200076756c7075746174652072757472756d2c20746f72746f72206c6f72656d2000696e74657264756d20616e74652c207669746165206375727375732074757200706973206f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265006574207669746165206d61676e612073697420616d657420617563746f722e00204372617320617563746f72206e69736c2071756973207661726975732063006f6d6d6f646f2e204d6175726973206174206c6163696e6961206e756c6c61002e20566573746962756c756d20666575676961742073656d206174206d61730073612066617563696275732064696374756d2e2046757363652076656c207300617069656e2073697420616d6574206a7573746f2073757363697069742061006363756d73616e2075742076656c206f7263692e204e756c6c612066616369006c6973692e204e756c6c616d20736f6c6c696369747564696e20737573636900706974206e6973692c20657520616363756d73616e206d6574757320636f6e00736563746574757220766573746962756c756d2e2051756973717565207465006c6c7573206d657475732c2073656d7065722074656d707573206d657475730020717569732c2064696374756d20656c656d656e74756d2066656c69732e200053757370656e646973736520636f6e76616c6c697320707572757320616320006c61637573207072657469756d2c20616320616c697175657420657374206600696e696275732e2050656c6c656e74657371756520626962656e64756d20700075727573206d61676e612c2073697420616d657420637572737573206e65710075652066657567696174206e6f6e2e2043757261626974757220696e206d610078696d7573206a7573746f2e2041656e65616e20696163756c6973206c616300696e69612072686f6e6375732e0a0a536564206672696e67696c6c61207365006d206163206d61737361206d616c6573756164612c206d617474697320696d0070657264696574207175616d2073757363697069742e2043726173206c616300696e69612061632065782076697461652072757472756d2e20536564206578002066656c69732c20706f727461206e656320617263752061632c2066696e6900627573206c7563747573207475727069732e204475697320697073756d206c00696265726f2c20696e74657264756d20757420696e74657264756d2075742c0020656c656d656e74756d206163206a7573746f2e204d6f7262692074726973007469717565206c6f626f7274697320706c6163657261742e2050656c6c656e007465737175652074696e636964756e742074656d70757320656e696d2061740020636f6e6775652e204e756c6c61206d61747469732074696e636964756e7400206e6973692c2061742072686f6e63757320616e746520656c656966656e64002068656e6472657269742e204e756c6c616d2064696374756d20706861726500747261206475692e20566573746962756c756d206c75637475732065737420007574206175677565207472697374697175652c2073697420616d657420656c00656d656e74756d2074656c6c757320656c656966656e642e20496e746567650072206e6563206f726e617265206a7573746f2c207175697320706f72746120006469616d2e2051756973717565206e6f6e206e697369206e6f6e206c6f7265006d2070756c76696e617220706f73756572652061206567657420656c69742e00205365642065676574206c6163696e69612073656d2e2050686173656c6c750073206e6f6e206e756c6c612074656d7075732c207363656c6572697371756500206c696265726f2076656c2c207068617265747261206e6962682e0a0a5375007370656e6469737365206469676e697373696d20636f6e67756520657374200069642070686172657472612e20447569732076697461652066656c69732069006e206c656374757320666163696c6973697320706861726574726120736564002061632070757275732e2050656c6c656e7465737175652076656e656e617400697320706c616365726174206d61757269732c206120626962656e64756d20006d6175726973206566666963697475722076697461652e204d6f7262692065006666696369747572206d65747573206575207363656c65726973717565206600617563696275732e20566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2041656e65616e20696e74657264756d20666163696c6973697320710075616d20717569732066617563696275732e20566573746962756c756d2061006e746520697073756d207072696d697320696e206661756369627573206f72006369206c756374757320657420756c74726963657320706f73756572652063007562696c69612063757261653b205072616573656e74206c6f626f7274697300206d61676e612071756973206e697369206d616c657375616461206d617869006d75732071756973206e6f6e206c6f72656d2e20437572616269747572206e006f6e206e756c6c612073697420616d657420657261742074696e636964756e007420666163696c6973697320617420657420746f72746f722e204d6f72626900206964206175677565207669766572726120697073756d2070756c76696e610072207363656c657269737175652071756973206e65632076656c69742e204e00616d2076656c206f64696f20636f6d6d6f646f2c20706f72746120617263750020696e2c20666163696c697369732073617069656e2e204e756e63207369740020616d65742076656e656e6174697320657261742c206174206c616f72656500742061756775652e20446f6e656320617563746f722070757275732071756900732074656d706f7220666575676961742e20496e2071756973206c6f72656d002065676574206e756e63206c6163696e696120646170696275732e20446f6e00656320696163756c6973206573742076656c2072686f6e63757320616c69710075616d2e0a0a4d6f726269206d61676e61206f64696f2c2076656e656e61740069732076697461652073656d2069642c20646170696275732074656d70757300206e756e632e204d6f7262692066617563696275732074656d706f72206d610078696d75732e205175697371756520657520696d70657264696574206d6167006e612c20696420616c697175616d2075726e612e20446f6e6563207574206c00696265726f206475692e20457469616d206d6174746973206e756c6c6120710075697320617567756520696e74657264756d2c2061206d6f6c657374696520006f726369207472697374697175652e20446f6e6563206e656320756c6c616d00636f72706572206e6962682c2061742074696e636964756e74207075727573002e204475697320626c616e646974206e69626820756c74726963696573206f0072636920616363756d73616e20736f6c6c696369747564696e2e20446f6e6500632069642061756775652071756973206e65717565206c616f72656574206f00726e6172652e204e756e632072757472756d206a7573746f2075742065676500737461732068656e6472657269742e20437261732074656d70757320696e20006d617572697320612074696e636964756e742e0a0a557420706f7274746974006f722074656d70757320616c697175616d2e204d616563656e617320677261007669646120636f6e736571756174206d692c2065742074726973746971756500206c6f72656d20666575676961742073697420616d65742e20507261657365006e7420736564206d6178696d7573206f64696f2c206567657420636f6e736500637465747572206c616375732e20416c697175616d20647569206e65717565002c207669766572726120636f6e73657175617420636f6e6775652076656c2c0020636f6e736571756174206964206f7263692e2041656e65616e2066696e69006275732065782073656d706572206e69736c206d61747469732c207175697300206c756374757320656e696d206c6163696e69612e2050726f696e20696420006d61737361206d61757269732e20496e74656765722065752061726375206c006163696e6961206c656374757320657569736d6f64206c75637475732e2049006e20766f6c7574706174206e6f6e206d657475732073697420616d65742063006f6e76616c6c69732e204e616d206c6967756c61206d657475732c20666572006d656e74756d2065752074656c6c75732069642c20656c656966656e642076006172697573206e657175652e204675736365206175677565206c6f72656d2c0020706861726574726120612073656d2076656c2c20636f6e64696d656e7475006d206d617474697320646f6c6f722e2046757363652073656d706572206e6900736c20696e2075726e612073757363697069742c206567657420707265746900756d206a7573746f20736f6c6c696369747564696e2e0a0a496e7465676572002076697461652072686f6e637573206573742c207175697320626962656e6400756d2072697375732e20457469616d206d616c657375616461206175677565002065752074656d70757320636f6e76616c6c69732e205175697371756520710075697320656c697420666575676961742c20756c6c616d636f72706572206e0069626820696e2c206c7563747573206d617373612e2050686173656c6c75730020636f6e76616c6c69732073617069656e2076656c206c616375732074696e00636964756e742c206e656320657569736d6f64206573742070656c6c656e740065737175652e20416c697175616d20706f727461206a7573746f206120756c00747269636965732068656e6472657269742e204d6175726973206c756374750073206175677565206575206c656374757320646170696275732c2075742070006f72746120656c69742070656c6c656e7465737175652e20496e74656765720020736564206d61676e6120757420646f6c6f722074696e636964756e7420660072696e67696c6c61206964206174206475692e204d6f72626920656c65696600656e642072697375732073697420616d6574206d61676e612074656d707573002c207665686963756c61206c6f626f72746973206f72636920736f6c6c69630069747564696e2e204e616d2065742074656d706f72206d61676e612e204d6f007262692071756973207072657469756d2072697375732c2075742076656e65006e617469732074656c6c75732e204d617572697320706f72746120646f6c6f007220657420636f6e73656374657475722068656e6472657269742e204e616d002070656c6c656e7465737175652065676573746173206f64696f207472697300746971756520677261766964612e2050656c6c656e74657371756520696420006665726d656e74756d206469616d2e20496e20636f6e736563746574757220006d692076656c206c696265726f20657569736d6f642064696374756d2e2044006f6e656320736167697474697320616e7465206d617373612e20507261657300656e74206163206175677565206e657175652e0a0a536564206d6173736120007475727069732c20636f6e76616c6c69732065676574207665686963756c61ba020000002065752c20636f6e64696d656e74756d20736564206d657475732e205365640020636f6e64696d656e74756d20766f6c7574706174206573742c2076656c200070756c76696e6172206e69736920736f6c6c696369747564696e206e6f6e2e0020496e7465676572207574206d61676e6120657420746f72746f72206469630074756d20636f6e64696d656e74756d20696e20706f727461206573742e2049006e2073697420616d65742061756775652065782e204e756e632076657374690062756c756d206964206c616375732076656c2070756c76696e61722e205072006f696e2070756c76696e6172206d6173736120757420616e7465206d617869006d75732c207669746165206c7563747573207175616d20656765737461732e002044756973206d6178696d757320616e74652073697420616d6574206d616c00657375616461206469676e697373696d2e204675736365207574206c656f2000626c616e6469742c20666163696c69736973206d657475732061742c20636f006e736571756174206c696265726f2e20437261732076656e656e6174697320006e69736920656765742075726e61206665726d656e74756d2c206174206669006e69627573207175616d20696163756c69732e20517569737175652076656c00206c6f72656d2065782e2050726f696e206a7573746f2066656c69732c20730063656c6572697371756520736564206f64696f2069642c20666575676961740020736f6c6c696369747564696e207175616d2e20496e74656765722076617200697573206f7263692073697420616d65742076756c7075746174652068656e006472657269742e204d6f726269206d6178696d75732c2065726f73206e6f6e0020636f6e7365717561742066696e696275732c207175616d206e6962682075006c6c616d636f72706572206475692c20616320696e74657264756d2073656d0020616e746520766974616520746f72746f722e204375726162697475722076006974616520706861726574726120656e696d2e20437261732073757363697000697420636f6e677565206c656f2c20696e20736f6c6c696369747564696e20006e697369207472697374697175652061742e20566976616d757320706f7274007469746f7220746f72746f7220636f6e64696d656e74756d2c20696163756c006973206c6967756c612075742c207472697374697175652065726f732e0a0a00496e206575206c756374757320616e74652e204d6f726269206d6178696d7500732075726e61206e6f6e206c6967756c6120706f73756572652c206120766f006c7574706174206f7263692073616769747469732e204e616d20617420656c0069742065676574206d692066696e696275732073656d70657220756c747269006365732073656420616e74652e205072616573656e742065752073656d70650072206f7263692e204e616d2071756973206469616d206e65632065737420650066666963697475722073656d7065722e204d6f7262692073697420616d657400206f64696f2070656c6c656e746573717565206e69736c20626c616e6469740020736f64616c65732e20447569732067726176696461206964206c6f72656d0020657520616c69717565742e205365642065726f73207475727069732c207300757363697069742073697420616d657420736f64616c6573207365642c2066006163696c69736973206574206573742e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e20566976616d75732073656d7065722074656d706f0072207661726975732e20416c697175616d20696420616c697175616d20646900616d2e0a0a416c697175616d20746f72746f72206573742c206c7563747573002065752075726e6120717569732c2074656d7075732068656e6472657269740020617263752e20566573746962756c756d2073697420616d657420656c656d00656e74756d206c656f2e2053757370656e64697373652071756973206e756e006320612073617069656e2068656e64726572697420696d706572646965742e002053656420696e2065676573746173206c696265726f2e20446f6e65632063006f6e6775652073697420616d6574206e6571756520646170696275732065750069736d6f642e204675736365207363656c657269737175652076656c20707500727573206964207363656c657269737175652e2050726f696e2076656c2070006f72747469746f72206e69736c2e0a0a4d6f726269206964206475692065670065742074757270697320696163756c697320636f6e6775652e204e756c6c61006d20617563746f722c206c6967756c61206567657420636f6d6d6f646f20700072657469756d2c206c696265726f206e756c6c6120756c7472696369657320006f64696f2c2075742072757472756d2061726375206172637520696e206e690073692e204d61757269732065676574206c6163757320696e20657820766172006975732073616769747469732073656420696e20656c69742e204d617572690073206d6f6c6573746965206f64696f206574206f7263692070686172657472006120706c6163657261742e20496e746567657220696e20747572706973206500676574206c696265726f20636f6e7365637465747572206c6f626f7274697300206575206e6f6e206c616375732e204d616563656e61732064696374756d20006c656f2074656d707573206c61637573206d617474697320736f64616c6573002e20446f6e6563206a7573746f206f64696f2c2074696e636964756e7420610063206172637520656765742c20666175636962757320706f73756572652064006f6c6f722e205072616573656e742065676574206e756e63206e6563206665006c697320696e74657264756d2072686f6e6375732e20566573746962756c75006d20656c656d656e74756d206461706962757320636f6e7365637465747572002e2053757370656e6469737365206964206e756e63206d61747469732c206c007563747573206e6962682073697420616d65742c20636f6e64696d656e7475006d2065782e20496e7465676572206f726e6172652075726e6120766974616500206e697369206c7563747573206469676e697373696d2e2041656e65616e200074696e636964756e742068656e647265726974207269737573206e6f6e2061006363756d73616e2e204e756c6c6120617420736f64616c6573206e69736c2e0020496e74656765722068656e647265726974207669746165206d61676e61200076697461652073757363697069742e20437261732064617069627573206c65006374757320736564206c656f207363656c657269737175652073656d706572002e204d61757269732061207269737573206e756c6c612e0a0a5365642069610063756c69732c206c656f20757420766573746962756c756d206672696e6769006c6c612c2066656c69732073617069656e20636f6e76616c6c6973206c6563007475732c2076656c206c616f72656574207175616d206f7263692061206d6100757269732e204e756c6c616d20657520616363756d73616e2073617069656e002e2050656c6c656e746573717565206d617474697320736f64616c6573206d0061757269732c20757420636f6e64696d656e74756d206d61676e6120636f6e006775652076656c2e2041656e65616e20706f72747469746f72206e6973692000616320657261742066617563696275732073757363697069742e205068617300656c6c757320656c656d656e74756d2074696e636964756e74207175616d20006e656320636f6e64696d656e74756d2e204375726162697475722066696e6900627573206e756c6c612076656c206c6163696e696120696d70657264696574002e204d616563656e61732066657567696174206d617474697320646f6c6f72002c206e656320616363756d73616e20697073756d2074656d706f722075742e002050686173656c6c757320617563746f7220666163696c69736973207275740072756d2e20536564207669746165206d69206e6f6e206f64696f2070656c6c00656e74657371756520626c616e64697420696e2061206d61676e612e0a0a5300656420696e206469616d20636f6e6775652c20636f6d6d6f646f20746f7274006f7220612c20657569736d6f64206c6967756c612e20496e2061632065666600696369747572206e756e632c2076656c20756c6c616d636f727065722069700073756d2e20416c697175616d2076656c206469616d206665726d656e74756d002c20736f6c6c696369747564696e20617263752065742c20656c656d656e7400756d2073617069656e2e2043726173206c656f206d657475732c2072686f6e006375732071756973206d617373612065752c20677261766964612069616375006c697320657261742e2043757261626974757220756c747269636573207369007420616d657420656e696d20757420617563746f722e2041656e65616e20610074206175677565206163206a7573746f2074656d70757320626962656e6475006d2073656420696d7065726469657420746f72746f722e204e756c6c616d2000736564206d61757269732073617069656e2e20447569732070656c6c656e740065737175652075726e6120696e2066696e69627573206d6f6c65737469652e00205072616573656e74206e6f6e207072657469756d206d61676e612c206e650063206c6163696e696120746f72746f722e2050726f696e2066617563696275007320656c656d656e74756d206c6f72656d2c2072686f6e6375732076756c7000757461746520657820616c69717565742061632e0a0a416c697175616d207400696e636964756e7420617263752073617069656e2c20616c697175657420730075736369706974206c656f20656c656d656e74756d2076697461652e204372006173206d617474697320617263752076656c206f726e617265206665726d65006e74756d2e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65007374696520657261742073656d7065722c20736564206c7563747573206e65007175652076756c7075746174652e2053757370656e6469737365206d616c650073756164612c20646f6c6f722076656c20756c74726963657320696d70657200646965742c206d69206e69626820756c74726963696573207475727069732c00206e6563207072657469756d206c696265726f20697073756d207669746165002072697375732e20416c697175616d20696e20636f6e677565206c61637573002c20666575676961742076756c7075746174652065726f732e20496e206c61006f72656574206e69626820696e2076756c7075746174652076657374696275006c756d2e205574206661756369627573206f726e617265206e756e63207369007420616d657420656c656966656e642e205072616573656e7420706c616365007261742073617069656e2076656c20656c69742074656d706f722062696265006e64756d2e204e756c6c612071756973207665686963756c6120617263752e002053757370656e646973736520736f64616c6573206c656f2061632075726e006120616c69717565742076756c7075746174652e20536564206d6f6c6c6973002c206c6163757320657520656c656966656e6420736f64616c65732c206d6100676e61206172637520766172697573206c656f2c20657520626c616e646974002066656c6973206572617420657420746f72746f722e205072616573656e74002074656d7075732073697420616d6574206d61676e61207669746165206f72006e6172652e20416c697175616d20656c656966656e642076656c206f64696f0020696420636f6e7365717561742e204d6175726973206574206e657175652000717569732073617069656e20706f737565726520756c74726963696573206500752073697420616d65742075726e612e20437261732072686f6e637573206500726f732076656c2073656d2070756c76696e61722066696e69627573206120006e6f6e2072697375732e0a0a536564206c6f626f72746973206f64696f20710075616d2c206e6f6e20637572737573206e756c6c6120616c697175616d206e006f6e2e20446f6e65632061726375206573742c20666163696c697369732069006e20666175636962757320612c2070686172657472612073697420616d657400206e69736c2e205175697371756520696163756c6973206c656f206e6f6e2000656c656d656e74756d20706c6163657261742e205365642076657374696275006c756d206c656f20616e74652c20616320636f6e76616c6c697320647569200073616769747469732069642e20496e20686163206861626974617373652070006c617465612064696374756d73742e20536564206d6f6c657374696520636f006e76616c6c69732066656c69732c20696e2070656c6c656e7465737175652000616e746520696e74657264756d20612e20566976616d757320706c6163657200617420656c656966656e6420616e74652e2050656c6c656e746573717565200073697420616d6574206f64696f207665686963756c612c207361676974746900732065737420656765742c20656c656d656e74756d206c6f72656d2e204d61007572697320656c6974206d61676e612c20636f6e6775652076656c2065726f0073206e65632c20696163756c6973206d616c65737561646120616e74652e2000566976616d757320696e20656666696369747572206f64696f2c20717569730020616c697175616d206e756c6c612e204e756c6c61207574206469676e69730073696d206475692e20496e206567657374617320666163696c69736973206c006f72656d2c206e6f6e20656c656d656e74756d20647569207665686963756c0061206e65632e204e756c6c61206d616c65737561646120706f72747469746f00722065782061206f726e6172652e204e756c6c61206e6f6e2076617269757300206f64696f2e2041656e65616e206e656320696d70657264696574207361700069656e2e20446f6e6563206e69736920617263752c2070756c76696e617220007072657469756d206d616c6573756164612061632c20706f72746120766974006165207175616d2e0a0a437572616269747572206d6f6c65737469652c206d006920696e74657264756d206c7563747573206375727375732c207269737573002073617069656e206c6f626f72746973206c656f2c206174206566666963690074757220617567756520656c6974207365642074656c6c75732e204e756e6300207375736369706974206c7563747573206e69736c2073697420616d65742000626962656e64756d2e20446f6e6563206e6f6e20637572737573207075727500732c206163206661756369627573206a7573746f2e2050726f696e2061756300746f7220766f6c7574706174206e756e632c20696e2074726973746971756500206e69736c20626962656e64756d2061742e2053757370656e6469737365200076656e656e61746973206e756e63206e69736c2c206e6563206772617669640061206c696265726f2074726973746971756520696e2e20517569737175652000706c6163657261742061206e69736c20616320706c6163657261742e204165006e65616e20756c74726963696573206c696265726f20696420697073756d200072686f6e6375732c2073697420616d657420616c697175616d20656e696d20006c75637475732e20447569732076656e656e6174697320646f6c6f72206574002074656c6c757320636f6e736571756174206c6f626f727469732e20446f6e00656320696e206469616d20706f73756572652c206665726d656e74756d207200697375732065742c2070756c76696e6172206e657175652e0a0a496e746567006572206e6563206e6962682065752074656c6c7573207072657469756d2069006e74657264756d206174206574206469616d2e204e756c6c612070656c6c65006e746573717565206f64696f20717569732065726f7320656765737461732000736f64616c65732e2043757261626974757220656765742074656d70757320006469616d2e2050656c6c656e74657371756520756c747269636965732061720063752065782c206120696d70657264696574206a7573746f20706f7375657200652076656c2e2050726f696e2076756c70757461746520736f64616c657320006d617373612061742070686172657472612e20496e7465676572206e6f6e20006d61737361207574206c6967756c6120666575676961742074656d7075732e0020517569737175652073616769747469732076656c206e756e6320757420740072697374697175652e2041656e65616e2075742074656d706f72206a757374006f2e20446f6e656320636f6e677565206e69736c20736564207175616d206d006f6c6573746965206d6f6c6c69732e204e756c6c616d20706c616365726174002c20747572706973206567657420677261766964612072757472756d2c206600656c69732076656c697420616c697175616d2065726f732c20696420656c65006d656e74756d206c6967756c612075726e6120696420657261742e204e756c006c61206e65632072686f6e6375732073656d2e205574206e656320766568690063756c612065782c2076656c2068656e647265726974206e657175652e2055007420706c6163657261742076656c69742076656c2076656c69742068656e640072657269742c207669746165206665726d656e74756d207269737573206d6f006c65737469652e0a0a4d6175726973206f726369206c65637475732c20696d0070657264696574207365642066696e69627573206e65632c20616c69717561006d2076656c206e6962682e20566573746962756c756d206672696e67696c6c006120616363756d73616e206e756e63206574206d6f6c65737469652e205574002065742065726174206a7573746f2e2050656c6c656e74657371756520677200617669646120617263752070757275732e2041656e65616e20696e206e6962006820766974616520617263752064696374756d2074696e636964756e74206900642065752066656c69732e205072616573656e7420657420656c697420696400206d6920636f6e736563746574757220616c697175616d2e2056657374696200756c756d20696e20656e696d2064696374756d2c20626962656e64756d206500726174206e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e0074657371756520636f6e76616c6c6973206f726369206e6973692c206e65630020756c74726963696573206f64696f20706f73756572652073697420616d6500742e0a0a4d616563656e61732073697420616d6574206665726d656e74756d00206e69736c2e20566573746962756c756d20616e746520697073756d20707200696d697320696e206661756369627573206f726369206c75637475732065740020756c74726963657320706f737565726520637562696c6961206375726165003b205072616573656e74206174206e756e6320696e206d61676e6120636f6e00736571756174207363656c657269737175652e204d616563656e617320696e00207175616d207574206a7573746f2074696e636964756e7420617563746f72002e2050686173656c6c757320757420646f6c6f72206d657475732e20496e200073656d706572206d6920736564206c6f72656d207068617265747261207268006f6e6375732e204675736365206567657420657374206c616f726565742c20007361676974746973206c696265726f2073697420616d65742c206665756769006174206e6962682e204d6f72626920646170696275732075726e6120616320007175616d206665726d656e74756d2072686f6e6375732e20446f6e65632063006f6e76616c6c697320657569736d6f64206469676e697373696d2e204375720061626974757220757420747269737469717565206c6967756c612e0a0a536500642072757472756d2074696e636964756e74207472697374697175652e204e00756e63206d69207175616d2c20637572737573206574207665686963756c610020656765742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e00656320617563746f722066696e69627573206f726e6172652e204d6f72626900207665686963756c612c206e69736c2076656c20636f6d6d6f646f20706f7200747469746f722c20646f6c6f72206e756e6320736167697474697320646961006d2c20656765742066617563696275732073617069656e2065782076656c20006d61676e612e204375726162697475722076656c206c6967756c61207369740020616d6574206c6967756c6120646170696275732066696e696275732e2045007469616d2073697420616d6574206c6f72656d206c65637475732e204e756c006c616d206665726d656e74756d206e69736c206c696265726f2c207669746100652074696e636964756e74207075727573206c6163696e696120717569732e00204d6f726269207574206d6f6c657374696520697073756d2c206575206d6f006c6573746965206c6967756c612e2050686173656c6c7573206574206c656300747573206a7573746f2e20566976616d7573206578206d61676e612c20636f006e7365717561742076656c206a7573746f2076656c2c2074656d706f722061006c697175616d20616e74652e205365642066696e6962757320736564206d6100737361207175697320636f6d6d6f646f2e20446f6e656320696e206e69626800206e65632074656c6c757320636f6e677565206469676e697373696d206567006574207669746165206e756c6c612e204475697320656c656966656e642070006c616365726174207269737573206120706c6163657261742e204d617572690073206e6563206c65637475732068656e6472657269742c207361676974746900732076656c697420636f6e64696d656e74756d2c206567657374617320647500692e0a0a4e616d20696163756c69732076656c697420717569732075726e610020706f7274612073616769747469732e2041656e65616e20636f6d6d6f646f00206e69736c206e656320697073756d206c6f626f727469732c20626962656e0064756d2065666669636974757220656e696d20636f6e64696d656e74756d2e002050726f696e206172637520656c69742c206665726d656e74756d2075742000656765737461732061742c206c616f726565742076656c206e69736c2e2049006e746567657220626962656e64756d20747572706973207574206469616d20006665726d656e74756d2c2065752074656d707573206c656f206672696e6769006c6c612e204d616563656e61732076656c697420617263752c20636f6e6469006d656e74756d20696d7065726469657420657261742065742c206661756369006275732076756c707574617465206c65637475732e2043757261626974757200206d6574757320656e696d2c206672696e67696c6c6120757420666163696c00697369732061632c20616363756d73616e20696e20697073756d2e204e756c006c616d207665686963756c61206c6163696e6961206d617373612c2076656c00206661756369627573206f64696f20636f6e64696d656e74756d2061742e20004d617572697320706f72747469746f722065726f73206d61676e612c20757400206d6178696d75732074656c6c7573206665726d656e74756d2069642e2056006976616d7573207574206c6563747573206f726e6172652c20706f7274746900746f72206469616d20656765742c20756c6c616d636f72706572206e696268002e20447569732076656e656e617469732074656d706f7220657261742c207500742076617269757320657374206c6f626f727469732076656c2e205068617300656c6c757320736564206578206c65637475732e205365642076656c207361007069656e20616c697175616d2c20696e74657264756d206475692069642c2000656c656966656e64206f7263692e0a0a5072616573656e74206174206c6f62006f72746973206d657475732e204e616d2074656d707573207175616d20647500692c206e6563206c7563747573206d617373612074696e636964756e742061002e2050656c6c656e74657371756520616363756d73616e2076656c697420750074206175677565206d617474697320636f6e76616c6c69732e205574206567006573746173206f64696f20656e696d2c206163207669766572726120616e74006520636f6e76616c6c69732075742e2041656e65616e20696e2064756920610074207175616d206665726d656e74756d2072757472756d2e20566976616d750073206567657420636f6e76616c6c6973206c65637475732e20457469616d2000657569736d6f64206672696e67696c6c6120746f72746f722c206e65632069006e74657264756d206a7573746f206d61747469732065752e204e756c6c616d00206d6178696d7573206e696268206469616d2c206575206c6f626f7274697300206a7573746f207072657469756d2076697461652e2051756973717565207400696e636964756e7420646f6c6f722061742075726e6120636f6e64696d656e0074756d2c207669746165206d616c6573756164612065737420706f7274746900746f722e2050656c6c656e746573717565207669746165206475692065782e0020566976616d757320766f6c757470617420697073756d207574207475727000697320656c656d656e74756d20706f7274612e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d617572697320736564200066656c6973206e756c6c612e205072616573656e742076656c207269737573002076656c69742e0a0a446f6e656320706f727461206174206469616d207365006d70657220616c69717565742e2041656e65616e20637572737573206c6f7200656d206e6f6e2076617269757320636f6d6d6f646f2e20536564206e65717500652065726f732c20656666696369747572206e6563206469616d20696e2c20007472697374697175652076697665727261206469616d2e2053757370656e64006973736520746f72746f72206475692c20657569736d6f64206e6563206e75006c6c612061632c20616c697175657420756c74726963696573206c6f72656d002e2050686173656c6c757320636f6e7365637465747572206575206573742000616320656765737461732e204e756e6320757420656c697420696e2070757200757320616363756d73616e20657569736d6f642e2043726173206c656f206f007263692c20677261766964612076656c20626962656e64756d20656765742c0020636f6e76616c6c697320696e2072697375732e2046757363652065676574002073656d7065722073617069656e2e0a0a536564206d6f6c65737469652070006c616365726174206c6967756c61206e656320766976657272612e20496e2000617420656666696369747572206d61676e612e204e616d2066696e6962757300206c6f72656d20657420726973757320756c747269636965732c2076656c2000637572737573206e65717565207363656c657269737175652e20496e7465720064756d206574206d616c6573756164612066616d657320616320616e74652000697073756d207072696d697320696e2066617563696275732e205365642069006e20656765737461732065726f732e2041656e65616e2074656d706f722c20006e69626820636f6d6d6f646f20626962656e64756d206c75637475732c207600656c6974206e756e6320696e74657264756d206f7263692c2073697420616d0065742074656d707573206c656f207075727573207669746165207269737573002e20457469616d207669746165207269737573206e6962682e2056657374690062756c756d206d6f6c65737469652063757273757320616e74652c206567650074206c6163696e6961206c656f206d6f6c65737469652076656c2e0a0a5375007370656e646973736520757420677261766964612073617069656e2e2056650073746962756c756d20616363756d73616e206e756e6320696e2064617069620075732073656d7065722e204e756e632076656c2073656d706572207175616d002e2050656c6c656e746573717565206861626974616e74206d6f72626920740072697374697175652073656e6563747573206574206e65747573206574206d00616c6573756164612066616d6573206163207475727069732065676573746100732e204675736365206d6f6c6573746965206672696e67696c6c61206c6f7200656d2c207175697320747269737469717565206d61676e6120756c6c616d63006f727065722073697420616d65742e2043757261626974757220766974616500206c6f72656d207574206a7573746f206c616f72656574207665686963756c00612061742061206469616d2e2053757370656e646973736520616c69717565007420636f6e73656374657475722065782c20757420636f6e736563746574750072206e6571756520636f6e7365637465747572206e65632e20496e74656765007220766974616520636f6e64696d656e74756d20746f72746f722e204e756e0063207365642073757363697069742073617069656e2e2050686173656c6c75007320656c656d656e74756d20657569736d6f642076656c69742c2065676574002064696374756d20646f6c6f7220756c6c616d636f727065722065752e0a0a0050686173656c6c75732061742064756920697073756d2e204e756e63206c75006374757320617563746f72206e69736c20657520617563746f722e20446f6e00656320636f6e76616c6c69732061726375206c6163696e6961206578207361006769747469732c20736564206f726e61726520616e7465206f726e6172652e00204e616d2074696e636964756e74206a7573746f207475727069732c2073650064206d617474697320616e746520736f6c6c696369747564696e207365642e0020536564206f726e61726520697073756d206e6962682c2061632074656d70006f72206d61676e612076617269757320696e2e204e616d206672696e67696c006c61206d61676e61206d692c2075742065676573746173206c6f72656d207600617269757320696e2e20536564206575206c75637475732073617069656e2e0020496e74656765722076656c206469676e697373696d20656c69742c2061740020706c616365726174207475727069732e20446f6e656320696e206e69626800206964206a7573746f206c6f626f727469732064696374756d2e20446f6e650063207068617265747261206f726369206e656320636f6e76616c6c69732073006f6c6c696369747564696e2e0a0a50656c6c656e746573717565207369742000616d6574206672696e67696c6c612073656d2c2061632073757363697069740020656c69742e20446f6e656320612074726973746971756520697073756d2c00206e6f6e20756c7472696365732065726f732e205072616573656e7420616c00697175616d20697073756d206567657420626962656e64756d20766f6c7574007061742e20447569732073697420616d6574206469616d20626962656e6475006d2c20617563746f72206e69736920656765742c206d6f6c6c697320746f7200746f722e204d61757269732065742076656c69742075726e612e205574206600656c6973206c65637475732c207072657469756d207365642074656d707573002073697420616d65742c206d6f6c6c6973207669746165206c65637475732e00204d61757269732073697420616d6574206f7263692065752074656c6c75730020666163696c697369732074696e636964756e742e20447569732068656e640072657269742066656c69732061206e6571756520617563746f7220636f6e670075652e204d6f726269206c6967756c61206573742c2070656c6c656e746573007175652076656c2073616769747469732065742c20666175636962757320650067657420656e696d2e0a0a517569737175652064696374756d206e6973692000696420736f6c6c696369747564696e207072657469756d2e20496e7465726400756d206574206d616c6573756164612066616d657320616320616e74652069007073756d207072696d697320696e2066617563696275732e2053757370656e006469737365207665686963756c612076656e656e617469732072697375732c00206174207665686963756c61206c616375732072757472756d206e6f6e2e200050656c6c656e746573717565206861626974616e74206d6f72626920747269007374697175652073656e6563747573206574206e65747573206574206d616c006573756164612066616d65732061632074757270697320656765737461732e0020496e207075727573206d617373612c206d6f6c657374696520696e206e6900626820612c2076656e656e6174697320626c616e64697420656c69742e205000686173656c6c75732073617069656e206469616d2c2074696e636964756e740020736f64616c6573206469616d2076697461652c20636f6e67756520736167006974746973206f64696f2e2043757261626974757220657569736d6f64206e00656320616e746520736564207072657469756d2e2050656c6c656e74657371007565206d6f6c65737469652076617269757320656e696d2c206e6f6e20666100756369627573206c656f2073616769747469732061632e20437572616269740075722071756973206d61757269732071756973206c6967756c6120756c6c61006d636f72706572206d616c65737561646120736564206575206c6563747573002e0a0a53757370656e64697373652076656c206d61676e61206469676e69730073696d2c2064696374756d206e657175652073757363697069742c2062696200656e64756d206c616375732e205175697371756520717569732066656c69730020617263752e2050686173656c6c75732065726174206c656f2c2073656d7000657220617420646f6c6f7220656765742c2076656e656e617469732072686f006e6375732065782e2043726173206d6f6c6c6973206e696268207365642061007567756520736f64616c65732c2073697420616d6574206d6f6c6c6973207000757275732070686172657472612e2043726173206e6563206d69207175697300206c656f20696d7065726469657420616363756d73616e20757420696420710075616d2e204e616d206e69736c20656c69742c206f726e6172652065752075006c7472696365732076697461652c20706f72747469746f72206574206c696700756c612e2050656c6c656e746573717565207665686963756c6120656c69740020657420697073756d20636f6e7365717561742c206e6563206d6f6c6c6973002065737420696e74657264756d2e2055742074656d706f722063757273757300206d6f6c65737469652e204d61757269732074696e636964756e742061636300756d73616e206e756e6320696420696d706572646965742e20457469616d20006d616c6573756164612c206e6973692061632076756c7075746174652069610063756c69732c206e697369206f72636920706c616365726174206e756c6c61002c206e65632074696e636964756e742074656c6c757320656c69742071756900732075726e612e20457469616d206c61637573206d617373612c2068656e6400726572697420757420636f6d6d6f646f20612c20696e74657264756d20696400206e69736c2e20496e746567657220766974616520616e7465206672696e6700696c6c61206d692074696e636964756e7420636f6e73656374657475722e20004e756c6c6120636f6e7365637465747572206f726e61726520626962656e6400756d2e0a0a55742073697420616d657420657569736d6f642074656c6c7573002e2050656c6c656e746573717565207072657469756d2074696e636964756e0074206475692065752073656d7065722e205365642076656c2065726f73206e006f6e20646f6c6f7220696163756c697320696e74657264756d20736564207100756973206f7263692e20496e2073656d706572206c6f626f7274697320646900676e697373696d2e205365642066617563696275732066657567696174207000656c6c656e7465737175652e2050656c6c656e74657371756520736f6c6c69006369747564696e206f64696f20736564206c6563747573207361676974746900732c206e6f6e20756c7472696369657320697073756d2072757472756d2e200053656420736564206f726e6172652065782e0a0a5072616573656e7420766900746165206d6f6c6573746965207175616d2c20616320626c616e646974206f0064696f2e20457469616d2065676573746173206375727375732075726e612000696420657569736d6f642e204e616d20616c6971756574206172637520657500206c7563747573206c616f726565742e20457469616d20696d7065726469650074207175616d2076656c20636f6e73657175617420626c616e6469742e204d00617572697320696e74657264756d2c206469616d20766172697573206c616300696e696120616c69717565742c2076656c69742074656c6c757320706861720065747261206a7573746f2c20656765742073757363697069742075726e6120006e756c6c612071756973206c656f2e204e756c6c61206578206e69736c2c2000666175636962757320617420626c616e6469742061632c2063757273757320006120697073756d2e20566976616d75732071756973206469616d20636f6e670075652c20657569736d6f642075726e612073697420616d65742c206672696e0067696c6c6120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e67007565206c696265726f2074656d706f7220756c747269636965732e2050656c006c656e7465737175652070756c76696e61722073617069656e20766974616500206e756e63207363656c65726973717565206672696e67696c6c612e204675007363652068656e64726572697420656666696369747572206661756369627500732e20416c697175616d2070757275732061756775652c206c756374757320006e6f6e20636f6e76616c6c697320717569732c206d6178696d7573206e6f6e00206475692e0a0a446f6e65632070656c6c656e74657371756520657261742000657520657374206c6163696e696120616363756d73616e2e2050726f696e20006d6f6c6c69732073656d20646f6c6f722c206964206d6f6c6c6973206c656300747573207669766572726120696e2e204e756e632071756973206d6173736100207661726975732c206665726d656e74756d206c656f2076697461652c206c006f626f72746973206e657175652e205175697371756520756c6c616d636f7200706572206a7573746f20766974616520636f6e67756520656c656966656e64002e20457469616d206574206c61637573206573742e20496e7465676572207400757270697320617263752c20616363756d73616e2076656c20697073756d2000656765742c206d616c65737561646120756c6c616d636f72706572206a757300746f2e204d6175726973206e6f6e2065782074696e636964756e742c20756c00747269636573206c616375732061742c20626c616e646974206f64696f2e2000566573746962756c756d2067726176696461206e65632073617069656e206e006563206469676e697373696d2e2053757370656e64697373652074656d706f007220696e206e69736c2076656c206d6f6c6c69732e204d616563656e6173200067726176696461206c616375732074656c6c75732c20657420756c7472696300696573206e756c6c612074696e636964756e7420612e20416c697175616d20006572617420766f6c75747061742e20446f6e65632065726f73206c6563747500732c206469676e697373696d2069642073617069656e2061742c20706c6163006572617420666163696c697369732070757275732e20566976616d757320700072657469756d2c206d69206120756c6c616d636f727065722074696e63696400756e742c206475692074656c6c757320626c616e646974206d617373612c20006e65632066696e6962757320657374206e69736c2071756973206e6962682e0020467573636520646170696275732064756920696e20636f6e73656374657400757220706c6163657261742e20467573636520736f6c6c696369747564696e00206567657374617320657261742c2073697420616d657420616363756d7361006e206c656f2074696e636964756e7420696e2e204d6f7262692065666669630069747572206d61757269732069642064696374756d20666163696c69736973002e0a0a55742075726e61206d61676e612c20706f72747469746f722061632000656666696369747572206e6f6e2c20656666696369747572206174206d61730073612e2041656e65616e2073656420656c6974206e6f6e2065782073757363006970697420616363756d73616e2e20416c697175616d207669746165206c65006f2073616769747469732c2067726176696461206c6967756c612065742c200070756c76696e617220646f6c6f722e20457469616d20616320746f72746f7200206c6f72656d2e2050686173656c6c7573206567657374617320696163756c00697320677261766964612e204e756e63206e6f6e206e756e63206e6962682e0020566976616d757320766974616520617563746f722073617069656e2e20430072617320706f7375657265206e756c6c61206f64696f2c20657520706f727400612065782076656e656e6174697320612e204e616d207269737573206e65710075652c20657569736d6f642075742063757273757320656765742c2066617500636962757320736f6c6c696369747564696e20746f72746f722e2043757261006269747572207574206d65747573206e6f6e206469616d20617563746f72200074696e636964756e742e20496e7465676572206d616c65737561646120707200657469756d2076656e656e617469732e20566976616d75732072686f6e637500732074696e636964756e74206c6f72656d207175697320756c74726963696500732e2050686173656c6c7573206f726e6172652065726f732065742068656e0064726572697420636f6d6d6f646f2e0a0a4375726162697475722069616375006c697320636f6e7365717561742073656d20717569732070656c6c656e746500737175652e2050726f696e206d617474697320656e696d20696e2065737420007361676974746973207661726975732e204d6f726269206e65632074696e63006964756e742076656c69742c206575206469676e697373696d20657261742e0020416c697175616d206572617420766f6c75747061742e205072616573656e00742066696e696275732074656c6c757320696e2068656e6472657269742076006573746962756c756d2e20437572616269747572206d6f6c6c69732074656c006c7573206d692c206e6563206d616c6573756164612076656c6974207375730063697069742061742e205365642065726174206e657175652c207275747275006d20736564206665726d656e74756d2076656c2c2070656c6c656e74657371007565206e6f6e20616e74652e204e616d20736f64616c65732070756c76696e006172206c6f72656d2c2065742074696e636964756e74206d6173736120646900676e697373696d2061632e20457469616d206d61737361207175616d2c2076006f6c7574706174206574206c6f626f727469732073697420616d65742c207600656e656e6174697320696420656e696d2e0a0a446f6e656320706f72746120006e69736c20657520697073756d20706f72747469746f722c2065676574207000756c76696e6172206c6f72656d206d6178696d75732e205574206163206e6500717565206c6f72656d2e204e756c6c612061206c6f72656d2065676574206c00656f206d6f6c6c6973206469676e697373696d2e20566573746962756c756d0020696d706572646965742073656d706572206c65637475732e204e756c6c6100206574206469616d206574206e756c6c61206f726e61726520736f6c6c69630069747564696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c00207665686963756c61206a7573746f2061742c2074696e636964756e74207300617069656e2e2043757261626974757220657569736d6f642076697665727200612072686f6e6375732e204e756e6320766172697573206f726369206e656300206d6173736120766976657272612c2065676574206c7563747573206c616300757320756c7472696365732e20437572616269747572206375727375732065006c697420646f6c6f722e20467573636520616c6971756574206f726e617265002065726f732c20612067726176696461206578206d616c657375616461207600656c2e204e616d206163206d61676e6120636f6e7365717561742c2076617200697573206d61757269732065752c206665726d656e74756d206c696265726f002e0a0a5072616573656e7420657420646f6c6f722074656d706f7220647569002074696e636964756e742064696374756d2e2050656c6c656e74657371756500206d6178696d757320697073756d20657520656765737461732074656d707500732e20467573636520616c697175616d20696d7065726469657420616e74650020657420626c616e6469742e204d61757269732068656e647265726974206c006f626f72746973206c616f726565742e2041656e65616e20706f7274612076006f6c757470617420697073756d2c206120736f6c6c696369747564696e20610072637520756c6c616d636f72706572206e6f6e2e20536564207661726975730020706c61636572617420656e696d206575207072657469756d2e20496e206a007573746f20617263752c20656c656d656e74756d20757420616c6971756574002065752c206c616f72656574206964206c656f2e20496e7465676572207365006420617263752061206469616d206c75637475732072686f6e6375732e20550074206567657420636f6e677565206d657475732c2069642072757472756d20006c65637475732e0a0a4d6f726269207665686963756c6120616363756d7361006e206e69736c2c20617420706f727461206c616375732066617563696275730020656765742e2053757370656e64697373652076756c707574617465206d6900206e6f6e20766f6c757470617420666575676961742e2051756973717565200064696374756d20706f72747469746f72206f64696f2073697420616d65742000636f6e6775652e2041656e65616e20657569736d6f64207072657469756d2000656c697420706f72747469746f722066696e696275732e204d616563656e610073207365642076756c7075746174652072697375732e2041656e65616e206500726f7320656e696d2c2076656e656e6174697320696420636f6e7365717561007420612c2072686f6e637573206f726e6172652073656d2e20517569737175006520626962656e64756d20766f6c757470617420616e74652c20616320706f0073756572652073617069656e20737573636970697420656666696369747572002e204e756c6c61206f726e617265206e696268206163206d6175726973207600756c7075746174652c206e6f6e207068617265747261206469616d2076697600657272612e20436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e2050726f696e20617420766573746962756c756d2076656c69742e002053656420766976657272612076656e656e61746973206d692c207574206d00616c657375616461206e756c6c612e204475697320706861726574726120690064206e69626820617420636f6e6775652e20536564206c6163696e6961206500726f732061206572617420766976657272612c20612074696e636964756e740020617567756520616363756d73616e2e2050656c6c656e746573717565206c006f626f7274697320616363756d73616e2073656d2c2065676574206d616c65007375616461206e756c6c61206665726d656e74756d2073697420616d65742e0020496e20616363756d73616e206c616f72656574206e69736c2076697461650020666575676961742e20416c697175616d206572617420766f6c7574706174002e0a0a4475697320696420616e7465206c6967756c612e2050686173656c6c00757320736167697474697320706c61636572617420706f73756572652e204d00616563656e61732076697461652076697665727261206c616375732c206d6f006c6c6973206d616c657375616461206c65637475732e2050656c6c656e7465007371756520696e20657374206c6163696e69612c20656c656d656e74756d20006e756e6320656765742c2070656c6c656e746573717565206a7573746f2e20005175697371756520636f6e67756520747572706973206e6f6e206f64696f2000626c616e64697420736167697474697320677261766964612065742069707300756d2e204e756c6c616d206c6f626f72746973206e6571756520616320656c00697420636f6e76616c6c697320616363756d73616e2073697420616d6574200070756c76696e6172206d617373612e20446f6e656320657520636f6d6d6f64006f20616e74652c2073697420616d657420756c6c616d636f7270657220646f006c6f722e2044756973206d6175726973206c6967756c612c20656c656d656e0074756d2061742066617563696275732061632c20616c697175616d20696e200066656c69732e205072616573656e74206c6f626f72746973206578207369740020616d6574206e69736c20756c74726963696573206c6163696e69612e2056006976616d757320617563746f722c2073656d20717569732076657374696275006c756d207363656c657269737175652c2073617069656e206e69736c207275007472756d206c696265726f2c2073697420616d657420696e74657264756d20006e69736c206a7573746f207669746165206c65637475732e20566976616d75007320696d70657264696574206e756c6c6120657520657261742076656e656e00617469732c20736564206d6f6c657374696520646f6c6f7220766568696375006c612e20517569737175652076656c2061726375207365642073656d207365006d706572206375727375732e2050656c6c656e746573717565206d61747469007320656c656966656e64207269737573206574206d6f6c6c69732e20557420006c6f626f727469732c2065737420736564206665726d656e74756d2073656d007065722c2075726e612072697375732064617069627573206475692c2061200074656d707573206d6175726973206e69736c206174206469616d2e2056697600616d7573206469676e697373696d20666163696c6973697320636f6e7365630074657475722e20496e20706f737565726520736f6c6c696369747564696e2000656c656d656e74756d2e0a0a457469616d20697073756d206573742c206d61006c657375616461206120666575676961742073697420616d65742c206d6f6c00657374696520656765742066656c69732e2041656e65616e2074656d70757300206672696e67696c6c61206469616d20696e20616c697175616d2e20446f6e0065632073697420616d65742072757472756d206469616d2e2050686173656c006c757320756c6c616d636f72706572206d617474697320616363756d73616e002e2053757370656e646973736520616c6971756574207669746165206e6973006920616320766f6c75747061742e2050726f696e207075727573206d6175720069732c20696d706572646965742073697420616d657420647569206e6f6e2c00207665686963756c6120637572737573206f7263692e20446f6e6563206574002074656c6c7573206574206d6574757320766573746962756c756d20656c65006d656e74756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74006573717565206c6967756c61206e69736c2c20616c697175616d206163206c006967756c6120706f73756572652c20656c656d656e74756d2068656e64726500726974206d61757269732e204d617572697320666163696c69736973206665006c697320696e2072757472756d20696163756c69732e204e756e632066657500676961742073656d20612068656e6472657269742072757472756d2e20496e007465676572206d6f6c65737469652064696374756d2066696e696275732e200041656e65616e206e656320766f6c7574706174206c6967756c612e205175690073717565206d617373612070757275732c2070686172657472612075742069006163756c6973207365642c20706f72747469746f7220616320616e74652e2000416c697175616d206d6173736120656e696d2c2076756c707574617465206e006563206d692069642c20756c6c616d636f72706572206665756769617420740075727069732e0a0a4e756e63207669766572726120647569206c6f72656d2c002073697420616d657420656666696369747572206d65747573207375736369007069742076656c2e20566573746962756c756d2073697420616d657420706f0072747469746f722065782e205574206d616c657375616461206c656374757300206e6563206d65747573206672696e67696c6c612c206e65632073656d706500722075726e61206d616c6573756164612e20557420756c6c616d636f7270650072206e697369206174206e69736c20696d706572646965742070756c76696e0061722e20566573746962756c756d2065726f7320646f6c6f722c20766f6c750074706174206964206f64696f2069642c2074656d70757320636f6e76616c6c0069732072697375732e2043726173206575206661756369627573206c69626500726f2e2050656c6c656e74657371756520696163756c69732076657374696200756c756d20646f6c6f72206964206566666963697475722e204675736365200061206e756e6320717569732075726e61206469676e697373696d2064617069006275732e2050726f696e2076656c20696163756c69732073656d2c2061742000636f6e76616c6c6973206475692e20496e2069642066656c69732074656c6c0075732e20446f6e6563207068617265747261206d6f6c65737469652061726300752c2061206d616c6573756164612065737420677261766964612069642e0a000a5175697371756520616c6971756574206c6967756c61207574206f7263690020706f73756572652c207365642074696e636964756e74206d61676e612075006c747269636965732e204d616563656e61732073697420616d657420756c6c00616d636f72706572207475727069732e20536564206e6563206d6f6c657374006965207175616d2e20566976616d7573206d617474697320636f6e64696d65006e74756d206f7263692c206e6f6e206375727375732066656c69732074656d007075732065752e2053656420656765742072697375732075726e612e2056690076616d7573206f726e61726520756c6c616d636f7270657220617263752061006320616c69717565742e205072616573656e74206d616c657375616461207000756c76696e6172206c65637475732c2073697420616d65742064696374756d00207269737573206d616c6573756164612061742e204e756c6c612061206d61006c657375616461206c65637475732c2065676573746173206d616c657375610064612066656c69732e20496e20696420696e74657264756d206e756e632e2000496e746567657220666163696c69736973206469676e697373696d20616e74006520717569732070686172657472612e0a0a446f6e65632070656c6c656e7400657371756520656e696d20766974616520616e746520756c7472696365732c0020617420657569736d6f64206d617373612066696e696275732e20517569730071756520636f6e67756520756c7472696369657320706f72747469746f722e002043757261626974757220756c7472696369657320626c616e64697420637500727375732e204675736365206567657420647569206375727375732c2070680061726574726120617263752076656c2c20706c616365726174207075727573002e2043726173206e6563206d6175726973206c656f2e204e616d20707265740069756d207072657469756d20766f6c75747061742e2050686173656c6c757300206e657175652074656c6c75732c206672696e67696c6c612073697420616d00657420666163696c6973697320717569732c20616363756d73616e20736365006c657269737175652073656d2e204e756e632076697461652066656c69732000736564206d6173736120756c747269636965732064617069627573206e6f6e0020657520656e696d2e20496e20706f72747469746f722074656d706f72206e0069736c2c206567657420666163696c697369732075726e612066696e69627500732076697461652e205365642070656c6c656e746573717565206e656320740075727069732075742073656d7065722e205072616573656e74206566666963006974757220656c656966656e64206f64696f2e0a0a4e756c6c612061756374006f7220636f6e64696d656e74756d206e756c6c612e204d616563656e617320006d616c657375616461206d61757269732061206c6967756c6120756c7472690063657320636f6d6d6f646f2065742076656c206469616d2e2053757370656e00646973736520696e74657264756d2074696e636964756e74206c6967756c61002c206120626962656e64756d206d6920696163756c697320612e2053656420006d616c657375616461206d657475732076656c206c696265726f206469676e00697373696d2c2073697420616d657420636f6e677565207175616d2074696e00636964756e742e204375726162697475722066696e696275732074696e63690064756e742073616769747469732e20517569737175652073617069656e2065006e696d2c20736f64616c6573206163206469616d20612c206469676e69737300696d206c6163696e69612074656c6c75732e20446f6e65632065666669636900747572206c616375732072686f6e637573206672696e67696c6c6120636f6d006d6f646f2e20496e20696420656c69742076656c206c6f72656d20736167690074746973206f726e6172652e204372617320757420646f6c6f72206c696775006c612e2053656420656c656966656e64206c656374757320766172697573200066696e696275732072757472756d2e204675736365206e6563206175677565002061206a7573746f207661726975732074656d706f722073656420766974610065206c6f72656d2e204d6175726973206174206c696265726f20696e2065730074206375727375732064696374756d2075742076697461652065726f732e200050686173656c6c75732072757472756d2c206c65637475732076697461652000696e74657264756d20626c616e6469742c206c6f72656d2075726e61207669007665727261206d617373612c2071756973207363656c65726973717565206600656c6973206c6563747573206574206f64696f2e204d61757269732066616300696c69736973206c656f207475727069732c20696d70657264696574206665007567696174206475692074656d706f722073697420616d65742e0a0a4d61650063656e61732061206c656f2061756775652e20437572616269747572206e6f006e20697073756d2073697420616d657420656c6974206c616f72656574207600656e656e617469732065676574206e6f6e206d61676e612e204375726162690074757220616c697175616d20696163756c697320706f72747469746f722e2000536564206163206c6f72656d206120646f6c6f7220616c6971756574206c7500637475732e2050726f696e206c6163696e696120697073756d20616e74652c002073697420616d657420696d70657264696574206c6563747573206469676e00697373696d20656765742e20566573746962756c756d20656666696369747500722073697420616d65742073656d207175697320736f64616c65732e2056690076616d75732070756c76696e6172207068617265747261206e69736c2076690074616520616363756d73616e2e204475697320696e74657264756d20636f6e00677565207661726975732e20446f6e65632061207361676974746973206e690073692c207175697320656c656d656e74756d206475692e20536564206c756300747573206c616f72656574206c656f206567657420756c7472696365732e0a000a446f6e6563206120617567756520656765737461732c2076756c70757461007465206573742076656c2c206c616f72656574206c616375732e20416c69710075616d20646f6c6f7220646f6c6f722c20706c61636572617420696e2065670065737461732073697420616d65742c20616c69717565742061206f7263692e0020496e2076756c70757461746520626c616e64697420656c69742c2068656e0064726572697420636f6d6d6f646f2075726e6120626962656e64756d206575002e20457469616d20617567756520616e74652c206d6f6c6573746965207175006973206f64696f2065752c2074656d70757320636f6d6d6f646f206e696268002e205574206d6174746973206c6163696e69612073617069656e2075742064006170696275732e20457469616d20636f6e736571756174206e6f6e206f6469006f2071756973206375727375732e204e756e6320616c69717565742062696200656e64756d20646f6c6f722065752073656d7065722e20566976616d757320006163206d692073697420616d65742061726375206c6163696e6961207275740072756d2073697420616d65742061206e756c6c612e2050686173656c6c75730020657261742072697375732c206c75637475732065676574206c6f72656d200076697461652c206d616c65737561646120626962656e64756d206d65747573002e204e616d206964206d617474697320656e696d2c206665756769617420730061676974746973206d657475732e2050686173656c6c7573206c7563747573002074757270697320657261742c20657420766172697573206d61676e61207200686f6e6375732069642e0a0a437261732076617269757320736167697474690073206f64696f20757420677261766964612e20536564206f726e6172652070006f7274612076756c7075746174652e20496e746567657220706f7375657265002061726375206c6f72656d2c206964207363656c657269737175652073656d002065666669636974757220612e205365642076656c20617563746f722069700073756d2e2050656c6c656e7465737175652069642065726f73206574206c6f0072656d20616363756d73616e20616363756d73616e20656765742071756973002065726f732e204e756e632063757273757320636f6e64696d656e74756d20006d692c206e65632066617563696275732070757275732070756c76696e6172002070686172657472612e205365642073656420736f64616c6573206e756e63002e2046757363652070756c76696e617220756c747269636573206d692c206900642072757472756d206d69206672696e67696c6c612061632e205365642069007073756d207175616d2c20756c74726963696573207669746165206c616369006e69612076697461652c206665726d656e74756d206e6f6e206d6175726973002e205072616573656e74206461706962757320756c6c616d636f7270657220006c6967756c612c206567657420756c6c616d636f727065722073656d2064610070696275732065752e2046757363652073697420616d65742076657374696200756c756d206c616375732e205072616573656e74207365642074726973746900717565206c616375732c2076656c2070756c76696e6172206573742e0a0a460075736365206e6563206e6571756520646f6c6f722e20566573746962756c75006d20616c697175616d206c6967756c612075742064696374756d2073656d700065722e20457469616d206d616c657375616461206d6574757320656765742000656c697420636f6e64696d656e74756d20636f6e7365717561742e205375730070656e646973736520736167697474697320656e696d207175616d2c20696e0020756c74726963696573206c656f206461706962757320717569732e205065006c6c656e7465737175652063757273757320766172697573206e6973692c200076656c20736167697474697320656c6974206d6178696d7573206e6f6e2e200053757370656e646973736520746f72746f72206f64696f2c207068617265740072612076656c206475692061632c20656c656d656e74756d2076756c707574006174652074656c6c75732e20416c697175616d20696420666163696c69736900732065782e2044756973206e6563206672696e67696c6c61206e69736c2e2000467573636520736564206672696e67696c6c612065782e20467573636520750074206d6175726973206574207175616d207669766572726120696e7465726400756d20612061742065726f732e20416c697175616d20616363756d73616e2000657261742075742074656c6c7573206469676e697373696d20696163756c6900732073656420657420746f72746f722e2050726f696e20736564206175677500652073697420616d6574206d657475732072757472756d20677261766964610020696e2076656c206e69736c2e20496e746567657220706f73756572652061007263752069642065726f73206665726d656e74756d2074656d706f722e0a0a00557420756c74726963657320697073756d206f7263692e204d61757269732000617563746f72206d6178696d75732072697375732c20717569732066696e6900627573206e756c6c612065666669636974757220696e2e204e616d20756c74007269636573206e6571756520616320657820666163696c697369732c20696e002074656d707573206c6967756c61206c6f626f727469732e204372617320700068617265747261206c6f72656d20696e74657264756d206e65717565206865006e64726572697420617563746f722e2050686173656c6c7573206e6f6e207200757472756d206c696265726f2c20617420736f64616c657320697073756d2e0020496e20756c6c616d636f72706572206578206c65637475732c207369742000616d6574207068617265747261206e756c6c6120636f6e76616c6c6973207200686f6e6375732e2053757370656e6469737365206e6f6e20656c6974206c6f0072656d2e205072616573656e7420756c6c616d636f72706572206e756c6c61002076656c20637572737573206469676e697373696d2e2041656e65616e2073006f64616c657320746f72746f72206f64696f2c20617420656c656966656e6400206c6967756c61206469676e697373696d2073697420616d65742e2044756900732076656c20736f6c6c696369747564696e2074656c6c75732e204d61656300656e617320717569732070656c6c656e746573717565206475692e204d6175007269732071756973207361676974746973206e756e632e2044756973207275007472756d206d616c657375616461206c6967756c612065752070756c76696e0061722e0a0a41656e65616e206772617669646120706f727461207175616d20007365642070656c6c656e7465737175652e2050656c6c656e7465737175652000766573746962756c756d20626962656e64756d207472697374697175652e2000566573746962756c756d20696e206572617420656e696d2e2050726f696e200065726f73206f7263692c2072686f6e63757320616320616c697175616d206e006f6e2c207072657469756d2061206f7263692e20566573746962756c756d200074656d7075732c2076656c6974206d616c657375616461206c6163696e69610020646170696275732c2075726e61206c6f72656d206672696e67696c6c6120006d617373612c20696e206d6178696d757320656e696d20656e696d20657420006e69736c2e204e616d207669766572726120636f6e64696d656e74756d206c006967756c6120696e20696d706572646965742e20536564207175697320656c00656d656e74756d206a7573746f2e204e756c6c61206f726e61726520636f6e00736563746574757220656e696d2061742074696e636964756e742e2045746900616d2073697420616d6574206c616f7265657420697073756d2e0a0a45746900616d20666163696c697369732065737420706f72747469746f722c2066696e00696275732066656c69732065742c207375736369706974206c65637475732e002041656e65616e20706c616365726174206567657374617320616c6971756500742e204d617572697320657420656e696d206c65637475732e204d61656365006e61732070656c6c656e746573717565206d6f6c6c6973206d69206469637400756d20636f6e6775652e205072616573656e742076656c2066656c6973206c00616f726565742c20636f6e7365637465747572206e756c6c61206e6f6e2c2000666575676961742074656c6c75732e2053656420616c697175616d2076656c006974207365642073656d20706c616365726174207361676974746973206174002073697420616d6574206c696265726f2e2051756973717565206d6174746900732072757472756d20656e696d2c2073656420656c656d656e74756d207665006c69742e2050686173656c6c7573206e6f6e206c616f72656574206f64696f002e2043757261626974757220656c656966656e64206f64696f207369742061006d657420756c7472696369657320756c6c616d636f727065722e20496e20650067657420726973757320756c7472696365732c207665686963756c61206c65006374757320696e2c20616c6971756574207475727069732e0a0a5068617365006c6c7573206e6f6e206d6574757320617563746f722c20636f6e736563746500747572206e69736c2061742c207361676974746973207175616d2e20507261006573656e7420746f72746f722074656c6c75732c2074656d706f72206e6f6e002070686172657472612069642c207661726975732061742070757275732e2000536564206120636f6e64696d656e74756d206e6962682e205072616573656e0074206c656f206e756e632c20756c6c616d636f72706572207665686963756c006120766573746962756c756d2074696e636964756e742c206665726d656e7400756d20757420616e74652e20496e206f726e617265206c61637573206e6f6e00206c696265726f20736f6c6c696369747564696e2c206575206665756769610074206e756c6c6120626c616e6469742e2050656c6c656e74657371756520680061626974616e74206d6f726269207472697374697175652073656e656374750073206574206e65747573206574206d616c6573756164612066616d6573206100632074757270697320656765737461732e204e756e632065676574206e756e00632073697420616d6574206d61757269732070686172657472612076657374006962756c756d20657520766974616520656e696d2e20496e20766f6c7574700061742073617069656e2065676574206c65637475732074696e636964756e740020766f6c75747061742e20416c697175616d207365642076697665727261200075726e612e204675736365206c6563747573206d657475732c20756c747269006365732076656c20657569736d6f642065742c20616c6971756574207365640020746f72746f722e2050686173656c6c757320626c616e6469742070656c6c00656e74657371756520756c747269636965732e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e204e756c6c61206469676e697373696d2c200076656c6974207175697320666163696c697369732072686f6e6375732c206e00756c6c612066656c697320747269737469717565206d61757269732c2065750020636f6d6d6f646f206c656f206f726369206174206e6973692e2046757363006520636f6e736563746574757220746f72746f7220657420706861726574720061207665686963756c612e204e756e63207665686963756c612c206d65747500732073697420616d657420657569736d6f642064696374756d2c20646f6c6f0072206d6574757320616363756d73616e206573742c20696e20696163756c690073206d61737361206c696265726f206e6f6e206c65637475732e0a0a496e2000617420636f6e736571756174207475727069732e204675736365206d69206e00756c6c612c206672696e67696c6c6120757420766172697573207669746165002c20747269737469717565206174206e6973692e204e756c6c61206964206d00692065726f732e204d6f726269206469616d20616e74652c2076656e656e610074697320696e2073757363697069742076656c2c2074696e636964756e7420007669746165206f64696f2e204d61757269732068656e647265726974206e6f006e206172637520696420636f6e73656374657475722e205072616573656e740020616c697175616d206e756e632076656c206d61676e61207665686963756c006120616c69717565742e204e616d20636f6e7365637465747572206e756c6c006120717569732075726e6120696163756c697320756c6c616d636f72706572002070656c6c656e74657371756520657420617263752e20496e746567657220006163206c616f726565742076656c69742e2050656c6c656e7465737175652000757420616e7465207175616d2e20566976616d75732061206d617474697320006c656f2c2069642074656d707573206d692e204675736365207363656c657200697371756520646170696275732070757275732073656420616c697175616d002e0a0a46757363652076656c20656e696d2070656c6c656e7465737175652c0020656c656d656e74756d206469616d2065752c2076756c707574617465207600656c69742e204e756e63206c696265726f2074656c6c75732c20656c656d65006e74756d206964207175616d2073697420616d65742c20617563746f722070006f72747469746f722070757275732e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e20457469616d206d6f6c6573746965206e756e632000736f64616c657320636f6d6d6f646f20696163756c69732e204e616d20717500697320656c69742061206c696265726f20616c697175657420636f6e64696d00656e74756d207669746165206163206d692e20457469616d20756c7472696300657320756c74726963696573206d61676e6120766974616520706f7375657200652e20566976616d757320757420657569736d6f642076656c69742e20437200617320736f64616c6573206c6163696e6961206d61676e612c207175697320006665726d656e74756d20657261742064696374756d2073697420616d65742e002046757363652074696e636964756e74206c696265726f206574206e657175006520747269737469717565206375727375732e204372617320616320646f6c006f72206c6967756c612e2050726f696e206567657420696d7065726469657400206d61757269732e20416c697175616d206469616d20646f6c6f722c2066610063696c697369732076656c206e69626820656765742c20636f6e7365717561007420766573746962756c756d206c696265726f2e20437572616269747572200076756c7075746174652066617563696275732061756775652065676574207300757363697069742e204e756e632074696e636964756e742074656c6c757320007574206d6f6c6c6973206d6178696d75732e2050726f696e2076657374696200756c756d206c616f726565742073617069656e2c206e6563206672696e6769006c6c61206e6973692074656d70757320696e2e0a0a566573746962756c756d0020616e746520697073756d207072696d697320696e20666175636962757320006f726369206c756374757320657420756c74726963657320706f73756572650020637562696c69612063757261653b20566573746962756c756d2066616369006c697369732c20707572757320657520706f7375657265206c6163696e6961002c20707572757320657374206c616f72656574206e69736c2c206e65632076006f6c757470617420616e746520657261742076697665727261206e756c6c61002e204e756c6c6120666163696c6973692e20496e206e656320706f72746120006d657475732e20446f6e656320666163696c6973697320646f6c6f72207369007420616d6574206f64696f20616c697175616d2c206567657420706f7274740069746f7220697073756d2076756c7075746174652e204d6175726973207665006e656e61746973206d61676e61206575206578206f726e6172652c2069642000736f6c6c696369747564696e20616e746520636f6e6775652e2050656c6c65006e7465737175652075726e61206f7263692c20756c747269636965732076690074616520706f73756572652075742c20756c7472696365732071756973207400656c6c75732e20536564206e6f6e20656c656966656e64206d692c20657520007472697374697175652073656d2e2041656e65616e2074656d707573206d61007373612065752067726176696461206d616c6573756164612e2050726f696e00206e65632076756c707574617465206e756e632e204e756e63206d616c657300756164612c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c20007175616d206e69736c2074696e636964756e74206c616375732c207369742000616d65742066657567696174206c6f72656d206e756c6c61206e65632069700073756d2e0a0a4d617572697320736564206d6574757320617420646f6c6f720020636f6e64696d656e74756d20636f6e73657175617420616363756d73616e0020616320646f6c6f722e2053757370656e6469737365206c75637475732062006c616e6469742065782c20617420656c656d656e74756d206d69206469637400756d2065752e20416c697175616d2074696e636964756e7420656c656d656e0074756d206d61676e6120766974616520616c69717565742e20446f6e65632000696e206f726e617265206d61757269732e20496e206c6163696e6961207369007420616d6574206e756c6c61207669746165206665726d656e74756d2e2044006f6e6563206e6563206665726d656e74756d2075726e612c20617420667269006e67696c6c612076656c69742e20416c697175616d206572617420766f6c7500747061742e20566573746962756c756d2073656420747572706973206e65710075652e20496e74656765722076656c20737573636970697420747572706973002e20536564206e656320636f6e64696d656e74756d206e657175652e204165006e65616e20636f6e76616c6c697320766f6c757470617420706f7375657265002e2050686173656c6c7573206c6f626f72746973206c6967756c612076656c002072686f6e637573206c616f726565742e2041656e65616e2065676574206500737420696163756c69732c2076656e656e61746973206f64696f2075742c200064696374756d2074656c6c75732e2044756973207669746165206572617420007669746165206e69736920637572737573206d61747469732e204e756e632000626c616e6469742070656c6c656e7465737175652072697375732c206c7563007475732074696e636964756e74206d61676e6120706f7274612061632e204300726173207669766572726120616c697175657420706f73756572652e0a0a4c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e204e756c6c616d00206575206c61637573206c65637475732e20467573636520612074656c6c750073206c616375732e20496e74657264756d206574206d616c657375616461200066616d657320616320616e746520697073756d207072696d697320696e206600617563696275732e204e756c6c616d2070656c6c656e746573717565206c6f0072656d207175616d2c2076656c2074656d706f7220746f72746f7220707265007469756d2076697461652e20566573746962756c756d20736f6c6c69636974007564696e2071756973206d692061632072757472756d2e20496e746567657200206469676e697373696d206c696265726f20616c697175616d206672696e6700696c6c6120616363756d73616e2e20446f6e656320666163696c697369732000647569206e6f6e206c656f2074656d707573206c75637475732e2053656420006d616c657375616461207665686963756c6120756c7472696365732e2055740020616e746520616e74652c20616c69717565742073697420616d657420736f006c6c696369747564696e2066696e696275732c20626c616e64697420756c740072696365732061756775652e20536564206e6563206e6973692071756973200076656c697420636f6e64696d656e74756d20677261766964612e2041656e6500616e20616c697175657420657569736d6f64206475692c20757420766568690063756c6120697073756d2066617563696275732065752e0a0a4675736365200076656c69742073617069656e2c2073656d706572206574206469676e69737300696d2076656c2c20696163756c69732069642076656c69742e20507261657300656e74206e6f6e206e69736c206567657420616e746520736f6c6c69636974007564696e2072757472756d206e6563206e6563206573742e205365642076690076657272612066656c6973206e69736c2c206e65632065676573746173206500737420736f64616c65732065742e204e616d20636f6e67756520617567756500207375736369706974206578206c616f7265657420706f72747469746f722e0020467573636520626962656e64756d20697073756d206e657175652c20616300206d6178696d757320646f6c6f72206672696e67696c6c612075742e2043750072616269747572206120636f6e736571756174206c6967756c612e204e616d0020766f6c757470617420636f6e736571756174206c696265726f2065752062006c616e6469742e204e616d20696e74657264756d2074656c6c757320757420006f64696f20636f6e736571756174206f726e6172652e204e756c6c612066610063696c6973692e204d616563656e6173206c756374757320616e7465206567006574206f64696f20636f6e64696d656e74756d206672696e67696c6c612e2000496e74656765722065676574206d61676e612073697420616d6574206d6167006e61206665726d656e74756d20677261766964612e0a0a4d6f72626920736f0064616c65732076656c6974206e6973692c2061206d6178696d7573206475690020656c656966656e64206e6f6e2e204d61757269732070757275732065726f00732c20617563746f722075742066696e6962757320656765742c20756c7472006963696573207175697320657261742e2041656e65616e207361676974746900732074757270697320696e206f72636920706f7274612c20696420706861720065747261206578206566666963697475722e20467573636520617420636f6e0067756520657261742e20566573746962756c756d206c756374757320656e69006d206665726d656e74756d206c656f2064696374756d20747269737469717500652e20446f6e6563206e65632066656c69732073697420616d6574206475690020706f72747469746f7220656c656d656e74756d2e205072616573656e7420006c616f726565742c2066656c6973207669746165207472697374697175652000626962656e64756d2c206c6f72656d206e6962682070656c6c656e746573710075652073617069656e2c20736564207363656c65726973717565206c6f7265006d206e6962682076656c2073656d2e204675736365206e6f6e2076656e656e0061746973206e657175652e20446f6e6563207363656c6572697371756520640069676e697373696d20726973757320696420706f7274612e0a0a5375737065006e64697373652072686f6e637573206c696265726f2076656c2066656c697300206c6163696e69612074656d7075732e2046757363652064696374756d206e006571756520736564206e69626820677261766964612c20626962656e64756d00206c6f626f727469732075726e6120616c69717565742e204375726162697400757220657420657569736d6f6420656e696d2e2050656c6c656e7465737175006520696d70657264696574206175677565206c6f72656d2c2075742068656e00647265726974206e657175652073656d7065722076656c2e2050686173656c006c757320636f6d6d6f646f20647569206e6f6e206c6f626f72746973207665006e656e617469732e2043726173207669766572726120736167697474697320006e69736c2c207669746165206c6f626f72746973206d6574757320756c747200696369657320696e2e20416c697175616d207669746165206469676e69737300696d2070757275732c206661756369627573207072657469756d207269737500732e205072616573656e74206163206d61676e6120617563746f722c206d61006c657375616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f00206475692e205072616573656e7420617420746f72746f7220697073756d2e002046757363652074656d7075732c2066656c697320696e20616363756d7361006e2066617563696275732c206c696265726f20656e696d206d6f6c6c69732000656e696d2c20696420656c656d656e74756d206d65747573207075727573200061206d61676e612e204375726162697475722073697420616d657420636f6e0064696d656e74756d2075726e612e20496e2075726e612066656c69732c2063006f6e64696d656e74756d207669746165206e756c6c612065752c20706f73750065726520636f6e64696d656e74756d206e6962682e2050656c6c656e746573007175652067726176696461206f64696f20656c69742c2076656c20616c69710075657420726973757320636f6e7365637465747572206e6f6e2e204d61656300656e61732074656d706f722c206d61676e612061632070686172657472612000616c697175616d2c20616e7465206c6967756c61206665756769617420717500616d2c206575206d6174746973206e756c6c61206e69736c206e6f6e206d61007373612e0a0a496e746567657220756c74726963657320736f64616c657320006a7573746f2e20416c697175616d20626962656e64756d207068617265747200612072697375732c2061632076697665727261206e69736920616363756d7300616e2075742e20457469616d2067726176696461206665726d656e74756d20006d6920696e207363656c657269737175652e20467573636520696e7465726400756d2c206c656f207175697320626962656e64756d206d61747469732c206a007573746f206d65747573206672696e67696c6c6120656c69742c2061632070006c61636572617420747572706973206469616d206661756369627573206e6900736c2e20457469616d206c616f72656574206c696265726f206c6f72656d2c002076656c2074656d707573206f64696f206469676e697373696d2065742e20004e756c6c6120666163696c6973692e20496e7465676572206461706962757300206d6f6c657374696520656e696d2c2061632074696e636964756e74207361007069656e20636f6e76616c6c69732075742e2043726173206d6f6c6c69732000636f6e736563746574757220666163696c697369732e2043757261626974750072207472697374697175652c20726973757320706f72747469746f72207675006c70757461746520756c7472696365732c206c6f72656d2073656d20646967006e697373696d206e657175652c20657520706f72747469746f72206d61676e0061206e697369207669746165207475727069732e20446f6e656320636f6e7300657175617420657374206575206469616d20666575676961742c2076656c2000766573746962756c756d206469616d206c6163696e69612e20457469616d2000756c747269636573206c65637475732073697420616d6574206f726369207300616769747469732c2076656c20616c69717565742065726f73206c6163696e0069612e20496e74656765722070686172657472612c20617263752065752062006c616e6469742064696374756d2c2076656c6974206f64696f20636f6d6d6f00646f206f64696f2c20757420636f6e7365717561742074656c6c757320717500616d206e6563206a7573746f2e205365642065666669636974757220736564002066656c69732061206d6178696d75732e204e756c6c616d20656c65696665006e64207363656c65726973717565206c6f72656d2c20696e206d6f6c65737400696520746f72746f72206d616c6573756164612076697461652e2045746961006d20636f6e64696d656e74756d2c20617567756520657420696163756c69730020646170696275732c206469616d206172637520706f72747469746f72207500726e612c20616320636f6e76616c6c6973206d61676e61206175677565207300656420646f6c6f722e2050686173656c6c75732076656c206f64696f207075007275732e0a0a457469616d20656c656966656e64206469676e697373696d20006e6973692066657567696174206c6163696e69612e205175697371756520650074206c61637573207669746165206172637520706f73756572652074656d700075732e204e616d20636f6e73657175617420657820696e206172637520756c007472696365732c2076656c2076656e656e61746973206e756e63206672696e0067696c6c612e20496e7465676572206575206a7573746f206964206e6962680020626962656e64756d2072757472756d2e20457469616d207363656c657269007371756520747572706973206c656f2c2061632074696e636964756e7420710075616d2064696374756d2065752e204475697320636f6e7365717561742063006f6e677565206a7573746f2c206469676e697373696d20626962656e64756d002073617069656e20656c656966656e6420656765742e204d616563656e617300206469676e697373696d206d6173736120757420626c616e646974206c616300696e69612e2050726f696e2066657567696174206e756e6320736564206c6f0072656d20616c697175616d2070756c76696e61722e20416c697175616d207600617269757320616e7465207365642073617069656e206469676e697373696d002c2065742064696374756d2073617069656e20696e74657264756d2e204165006e65616e206574206c656f2061756775652e2053656420756c74726963696500732074696e636964756e742065726f732c2073656420706f727461206d6175007269732066696e69627573206e65632e0a0a53757370656e6469737365206e006563206c6f72656d206c696265726f2e204d616563656e6173206e6563206c006967756c61206e6f6e20657820626c616e6469742073757363697069742e200050656c6c656e746573717565206c616375732072697375732c206f726e6172006520612063757273757320656765742c2074656d706f72207669746165206e0069736c2e204375726162697475722072757472756d20766f6c757470617420006578206120706c6163657261742e204d6f726269206d616c657375616461200074656c6c75732065752061726375206d6f6c6573746965206d61747469732e0020457469616d207363656c6572697371756520636f6d6d6f646f206175677500652c207175697320636f6d6d6f646f2076656c697420656c656966656e64200069642e204d617572697320617563746f72207669746165206d657475732071007569732076656e656e617469732e2050726f696e20626962656e64756d206600617563696275732074656c6c75732c20736f6c6c696369747564696e20696d0070657264696574206e69736920766f6c75747061742076656c2e20446f6e650063206661756369627573206d6f6c6573746965207175616d2c20657420667200696e67696c6c61206469616d2e0a0a446f6e656320696d706572646965742000657261742061206e6973692066696e696275732c207574206469676e69737300696d206e69736920666163696c697369732e204e756c6c6120696163756c690073207574207175616d20616c69717565742068656e6472657269742e205065006c6c656e74657371756520757420656c656966656e64206e657175652e2044006f6e6563206575206c6563747573206574206c656f20696e74657264756d200074696e636964756e742e204e616d20756c74726963657320656c6974206e690073692c2065676574206d6178696d7573207269737573206672696e67696c6c006120717569732e205365642076656c206e69736920617420747572706973200072757472756d2074696e636964756e742e204e756c6c6120636f6e677565200065726174206c6f72656d2c207365642066696e69627573206c616375732061006c69717565742065742e2050656c6c656e746573717565207574207175616d0020696e206f72636920736f64616c65732074656d706f72207574206575206e00657175652e2051756973717565206d616c65737561646120736167697474690073207269737573206e6f6e2076656e656e617469732e204e756e632066696e006962757320756c74726963696573206e69626820706f737565726520636f6e0073656374657475722e20496e7465676572206e6563206c6967756c61206e75006e632e205574206e6563206d617373612076656c206c6967756c612074726900737469717565206665726d656e74756d20696e2065752074656c6c75732e0a000a4d617572697320736f64616c6573206469616d2069642066656c6973206c00616f726565742c207175697320736f6c6c696369747564696e207475727069007320756c6c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207300617069656e20657420756c6c616d636f7270657220736f6c6c69636974756400696e2c2073656d206c6563747573206672696e67696c6c61207175616d2c2000617420706c6163657261742065782065726f732075742073617069656e2e2000496e206f64696f206e6973692c207661726975732073697420616d65742064006f6c6f722076656c2c20756c74726963657320706c6163657261742074656c006c75732e20557420646f6c6f72206d692c2073656d706572206e6f6e206d610078696d75732076656c2c2070756c76696e61722061742066656c69732e2045007469616d207269737573206e756c6c612c2065666669636974757220617420006c6f72656d206c6f626f727469732c20706f72746120656c656966656e6420006c6f72656d2e20566976616d757320617420636f6e64696d656e74756d206500726f732e204475697320657420696163756c6973206d692c2076697461652000636f6e736563746574757220617263752e20496e2065726f73206d6175726900732c2074656d706f7220717569732070656c6c656e74657371756520696e2c002070686172657472612076656c206c65637475732e204d6f72626920706f720074612c206c696265726f20617420736f64616c657320656c656966656e642c00206c61637573206c6f72656d20626962656e64756d206f64696f2c206e65630020706f72747469746f72206c65637475732074656c6c75732076656c207365006d2e204e756c6c61207363656c657269737175652065742075726e61206575002064696374756d2e205574206f726e617265206d61747469732074656d707500732e20557420626c616e646974206f64696f2061206d61737361206d617869006d75732c206e6563206d616c657375616461206c696265726f206661756369006275732e0a0a5574206d6178696d757320756c7472696369657320747269730074697175652e20457469616d206163206469616d206174206e756c6c61206c00756374757320756c6c616d636f7270657220696e20657520656c69742e2053006564206574206d617373612076656c206e6962682072686f6e637573207469006e636964756e742e2053656420636f6e677565207363656c65726973717565002074656d7075732e205175697371756520766f6c7574706174206d6173736100206c6f72656d2c2076656c2072757472756d20656e696d20636f6e64696d65006e74756d206e65632e20416c697175616d2074757270697320646f6c6f722c0020656666696369747572207365642064696374756d20616c697175616d2c20006d6174746973206964206c616375732e204d616563656e6173206665756769006174206e6973692071756973206d6178696d757320636f6e76616c6c69732e000a0a5365642074696e636964756e74207574206a7573746f207669746165200066696e696275732e204d617572697320626c616e6469742065726174206e75006e632c20766974616520616363756d73616e2061726375206672696e67696c006c6120717569732e2053656420756c7472696365732074696e636964756e7400206469616d2073697420616d657420626962656e64756d2e20416c69717561006d206661756369627573206c61637573206567657420766573746962756c75006d2068656e6472657269742e204e756c6c616d20766172697573206e656320006e6571756520657420656c656966656e642e2053656420766974616520747500727069732065742074757270697320656c656966656e642074656d706f722e002050656c6c656e74657371756520766573746962756c756d206172637520610020657569736d6f64206d61747469732e205072616573656e74206e6563207200697375732073697420616d6574207475727069732064617069627573207375007363697069742e20446f6e656320626962656e64756d2074656d707573206d006920696e2072757472756d2e20566573746962756c756d206d61737361206d00657475732c20696d7065726469657420657520736f64616c65732071756973002c20616363756d73616e2076656e656e6174697320617263752e20496e206e006f6e20706f7375657265206c696265726f2c2076656c207375736369706974002075726e612e0a0a53757370656e64697373652073617069656e206d65747500732c2070756c76696e6172206e6563206c61637573206d6f6c65737469652c00206567657374617320766573746962756c756d2065782e2056657374696275006c756d2074656d706f7220616e7465206e6563206e756e632074696e63696400756e7420666163696c697369732e20457469616d20626962656e64756d2c2000616e746520696e207072657469756d20636f6e6775652c206d61737361206c006f72656d206c6f626f727469732065782c206e65632072686f6e6375732074006f72746f72206d61757269732061632070757275732e20496e2072686f6e630075732076756c707574617465206d61676e6120617420657569736d6f642e20004d616563656e61732076656c206c616f72656574206a7573746f2c20696e20006c6163696e6961206f64696f2e2050656c6c656e74657371756520616c697100756574206c616375732061632076656e656e61746973206c75637475732e2000496e74657264756d206574206d616c6573756164612066616d65732061632000616e746520697073756d207072696d697320696e2066617563696275732e200051756973717565206c6163696e6961207072657469756d2075726e6120736f0064616c6573206d6178696d75732e20496e7465676572206469676e69737369006d207072657469756d206d6f6c6c69732e20536564206c656374757320656c0069742c20616c697175616d2061206469616d2069642c20646170696275732000766172697573206c6967756c612e204d6f726269206c6163696e696120736f0064616c6573206c6f72656d2c20696420616c697175616d206e69736c20706f00737565726520656765742e0a0a41656e65616e2070686172657472612c207400656c6c7573206163206469676e697373696d20656765737461732c206175670075652065737420656c656d656e74756d2066656c69732c2076656c206c6f62006f72746973206e69736920656e696d20636f6d6d6f646f207475727069732e002053757370656e6469737365206e756e63207475727069732c206c6f626f720074697320736564206d61757269732069642c20706f72746120736f6c6c69630069747564696e206a7573746f2e2050726f696e20656c656d656e74756d206d0061757269732073697420616d6574206f72636920696e74657264756d207469006e636964756e742e2053656420706f7274612075726e612066656c69732c200069642076656e656e617469732073617069656e207363656c65726973717565002065742e20566976616d7573206461706962757320706f72747469746f7220006a7573746f2c206964206d6f6c6573746965206e69736c20696163756c6973002074696e636964756e742e20496e206d6174746973206d6175726973207369007420616d657420636f6e76616c6c697320756c747269636965732e20446f6e00656320636f6d6d6f646f206567657374617320657261742076697461652061007563746f722e204e756c6c616d2066657567696174206d61676e6120657374002c20657420706f72747469746f72206573742074656d706f722061632e2041006c697175616d20766172697573206d69206575206c61637573206d6174746900732c2073697420616d6574207375736369706974206e69736920736f64616c0065732e2041656e65616e2065742068656e6472657269742076656c69742c2000696e20706c616365726174206e6973692e20446f6e65632071756973207665006c6974206d692e20457469616d20706c61636572617420657261742076656c002065726f73206672696e67696c6c6120636f6d6d6f646f2e0a0a5068617365006c6c7573207669746165206475692066656c69732e205072616573656e7420007072657469756d206d6174746973206e657175652c2065676574206672696e0067696c6c612066656c69732074656d706f722061742e20437261732061756300746f72206e69736c206e65632073656d206c6f626f72746973206d6174746900732e2050656c6c656e746573717565206d61747469732074696e636964756e00742074656d7075732e2050726f696e206c616f726565742073656d20612076006f6c75747061742072686f6e6375732e204d6f726269206575206d6175726900732073697420616d65742072697375732074696e636964756e74206f726e610072652e2041656e65616e20756c6c616d636f72706572206c61637573206e6f006e206e756e6320696d706572646965742c20657420656c656966656e64207400656c6c757320706c6163657261742e2043726173206574206d6920696e20640069616d206567657374617320706c616365726174206e6f6e2073697420616d006574206c65637475732e20416c697175616d20696163756c697320707572750073206c6f626f727469732c207363656c657269737175652065726f732065670065742c2076617269757320646f6c6f722e2043757261626974757220737573006369706974206e6571756520736564206567657374617320636f6e736571750061742e20496e2076656c20616c697175616d206d657475732c206c75637475007320636f6d6d6f646f206e6962682e2053656420636f6e736571756174207000756c76696e6172206d692c20736167697474697320616c6971756574206572006f73206d6178696d75732076756c7075746174652e2055742065742074656d00707573206c616375732e0a0a53757370656e646973736520706f74656e7469002e20447569732076656c2076756c707574617465206d61757269732c2075740020736f6c6c696369747564696e206d692e20446f6e65632076656c20616c69007175616d206c6967756c612c20656765742072686f6e6375732074656c6c7500732e205072616573656e74206e65632065726f732076697461652065726f73002076756c70757461746520617563746f722e204e756e63207375736369706900742c206d617572697320696420696e74657264756d20756c6c616d636f72700065722c20746f72746f72206a7573746f20646170696275732073617069656e002c207669746165206c6163696e6961206c656f2075726e61207669766572720061206e6962682e205175697371756520626962656e64756d20617563746f72002065726f732c206964206d6174746973206d617373612064696374756d2061002e205574206964206d69206e69736c2e20566573746962756c756d20657520006c7563747573206c616375732e20446f6e65632061206d6178696d7573206600656c69732e0a0a446f6e65632073656d206e69736c2c20756c7472696365730020612074656c6c75732075742c2070656c6c656e7465737175652066616369006c69736973206e756c6c612e205365642065742073617069656e207574206500726f7320636f6e64696d656e74756d20706f72747469746f722e204675736300652073697420616d6574206d657475732065782e20496e2061206578207369007420616d65742074656c6c75732070756c76696e617220636f6e73657175610074206120696420656e696d2e204d616563656e617320756c6c616d636f727000657220736f64616c6573207475727069732c207175697320756c6c616d636f00727065722065726f7320636f6e7365717561742065742e20496e74656765720020736f64616c6573206573742073697420616d657420616e74652074656d700075732c20696420616c69717565742066656c69732072757472756d2e204c6f0072656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365006374657475722061646970697363696e6720656c69742e204d616563656e61007320696420747572706973207669746165206573742076656e656e617469730020656c656d656e74756d2e0a0a446f6e656320696163756c697320677261760069646120636f6e73656374657475722e20457469616d20657569736d6f64200065726f73206567657420766573746962756c756d206672696e67696c6c612e0020496e20706f7274612c206572617420766974616520656c656d656e74756d0020677261766964612c20747572706973206c6f72656d206d6f6c657374696500206e6962682c20696420706861726574726120746f72746f72206d6574757300206c6163696e6961207475727069732e204d6175726973207072657469756d0020766172697573207475727069732c2065742063757273757320657820766900766572726120717569732e20536564206d616c657375616461206c656f20650074206d617373612074656d707573206c6163696e69612e204e756e63207369007420616d657420656e696d2073656d2e20446f6e65632076656c206772617600696461207175616d2c2076656e656e61746973207665686963756c612065720061742e0a0a496e206e6f6e206c61637573206d616c6573756164612c206d610078696d7573206e696268206e65632c20636f6e73656374657475722076656c0069742e204e756c6c61206575206772617669646120746f72746f722e205068006173656c6c757320696e74657264756d206665726d656e74756d20766172690075732e204d6f726269207661726975732076656c697420696e206c6163757300207363656c65726973717565206d616c6573756164612e2050686173656c6c00757320737573636970697420616c697175616d2065726f7320696e20747269007374697175652e20566573746962756c756d2061632075726e61206e756e63002e204d6175726973207072657469756d20746f72746f72206469616d2c206100206672696e67696c6c61206c65637475732074656d7075732061632e0a0a4d006f72626920696d70657264696574206d6f6c6c697320646f6c6f722c206e65006320656666696369747572207175616d20616c697175657420612e2056697600616d7573206c75637475732070757275732076656c206e69736c2065756973006d6f6420706f72747469746f722061632076697461652074656c6c75732e2000437261732073757363697069742074726973746971756520707572757320750074207363656c657269737175652e2050656c6c656e746573717565207369740020616d657420656c6974206964206c696265726f206665726d656e74756d2000736f64616c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c006120696e207175616d207072657469756d2c20696420616c6971756574206e0069626820636f6e7365717561742e204e756c6c6120666163696c6973692e200041656e65616e206f726369206c696265726f2c2068656e64726572697420750074206c6f72656d2076656c2c20706f72747469746f7220706f72747469746f0072206c696265726f2e20557420696420616363756d73616e206d617373612e00205365642073617069656e206c656f2c2074696e636964756e7420707265740069756d2061756775652076697461652c207669766572726120766f6c7574700061742073617069656e2e204d6f726269206d6f6c6c6973206f726369207365006420756c74726963657320636f6e64696d656e74756d2e20437261732061630063756d73616e20736167697474697320696d706572646965742e204e616d200074656d706f7220766573746962756c756d207475727069732c20636f6e6469006d656e74756d2074656d706f72206f64696f20656c656d656e74756d207665006c2e20566573746962756c756d20737573636970697420616e7465206120610072637520616363756d73616e2c2076656c20636f6e677565206d61757269730020677261766964612e0a0a50686173656c6c757320766f6c7574706174206d0061757269732065676574206c696265726f206c616f7265657420616c69717500616d2e20566573746962756c756d207269737573206e69736c2c2074656d7000757320617420766f6c75747061742076697461652c2074696e636964756e74002076697461652065726f732e20416c697175616d2076656e656e617469732000616e746520626c616e64697420707572757320666575676961742c20612061006c697175616d20616e746520626962656e64756d2e2050726f696e20696e7400657264756d20697073756d206e6962682c2076656c20706f7274612066656c00697320657569736d6f642065742e20457469616d20717569732074656c6c75007320646f6c6f722e2044756973206964206c616f72656574206f64696f2c20006574206375727375732072697375732e2053757370656e6469737365206c61006f7265657420646f6c6f72206575206e756c6c6120666575676961742c20730065642066657567696174206e756c6c6120626c616e6469742e20416c69717500616d20717569732061726375207175697320617567756520756c7472696365007320696163756c69732e20446f6e65632069642065726f73206e6f6e206e6900736920616363756d73616e206f726e6172652076656c20757420657261742e002053656420636f6d6d6f646f206c756374757320616e74652071756973207000756c76696e61722e205072616573656e7420616c697175616d206d6f6c6c6900732070757275732072686f6e63757320636f6e7365717561742e2055742076006974616520636f6e6775652072697375732e20496e206d6f6c6c6973206120007075727573206964206c6163696e69612e0a0a467573636520616c69717561006d2061756775652073697420616d6574206a7573746f2070656c6c656e746500737175652c20756c6c616d636f7270657220706f727461206475692069616300756c69732e2050726f696e20656765737461732076756c707574617465206e0069736c2c2076656c20637572737573206d6173736120706f72747469746f72002061742e20536564206e6f6e2074656c6c75732076656c206e756c6c612062006c616e64697420666163696c697369732e204d616563656e617320657261740020656e696d2c20736f64616c65732061206c6163696e69612076656c2c2061006c6971756574207574206e756c6c612e20496e74656765722066656c69732000617263752c20736f64616c65732076656c206661756369627573207369742000616d65742c20766573746962756c756d2065676574206c6f72656d2e204e75006c6c612076697665727261206f64696f206163206e756e63206c7563747573002c20657520706c6163657261742074656c6c757320616c697175616d2e204d006f726269206e65632073656d20657520616e746520706f737565726520736f006c6c696369747564696e2e204e756c6c6120616363756d73616e20636f6e7300656374657475722065737420766974616520756c747269636965732e20447500697320666163696c69736973207363656c65726973717565206d6175726973002c206e6f6e20636f6e64696d656e74756d2064756920766f6c75747061742000696e2e0a0a4d617572697320717569732066696e6962757320656e696d2e20004e756e6320656765742065726f7320616c69717565742c206d6178696d757300206c6f72656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e00204d6f7262692065676574206e756e6320696420726973757320657569736d006f6420626c616e6469742076656c20612072697375732e204d617572697320006120736f64616c65732074656c6c75732e2043757261626974757220626c61006e646974206174206e756e63206174206566666963697475722e204475697300206575206c696265726f206e656320647569206d6174746973206d6178696d0075732e2053656420636f6e7365717561742065726174206d61757269732c2000757420706f727461206c6563747573206665756769617420717569732e2056006573746962756c756d2076656c2074656c6c7573206e65632073617069656e0020636f6e6775652076656e656e617469732e20446f6e656320706c6163657200617420756c747269636573206d692e204675736365206c7563747573206e6f006e206d6175726973206163206375727375732e204e756c6c61206567657420006d61676e6120766974616520747572706973206d616c6573756164612076690076657272612e2050656c6c656e746573717565206174206c656374757320690064206d61676e612064617069627573206d6174746973207669746165206120007175616d2e0a0a496e206572617420657261742c20696d7065726469657420007574207175616d206e65632c20756c6c616d636f727065722072757472756d00207475727069732e204d6f72626920706c61636572617420656c697420617400206e6973692070656c6c656e74657371756520706c6163657261742e205072006f696e207669766572726120736f6c6c696369747564696e20637572737573002e2046757363652076656e656e6174697320626c616e646974206e69736c200073656420636f6e6775652e204675736365206d6f6c65737469652c2075726e00612076656c20636f6e76616c6c69732072686f6e6375732c20656c6974206d006574757320657569736d6f642065782c2071756973207665686963756c6120006d61737361207075727573206163206475692e2041656e65616e206e6f6e20006c61637573207665686963756c612c20656c656966656e6420656c69742073006f64616c65732c207661726975732073617069656e2e20536564206e756c6c0061206a7573746f2c206665726d656e74756d20706f72747469746f722076690076657272612075742c20706f727461206567657420656e696d2e2050656c6c00656e74657371756520636f6e736563746574757220736167697474697320740075727069732c206174206375727375732064756920706f737565726520696e002e205175697371756520612073757363697069742065726f732e2045746961006d20616c69717565742c20646f6c6f722061742064696374756d2072686f6e006375732c206d692065737420756c6c616d636f727065722072697375732c2000612074696e636964756e742074757270697320746f72746f72206e6f6e206e006962682e2053656420636f6d6d6f646f206469616d206163206f7263692076006f6c75747061742c207669746165206c6f626f72746973206d61676e612070006f73756572652e204475697320636f6d6d6f646f20656c697420696420657800207661726975732c206567657420706f737565726520697073756d2061756300746f722e20467573636520756c74726963696573206f64696f20657520636f006e67756520616c69717565742e2055742071756973206573742070756c7669006e61722c2076756c707574617465206c65637475732076756c707574617465002c20636f6e7365717561742073617069656e2e0a0a446f6e656320636f6e7600616c6c6973206d61757269732074656d707573207661726975732061756374006f722e20416c697175616d207472697374697175652064696374756d207075007275732c20696420677261766964612075726e6120616c6971756574207574002e20566976616d75732065752076656e656e6174697320616e74652c206d610078696d75732074696e636964756e74206f7263692e20557420617420616c69007175616d206c6f72656d2e20416c697175616d206e6f6e206c61637573206e00756c6c612e204d6f72626920766974616520656666696369747572206d61730073612c2076697461652072686f6e63757320657261742e2041656e65616e20006e6f6e20657261742071756973206d617572697320657569736d6f6420626c00616e6469742e205574207669746165206e756c6c612073697420616d6574200074656c6c7573206567657374617320636f6e7365717561742e205574206c69006265726f206c65637475732c20626c616e6469742070756c76696e6172207300757363697069742065752c20636f6e7365637465747572207669746165207300617069656e2e2043757261626974757220706f727461206e756e632066656c0069732c20717569732070656c6c656e746573717565206c656f206469676e69007373696d2061742e204d6f7262692076656c20696163756c6973206e696268002e20446f6e65632074696e636964756e742065737420657520696d706572640069657420706f72747469746f722e20566573746962756c756d20696e207475007270697320746f72746f722e0a0a50726f696e207669746165206172637520006e6962682e205072616573656e74206573742073617069656e2c2074696e63006964756e7420617420617263752076697461652c2076656e656e617469732000736f6c6c696369747564696e20746f72746f722e2050656c6c656e7465737100756520666163696c697369732c206f64696f20696e207472697374697175650020736f64616c65732c20657374206e6571756520657569736d6f642069707300756d2c20657520656c656d656e74756d206f726369206e6571756520766974006165206c696265726f2e20446f6e65632074656d706f72206c696265726f2000696e206c656f20636f6d6d6f646f2c2075742076756c707574617465206d6100676e61206c616f726565742e204d616563656e61732072757472756d20656c00656d656e74756d20766f6c75747061742e20536564206d6f6c65737469652c00206d6574757320657520656c656d656e74756d20616363756d73616e2c207300656d207175616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d00616c65737561646120616e7465206c61637573206c6f626f7274697320746f0072746f722e205365642076656c697420646f6c6f722c20636f6e73656374650074757220617563746f7220616c697175657420696e2c206f726e617265206500752073617069656e2e204e756c6c61206574206c65637475732061207075720075732073656d706572206d61747469732e204e756c6c616d206d61747469730020656c656966656e64206d6f6c65737469652e0a0a4d6175726973206c6f62006f727469732065726174206c616375732c20757420766573746962756c756d00206175677565207072657469756d2065752e20446f6e65632065742073656d00706572206d61757269732c2073697420616d65742067726176696461206c6500637475732e20447569732076656e656e61746973206d69206f7263692c2061002065666669636974757220646f6c6f7220617563746f722069642e204e756c006c61206e6f6e2075726e612075742065726174207665686963756c61207469006e636964756e74207574206964206a7573746f2e2041656e65616e206c616300696e696120657374206964206c7563747573206d616c6573756164612e20550074206f726e61726520647569207175697320636f6e736563746574757220700072657469756d2e20496e206163206a7573746f206163206e756c6c61207669007665727261207665686963756c612e2053757370656e646973736520696e2000766573746962756c756d206d657475732c206120736f64616c6573206c6f7200656d2e204d6f726269206e6f6e206c6967756c612076697461652074656c6c0075732066696e69627573207363656c6572697371756520617420696e20616e0074652e205175697371756520696e2073656d70657220646f6c6f722e2045740069616d206d6f6c6c69732c206d6574757320696420766f6c7574706174207300656d7065722c206d61737361206e65717565206c6163696e69612073656d2c0020696e20656666696369747572206c656374757320656c6974207574206e75006e632e2050726f696e206c6163696e6961206c6f72656d2071756973207475007270697320756c7472696365732c20757420666175636962757320646f6c6f007220656c656966656e642e20446f6e6563206c6f626f727469732069707375006d206575206572617420616c69717565742c2065752065676573746173206c006967756c6120656c656d656e74756d2e205072616573656e74206964206572006f732066696e696275732c206d6f6c6c69732074757270697320696e2c206d006f6c6c6973207175616d2e2050686173656c6c757320626c616e6469742063006f6d6d6f646f206e756e6320696e20626c616e6469742e204e616d207175690073207269737573207574206469616d206c6f626f72746973207361676974740069732e0a0a50726f696e20766f6c75747061742074656d707573207275747200756d2e2050726f696e20696d7065726469657420626c616e646974207361700069656e207175697320706c6163657261742e204e756c6c6120706f73756572006520647569206964206f64696f20657569736d6f642c20696420696163756c0069732075726e6120646170696275732e20446f6e65632070656c6c656e74650073717565206d617373612069642076697665727261206c616f726565742e20004e756c6c616d2071756973206c6163757320636f6e76616c6c69732c20626c00616e646974206c656f206e6f6e2c20616c697175616d206c696265726f2e2000536564206461706962757320617567756520696e2075726e61207068617265007472612c2061742073656d706572206c656374757320706c6163657261742e002053656420756c74726963657320726973757320696420696163756c6973200074656d7075732e20496e7465676572206665726d656e74756d2c2072697375007320657420636f6e736563746574757220636f6e6775652c206e756e63206500737420696163756c69732072697375732c20706f73756572652076656e656e00617469732065726f7320616e74652076656c2070757275732e20496e746567006572206c6163696e69612074656c6c7573207669766572726120726973757300207361676974746973206672696e67696c6c612e2043726173206e6f6e2069007073756d2071756973206e65717565207669766572726120666163696c6973006973206e6f6e20736564206475692e20467573636520636f6d6d6f646f2065006c656966656e64206a7573746f207175697320636f6e6775652e0a0a56697600616d7573207363656c657269737175652074696e636964756e74206e756e6300206469676e697373696d20636f6e64696d656e74756d2e2051756973717565002061726375206e69736c2c20756c6c616d636f72706572206e6563206c65630074757320717569732c20636f6e67756520616363756d73616e20657261742e0020437572616269747572207574206e697369207475727069732e20496e20760069746165206573742071756973206d657475732074656d7075732076657374006962756c756d206575206e656320617263752e2055742073656d206a757374006f2c206665756769617420657520636f6e73657175617420656765742c2075006c6c616d636f72706572206567657420697073756d2e205072616573656e7400207072657469756d206d6174746973206c656f2c2067726176696461206865006e647265726974206c696265726f2065666669636974757220656765742e20004d616563656e617320626c616e646974206e696268206469616d2c206e656300206c6163696e69612061726375206c6163696e69612065742e0a0a4675736300652074696e636964756e7420746f72746f722066656c69732e2053656420640069616d206e6962682c20637572737573206e656320646170696275732065670065742c206f726e61726520656666696369747572206d692e20446f6e65632000696420746f72746f72207669746165206d692064696374756d2076657374690062756c756d2e2050726f696e206964206c696265726f20616c697175616d200076656c69742074656d706f7220696d706572646965742073697420616d657400207669746165206c616375732e20437261732073697420616d6574206578200068656e6472657269742c206672696e67696c6c6120617567756520696e2c20006c616f72656574206f7263692e204d616563656e6173206c61637573206d65007475732c20656c656966656e6420736564206d657475732075742c2065756900736d6f6420657569736d6f642076656c69742e20496e746567657220696e2000616363756d73616e206d692e0a0a41656e65616e20696163756c6973207665006c206a7573746f20756c7472696369657320766f6c75747061742e20437261007320636f6e73656374657475722c2065726f73206e6f6e20756c6c616d636f007270657220696163756c69732c2076656c6974206578207665686963756c61002076656c69742c2073697420616d657420696163756c6973206a7573746f20006469616d206567657420657261742e20496e74656765722066696e696275730020736f64616c6573206d617373612073697420616d6574206d616c657375610064612e20496e2072686f6e6375732073617069656e206964207175616d207600697665727261207665686963756c612e20496e20686163206861626974617300736520706c617465612064696374756d73742e20446f6e656320616320706f0072747469746f72206e657175652c2073656420656666696369747572206c690067756c612e20446f6e6563206567657420616c697175616d206c616375732c00206e6f6e207665686963756c61206e69736c2e2053656420706c61636572610074206d617474697320636f6e76616c6c69732e20496e746567657220736f6400616c65732c206e69736c2061207665686963756c61206469676e697373696d002c2076656c69742074656c6c7573206566666963697475722070757275732c00206120766573746962756c756d206f64696f206c6163757320696420646961006d2e204e756c6c616d20766974616520626c616e64697420656c69742e20500072616573656e742074696e636964756e74206c656374757320656c69742c20006e6f6e2074656d707573206e69736c20677261766964612076697461652e20004e756c6c61206469616d2070757275732c206c616f7265657420766974616500206567657374617320696e2c20636f6e7365637465747572206574206d6175007269732e2053656420766172697573206d6f6c6c697320656c656d656e7475006d2e204e616d2073697420616d6574206d61676e6120677261766964612c200068656e64726572697420697073756d206e6f6e2c2074656d7075732073656d002e204d616563656e6173206469676e697373696d206d6f6c6c69732072686f006e6375732e205365642066656c6973206e69736c2c2073656d706572206174002074656c6c75732065742c206d616c65737561646120616c697175616d2069007073756d2e0a0a496e74656765722073757363697069742076656c6974206900642073656d206665726d656e74756d2c207175697320756c747269636573200073656d2074696e636964756e742e2041656e65616e2076656c20646f6c6f7200206e65632074757270697320656c656d656e74756d207363656c65726973710075652e2050726f696e206f64696f20746f72746f722c20616c697175657420006567657420696d7065726469657420717569732c20736f6c6c69636974756400696e206964206c616375732e2050656c6c656e74657371756520656e696d2000656c69742c207375736369706974206964207175616d206e65632c206375720073757320616c697175616d2065726f732e20446f6e656320626962656e6475006d2073697420616d6574206d657475732071756973207363656c65726973710075652e204e756e6320616320747572706973206a7573746f2e205365642070006c61636572617420746f72746f72206e6563206c6163757320736f6c6c69630069747564696e207363656c657269737175652e2050686173656c6c7573207600697461652063757273757320657261742c20616320756c747269636965732000746f72746f722e0a0a43726173206d616c657375616461206772617669646100206a7573746f2076656c207661726975732e204e756c6c616d206c616f7265006574206964206d617572697320696e20646170696275732e20437572616269007475722073757363697069742065782065676574207361676974746973206c0075637475732e20447569732071756973207669766572726120656c69742c20007175697320756c6c616d636f72706572206e756e632e204d61757269732065006c656966656e642c206d6173736120696e20626962656e64756d2061636375006d73616e2c206578206e69736920766573746962756c756d206469616d2c2000757420696163756c697320647569206f72636920736564207475727069732e00204e756c6c6120626962656e64756d2c2076656c697420657520636f6e7661006c6c69732073656d7065722c206d65747573206e69736c20706f7375657265002061756775652c2068656e64726572697420696163756c6973207361706965006e207175616d206574206469616d2e2050726f696e2076656c206e69736c200061756775652e20566976616d75732076656e656e61746973206d657475732000736564206d617572697320706f73756572652c20612068656e6472657269740020656e696d20766976657272612e204475697320636f6d6d6f646f206172630075206574206d61676e6120756c7472696365732070656c6c656e746573717500652e204e616d20696e206c696265726f2076656e656e617469732c2076657300746962756c756d206175677565206c6163696e69612c20766172697573206c006f72656d2e20457469616d206574206c7563747573206c616375732e205175006973717565206d6f6c65737469652c206e69626820617420756c74726963650073206d61747469732c206c616375732075726e6120636f6e76616c6c697320006e756c6c612c20696e206d616c657375616461206e756c6c61206c656374750073206e6f6e206469616d2e20457469616d206567657420697073756d206d6100676e612e2050686173656c6c75732066656c6973207175616d2c2062696265006e64756d2073697420616d657420726973757320717569732c20677261766900646120657569736d6f642066656c69732e0a0a46757363652076656e656e610074697320696e74657264756d20656c69742c20717569732072757472756d20006f72636920706f7375657265206e6f6e2e20496e20656c656966656e6420650073742071756973206469616d20666163696c697369732c206163206d616c65007375616461206d61737361206f726e6172652e204c6f72656d20697073756d0020646f6c6f722073697420616d65742c20636f6e7365637465747572206164006970697363696e6720656c69742e205365642063757273757320616c69717500616d206f64696f2076656c2073757363697069742e2050656c6c656e74657300717565206163206c696265726f206163206572617420616c6971756574207300616769747469732e204d616563656e617320616e7465206c616375732c20730063656c65726973717565206574207472697374697175652076697461652c20006566666963697475722065676574207175616d2e2050686173656c6c7573200072757472756d20656c69742061756775652c2071756973206c6163696e696100206f7263692074696e636964756e74206e65632e20496e20636f6e736563740065747572206964206f726369206575207363656c657269737175652e205065006c6c656e74657371756520616c69717565742074656d707573206f64696f200075742076756c7075746174652e2051756973717565206c696265726f206e6900736c2c2072757472756d2061742073617069656e206e65632c206c616f726500657420747269737469717565206a7573746f2e2043726173206c6163696e690061206e6962682069642065726f732072757472756d207363656c65726973710075652e204e756e63206e6f6e206d6175726973206f7263692e204e616d2069006d706572646965742064617069627573206a7573746f2e20496e2076656c20006c6163757320706f72747469746f722c20766172697573207269737573207500742c20616c697175616d20746f72746f722e2043757261626974757220696e00206d657475732076656c2065782076656e656e6174697320706f7274612e0a000a53757370656e6469737365207365642070756c76696e6172206573742e200050686173656c6c7573206e6563206d6920656c656966656e642c20666575670069617420617263752061742c20706f72747469746f72206e6973692e204475006973206567657420626c616e6469742065782e2043726173206120647569200065726f732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e20496e2073656d206c696265726f2c20766f6c757470617420650067657420647569207365642c2070656c6c656e746573717565206c7563747500732065782e20536564206574206c656f20656765742065726f7320696e7465007264756d206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c006573746965206c65637475732c206e6f6e207665686963756c61206c6563740075732e20446f6e656320656666696369747572206d616c657375616461206d0061757269732c2065676574207472697374697175652073656d206c6f626f720074697320612e204e616d2074656c6c75732075726e612c2072686f6e63757300206665726d656e74756d20737573636970697420717569732c20696d70657200646965742071756973206f7263692e20557420637572737573206572617420007669746165206665726d656e74756d20666163696c697369732e204e756e630020757420626c616e646974206c6f72656d2e20566573746962756c756d207400656c6c7573206469616d2c20636f6e67756520657520706f7375657265207500742c206c6f626f7274697320612073656d2e204e756c6c616d206163206f72006369206e6f6e2075726e6120656c656966656e6420696d706572646965742e000a0a5072616573656e74207669746165206e69736c206672696e67696c6c61002c2073757363697069742065726174207365642c20656c656d656e74756d200072697375732e20446f6e656320696420756c74726963696573206f64696f2e002050726f696e206d6174746973206d61757269732061206d61737361206d610078696d7573207472697374697175652e2050686173656c6c757320656765740020706f7375657265206e6962682e2050686173656c6c757320736564206d650074757320657420657820636f6d6d6f646f20766f6c75747061742e2041656e0065616e206c6163696e69612c206175677565206e6f6e206566666963697475007220636f6e6775652c206d617373612073656d207669766572726120646961006d2c207175697320706f737565726520647569206c6f72656d2061206c6f7200656d2e20496e2076756c7075746174652064756920657520656c6974207375007363697069742074656d706f722e204372617320696d70657264696574206d0061757269732073656420657820637572737573206c616f726565742e2056690076616d7573206e65717565206573742c20666163696c697369732071756973002066656c697320717569732c20706f72747469746f7220706f72747469746f0072206e756e632e204675736365206e6f6e206c6f626f72746973206c6f7265006d2e0a0a4d616563656e617320766f6c7574706174206661756369627573200074656c6c757320756c747269636965732070756c76696e61722e205068617300656c6c7573206120706f72747469746f7220617263752e20446f6e6563207600756c70757461746520656e696d207475727069732c20612074696e63696475006e74206469616d2074656d706f722065752e20446f6e656320736f6c6c69630069747564696e2c206578207669746165206c75637475732076657374696275006c756d2c206e69736c20616e746520756c6c616d636f72706572206d692c2000617420756c7472696369657320656e696d20646f6c6f722073656420656c6900742e205072616573656e74206d6f6c6c697320656666696369747572207269007375732071756973207072657469756d2e20566573746962756c756d2071750069732066696e69627573206475692c2065676574206f726e617265206c6563007475732e20457469616d2065676574206a7573746f20766573746962756c75006d2c20626c616e6469742073656d20696e2c206d6178696d75732065726f73002e0a0a50686173656c6c7573206120697073756d206575206d69206375727300757320736f64616c6573206e656320736564206e6973692e204475697320660072696e67696c6c6120657374206163206c6967756c612070756c76696e61720020677261766964612e2050726f696e207669766572726120616363756d7361006e2073656d2c2076656c2072757472756d206e69736c20636f6e736571756100742076656c2e204e756e63206672696e67696c6c61206d657475732076656c002066617563696275732074656d706f722e205072616573656e7420636f6e73006563746574757220646170696275732061756775652c206574207363656c6500726973717565206c656374757320636f6e64696d656e74756d206e65632e20004e756e6320616363756d73616e2c2075726e61206e6f6e20706c6163657261007420756c7472696365732c206d617572697320617567756520736f6c6c69630069747564696e20616e74652c2073697420616d657420616c697175616d206c00616375732076656c69742061632074656c6c75732e205365642076656e656e00617469732c2074656c6c7573206e656320617563746f722064617069627573002c206c6f72656d2073617069656e2073656d70657220657261742c206575200076697665727261207175616d2075726e61207669746165206c6f72656d2e20004d616563656e6173207375736369706974206e756e63207574206d6f6c657300746965206d61747469732e20416c697175616d2076697461652065737420640069676e697373696d2064756920656c656d656e74756d20617563746f722e0a000a4d6f726269206e756c6c61206c616375732c2073656d706572207369742000616d65742066656c69732065742c2076756c707574617465206d616c65737500616461206475692e2050726f696e20656765742065726f73206c6563747573002e20446f6e65632074696e636964756e7420656c69742076656c20736f6c6c00696369747564696e2073616769747469732e2050726f696e206163206d6f6c0065737469652073656d2e2053757370656e646973736520696163756c69732000766573746962756c756d2073656d206574206d61747469732e2050726f696e00206c6f626f72746973206c616f72656574206469616d2c2073656420706f730075657265206573742074656d706f722065742e2053656420696e20746f7274006f72207175697320657820696d70657264696574206c6163696e6961207175006973206e6563206c6f72656d2e204d616563656e617320636f6e76616c6c69007320656666696369747572206f7263692c20657420706f72747469746f7220006e69736c20666163696c69736973206e6f6e2e205365642068656e647265720069742076656e656e617469732066656c697320666175636962757320656c65006d656e74756d2e204d6f7262692061632064756920736f64616c65732c207000656c6c656e74657371756520697073756d2076656c2c20736f64616c6573200076656c69742e20457469616d20656e696d206c6f72656d2c2076656e656e6100746973206163206c616375732065742c2065676573746173206d616c65737500616461206c65637475732e20416c697175616d20736f64616c6573206e6962006820656666696369747572206c656374757320616c697175616d2076657374006962756c756d206e6f6e2061206f64696f2e204d61757269732069642066610075636962757320656c69742c2073656d70657220706f72747469746f72206e00756c6c612e204675736365206f726e6172652c206a7573746f20696e20766500686963756c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e006775652074656c6c75732c20757420666175636962757320697073756d207200697375732061206e756c6c612e20457469616d207669766572726120707572007573207175616d2c2076656c20706f72747469746f72206d6574757320696d00706572646965742065752e204d6f72626920636f6e76616c6c697320636f6e00736571756174206475692e0a0a4d61757269732074726973746971756520610072637520717569732072686f6e6375732064696374756d2e204e756e632064006f6c6f72206c696265726f2c206d6178696d757320617420656e696d207574002c20677261766964612072686f6e637573207175616d2e2056657374696275006c756d206d61747469732074696e636964756e7420666163696c697369732e00204675736365206e756c6c612061756775652c20656765737461732073656400206c6163696e69612076697461652c206d616c657375616461206163206e75006c6c612e204d617572697320696163756c6973207072657469756d206c61630075732c20612066696e696275732075726e6120706f73756572652061632e20004d6f72626920696e74657264756d20666175636962757320657261742c206100206c616f72656574206d61676e6120626c616e64697420612e204372617320006e6563206d61676e612071756973206c6163757320656765737461732069610063756c69732e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f862b093fd6807e033db6b24db5485814f79a98c7e241432e95c2e327042f821f24f4a59315cf4e881205f472e99835729977ab0aa9da85a334c2935e670bd44e9b734481fc5ab72859c76f741008a92c2836932af9e60697b6319f3454a141154fcd583f862b091a6c5d19e50b1b85ae2ef07477160381babf00f0906f5219ce09dee2e00d7d347cb0586d90b491637cdb1715e62d152b0a660592b94033f9c5f7987005fa5d1f84435585ddaaf4b3adc0a198b983f2ae007db73b90067a96ec214b24d7b9820b9"`; -exports[`eip4844 > w/ prepareTransactionRequest 1`] = `"0x03fa04018cf8b601820311843b9aca0084650118e68252089400000000000000000000000000000000000000008080c08504a817c800f842a0012580b7683c14cc7540be305587b0eec4e7ec739094213ca080e2526c9237c4a001243c18a024c835cce144b3b6b0eb878b7820c7c7b7d9feff80080d76519c4580a09554bdb7b889c4e22bc7f67ee8fa9deaef910ac5a558e3e7fee4c47cb91a168da06f7a94ce01cbaa7f25fed2599d62162d945cd6b415933d596838179caa6b29dcfa040008ba020000004c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e0073656374657475722061646970697363696e6720656c69742e20557420756c0074726963696573206f726369207175616d2c2073697420616d657420656c65006966656e6420616e7465206672696e67696c6c61206e65632e2050726f696e0020616c697175616d20696e2074656c6c7573206772617669646120636f6e7600616c6c69732e2050726f696e2072757472756d20636f6e7365717561742065006e696d20736564206d616c6573756164612e2041656e65616e206567657374006173206d657475732076697461652073656d20636f6e64696d656e74756d200073757363697069742e2053757370656e64697373652061726375206475692c00206772617669646120696e2065726f732065742c206d617474697320616c6900717565742074656c6c75732e20496e74656765722070656c6c656e7465737100756520616e74652066696e69627573206d692072757472756d20616c69717500616d2e20496e7465676572206d6174746973206469616d2073656420666575006769617420696d706572646965742e20467573636520696420626962656e6400756d206d617373612e20496e74656765722061742074656d70757320656e69006d2e20416c697175616d206574206d6f6c6c6973206d61676e612e0a0a536500642073656d70657220656c656d656e74756d206d61737361206e6f6e2076690076657272612e205365642073697420616d6574206d61676e612065742069700073756d207472697374697175652076756c7075746174652e2050656c6c656e0074657371756520696e206c696265726f2073656d2e2053757370656e64697300736520736f64616c65732074656d706f722061756775652074696e63696475006e7420666163696c697369732e204d616563656e6173207363656c657269730071756520697073756d20617420666575676961742064696374756d2e204d61006563656e61732076656c2075726e6120736564206d6574757320756c7472690063696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6175726973002c2073757363697069742065676574206172637520696e2c2072757472756d002072757472756d206d617373612e204d616563656e617320616320696d706500726469657420656c69742c2073656420737573636970697420697073756d2e002050726f696e206d6f6c6573746965206d6173736120617263752c20612063006f6e64696d656e74756d206f64696f20756c7472696365732073697420616d0065742e205072616573656e742072686f6e6375732065782070757275732c200073656420706c616365726174206e756e63206f726e6172652065742e205068006173656c6c75732061206e696268206d616c6573756164612c20756c6c616d00636f72706572206e69736c2061742c2070656c6c656e746573717565206c6f0072656d2e2050686173656c6c7573206c6f72656d20697073756d2c20756c6c00616d636f727065722075742076756c70757461746520616c69717565742c20007661726975732065676574206c6f72656d2e0a0a4d61757269732068656e640072657269742074696e636964756e74207175616d20616320696e7465726475006d2e20496e206120697073756d206e6f6e207175616d206d6178696d7573200066696e696275732e20536564206f64696f2065782c206c6163696e69612076006974616520697073756d2073616769747469732c207665686963756c612065006765737461732072697375732e204e756c6c616d20616320656c656966656e006420646f6c6f722c20657520706f72747469746f722074656c6c75732e204d00616563656e617320746f72746f722076656c69742c20636f6e64696d656e7400756d20696420656e696d2076656c2c20657569736d6f64206f726e617265200072697375732e20416c697175616d206964206c6f72656d20696e7465726475006d2c20616c697175616d20707572757320696e2c207068617265747261206a007573746f2e205574207669746165206c656f206469616d2e204e756c6c612000656c656d656e74756d206e756e63206d657475732c206e65632076617269750073206f64696f2066696e69627573206e65632e20457469616d207175697320006e69736c20696e74657264756d2c20766f6c757470617420646f6c6f72206500742c2072686f6e637573206e6962682e204d616563656e6173206e6f6e207200757472756d2061756775652c20657520656c656966656e64206d692e20446f006e6563206c6f626f7274697320616e7465207669746165206175677565207000686172657472612c206174206c6163696e696120746f72746f7220707265740069756d2e0a0a4d616563656e61732061742074656d706f72206d61676e612c0020696e20737573636970697420656e696d2e204e756c6c6120656c656d656e0074756d2072757472756d2065782c206567657420736f64616c6573206e756c006c6120636f6e76616c6c69732076697461652e20566976616d757320646967006e697373696d2c2065726f7320657520656c656d656e74756d20736f6c6c69006369747564696e2c206c6f72656d20647569206c7563747573207361706965006e2c206163206d617474697320646f6c6f7220656e696d2073757363697069007420656c69742e204e756c6c61206567657420696d70657264696574206d65007475732e2043757261626974757220636f6e64696d656e74756d206120707500727573207363656c6572697371756520756c7472696365732e20416c69717500616d206c696265726f206d692c20766573746962756c756d2065742074656d00706f722065752c2070686172657472612073697420616d657420656c69742e0020557420696420616c697175616d206c696265726f2e0a0a53656420636f6e007365637465747572206c65637475732066696e69627573206c656374757320006f726e61726520706f7274612e20447569732073656420636f6e677565207300617069656e2c20757420696d7065726469657420656e696d2e205365642065006c656d656e74756d20696163756c6973206c6967756c612c206e6f6e207665006e656e617469732073617069656e206c75637475732069642e2053656420650066666963697475722c20616e7465207669746165206d6f6c657374696520650066666963697475722c20656c697420697073756d20636f6e64696d656e7475006d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f64696f20007669746165206c616375732e2053757370656e64697373652065676573746100732073656d206f64696f2c20696e20766573746962756c756d206e69736c2000706f72747469746f722076656c2e20496e2074696e636964756e742c206d65007475732061206c6f626f7274697320756c7472696365732c20697073756d20006d6574757320766573746962756c756d206e756c6c612c20617420696d706500726469657420746f72746f72206e6571756520736564206d692e204d61757200697320617420616e746520616e74652e20566573746962756c756d2063757200737573207665686963756c6120756c7472696365732e204d6f726269206c750063747573206120657374206e656320696d706572646965742e205574206e6f006e2075726e61206672696e67696c6c612c2065676573746173206d65747573002065752c2064696374756d20656c69742e20496e2064696374756d20707572007573206964206c656374757320616c69717565742074656d706f722e20416c00697175616d206572617420766f6c75747061742e204e616d206175677565200066656c69732c20696d70657264696574206174206d61676e61206e65632c200070656c6c656e746573717565207661726975732074656c6c75732e0a0a4d61006563656e617320656765742065782070656c6c656e7465737175652c20656c00656d656e74756d206469616d2061742c20656c656966656e6420646f6c6f72002e204e756c6c616d20626962656e64756d2065726f73206e656320646f6c6f007220646170696275732c2061742073616769747469732065737420636f6e6400696d656e74756d2e205072616573656e74206e6f6e2068656e647265726974002065726f732e204d616563656e617320636f6e736571756174206d617373610020766974616520647569207665686963756c612c20757420756c747269636500732072697375732073656d7065722e2053757370656e646973736520646170006962757320616e746520646f6c6f722c206120626962656e64756d2076656c0069742074726973746971756520696e2e204d616563656e6173206e65632069006163756c697320656e696d2e20566573746962756c756d20736564206f6469006f2064696374756d2c20766573746962756c756d206f64696f20656765742c0020656c656966656e64206d657475732e204d6175726973206163206c69626500726f20736564206c656f2070756c76696e617220636f6e76616c6c69732e200044756973207665686963756c61206f72636920656c69742e2056657374696200756c756d2065666669636974757220656765737461732065782061206f726e006172652e2051756973717565206f726e617265206e6962682063757273757300206d6f6c65737469652070656c6c656e7465737175652e0a0a446f6e6563200074696e636964756e7420666575676961742073757363697069742e2056657300746962756c756d20756c6c616d636f7270657220646f6c6f72206e6f6e206c006967756c6120766573746962756c756d2c20612070756c76696e6172206e75006e6320636f6e7365717561742e20416c697175616d2070756c76696e617220007661726975732074656c6c757320657520617563746f722e204d6175726973002076697665727261207665686963756c612065782c20766974616520616c69007175616d20617263752064696374756d2069642e205175697371756520706800617265747261207669746165206d61676e6120696e206f726e6172652e2056006573746962756c756d207072657469756d207363656c65726973717565206f0064696f20696420636f6e73656374657475722e204e756c6c61207365642065006e696d207574207175616d20636f6e736563746574757220747269737469710075652e0a0a4e756c6c616d206f64696f206d61757269732c20666575676961007420657520666575676961742075742c20706f737565726520766974616520006d61676e612e205365642076697461652073656d706572207475727069732c002073697420616d6574207363656c65726973717565206e756c6c612e2051750069737175652074656d707573206e6f6e206d692073656420706f7274746974006f722e2050726f696e206c656f2065782c20706f73756572652065752065670065737461732076656c2c206d6f6c657374696520736564206d657475732e20004e616d20747269737469717565206c6163757320657420697073756d206d610078696d757320756c747269636965732e204e756c6c616d20706f7375657265002073697420616d65742073617069656e206d6f6c657374696520756c6c616d00636f727065722e204d6f72626920656765737461732c20657261742061632000626c616e6469742064696374756d2c2073617069656e206e69736c2066696e0069627573206e6973692c2073656420656666696369747572206c6563747573002073656d20657520697073756d2e2050686173656c6c7573206c656f206175006775652c2076756c70757461746520706c616365726174206175677565206500752c2074656d706f722074696e636964756e74206c6f72656d2e204675736300652073697420616d65742073656d70657220746f72746f722e0a0a5375737000656e646973736520706f74656e74692e204d616563656e6173206964206461007069627573207475727069732c206e6f6e2076756c7075746174652065782e00204e756c6c616d2072757472756d206c6967756c61206e65632072697375730020737573636970697420766f6c75747061742e20416c697175616d206c756300747573206e657175652073697420616d65742061726375207472697374697100756520766f6c75747061742e205365642076697461652066656c6973206c6f0072656d2e20416c697175616d20706c61636572617420656c656d656e74756d002073617069656e2c2076697461652076756c7075746174652072697375732000766f6c757470617420696e2e204d616563656e6173207669746165206475690020657261742e2050686173656c6c7573206672696e67696c6c61207361706900656e2073656420647569207665686963756c612c2076617269757320636f6e00736563746574757220616e746520736f6c6c696369747564696e2e20437261007320696163756c69732c2073617069656e20696e74657264756d20696d7065007264696574206566666963697475722c20647569206d61757269732070756c0076696e617220697073756d2c2061742076656e656e61746973206e69736c20006f64696f2071756973207175616d2e204e756e63206566666963697475722000636f6e73656374657475722073656d7065722e204e756c6c616d20706f737500657265206e756c6c612072686f6e6375732070756c76696e617220756c74720069636965732e204e756e632074656c6c757320617263752c2068656e6472650072697420736f6c6c696369747564696e206469616d2076697461652c206865006e6472657269742066696e696275732065782e0a0a536564206c6f626f7274006973206d6174746973206c6967756c612c20766974616520636f6e76616c6c006973206c656f2064617069627573206e6f6e2e204d616563656e617320766900746165206c61637573206575206e69736c20617563746f7220656c656d656e0074756d206e6563207669746165206c65637475732e204d616563656e617320007669746165206f726369207669746165206d6920756c6c616d636f727065720020706f72747469746f72206964206c6f626f72746973206e69736c2e20446f006e6563206964206d617572697320697073756d2e20416c697175616d20657200617420766f6c75747061742e20566976616d7573206c6f626f72746973206e00696268207574206573742076756c70757461746520666575676961742e2049006e7465676572206c696265726f207175616d2c20756c74726963657320617400206f7263692061742c20636f6e677565206665726d656e74756d206d61737300612e20457469616d2069642065726f7320696163756c69732c20636f6e6469006d656e74756d206f7263692074696e636964756e742c206d6174746973206d00657475732e204d616563656e617320756c7472696365732073697420616d65007420646f6c6f722069642070656c6c656e7465737175652e2056657374696200756c756d20706f727461206d6178696d7573206e69736c2c20696e2066696e006962757320746f72746f7220766f6c75747061742075742e2055742067726100766964612c20646f6c6f7220756c7472696365732068656e6472657269742000666575676961742c20656e696d2073656d20696e74657264756d206c696775006c612c20616320656666696369747572206572617420656c6974206964206c006f72656d2e20496e2073697420616d657420756c6c616d636f72706572206c006f72656d2e0a0a50686173656c6c7573206c6967756c612075726e612c2063006f6e736571756174206574206c756374757320612c206f726e617265206574002061756775652e20566573746962756c756d20657420616e7465206174206c006163757320626962656e64756d20696d706572646965742e20457469616d200074757270697320617263752c2063757273757320766974616520766976657200726120612c2068656e64726572697420766974616520617263752e2050726f00696e206f726e617265206d6175726973207574206d61676e61206d6f6c657300746965206d61747469732e20446f6e65632074656d706f72206c6563747573002071756973206d617373612076756c70757461746520696e74657264756d2e002050726f696e206575206c6967756c61206469616d2e204d616563656e617300206461706962757320747572706973206c65637475732c2075742066616369006c6973697320656c6974206469676e697373696d2075742e204e756e632062006c616e646974206f726369206120616e746520666163696c697369732c2061007420636f6e76616c6c69732066656c697320666163696c697369732e2043750072616269747572207375736369706974206d692061206c696265726f20706f0073756572652c2071756973206f726e617265206a7573746f2076697665727200612e2050656c6c656e746573717565206861626974616e74206d6f72626920007472697374697175652073656e6563747573206574206e6574757320657420006d616c6573756164612066616d6573206163207475727069732065676573740061732e204e756c6c612070756c76696e6172207363656c6572697371756520006d61676e612c2065676574206c6f626f72746973206e69626820636f6d6d6f00646f2061742e20447569732065676574207661726975732066656c69732c2000636f6e64696d656e74756d20706c616365726174206c65637475732e20416c00697175616d20617563746f722074656d706f722075726e612065752070756c0076696e61722e204d6f726269206375727375732074656d706f72206e65717500652c206e6f6e20626c616e64697420646f6c6f7220666163696c697369732000656765742e2053656420736564206c6f626f727469732073656d2e0a0a4d61007572697320756c7472696369657320656c69742075726e612c2076656c2061006c697175657420707572757320617563746f722076697461652e20507261650073656e742076697665727261206f64696f2074656c6c75732c20717569732000706f7375657265206e756c6c6120616c69717565742061742e204c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e20437572616269747572200065676574206d65747573206174206c6967756c6120656c656966656e642070006861726574726120696e206d616c657375616461206475692e20447569732000636f6e7365637465747572206469616d2075742066657567696174207275740072756d2e20566976616d757320657569736d6f64206e69736c2076656c206d006178696d75732073616769747469732e20496e20636f6d6d6f646f207369740020616d6574206c6f72656d2065742074696e636964756e742e205574207065006c6c656e746573717565206e756c6c61206e6f6e206d617572697320636f6e0064696d656e74756d2c2069642076756c707574617465206f64696f20626c61006e6469742e2053757370656e6469737365206e6f6e207072657469756d206d0061757269732c206e65632074696e636964756e742073617069656e2e0a0a460075736365206461706962757320657569736d6f64207475727069732c2075740020656c656d656e74756d20656e696d20657569736d6f64206e6f6e2e204e61006d2061206e6962682074656c6c75732e2050656c6c656e7465737175652069006163756c697320746f72746f722073656420706f72747469746f7220636f6e0064696d656e74756d2e204375726162697475722066617563696275732074750072706973206d6178696d75732c2076656e656e6174697320616e746520736500642c206d6f6c6c69732072697375732e205365642074656d707573206d6167006e612065676574206e756e6320706f72747469746f722c206174207275747200756d207175616d20636f6d6d6f646f2e20496e746567657220626c616e64690074207661726975732074656c6c75732073697420616d65742072757472756d002e2050726f696e206d6f6c6c697320747269737469717565206e6571756520007365642074656d7075732e204475697320706c6163657261742c206f726369002069642064696374756d20766573746962756c756d2c206c6967756c612064006f6c6f7220766f6c7574706174206c656f2c2076697461652066617563696200757320656e696d206e756c6c6120717569732065782e20437261732066617500636962757320657374206573742c2073697420616d657420616363756d7361006e206c6163757320696d706572646965742069642e204e616d206d6174746900732c206e756e6320736564206469676e697373696d20706c6163657261742c00206d617373612075726e6120696163756c69732076656c69742c207175697300206c7563747573206469616d206a7573746f206575206e6973692e20416c69007175616d206572617420766f6c75747061742e0a0a50656c6c656e74657371007565206e6571756520617263752c20636f6e677565206e6f6e2061756775650020717569732c2074726973746971756520696e74657264756d206e756e632e002050726f696e20646f6c6f7220746f72746f722c206461706962757320736500642070656c6c656e74657371756520612c2072757472756d2065676574206e006973692e20437261732065742074656d7075732074656c6c75732e204e756c006c6120706f72747469746f722c206e69736920657520617563746f7220766100726975732c206572617420746f72746f722072757472756d20747572706973002c206e6f6e2068656e64726572697420616e7465206e6571756520757420650073742e20416c697175616d2076756c7075746174652076656c69742076697400616520657569736d6f6420656765737461732e20496e7465676572207275740072756d206d6f6c6c697320617263752c20757420756c74726963696573206a007573746f206d6f6c6c697320656765742e20457469616d2061742066696e690062757320656e696d2c206574206d6174746973206d61757269732e204d61650063656e617320696e20616c69717565742061756775652e204e616d20756c7400726963657320656c656d656e74756d20617263752076656c20616c69717561006d2e20566573746962756c756d20696e206c6967756c6120747269737469710075652c206661756369627573206f64696f20656765742c206c6f626f7274690073206a7573746f2e204d6f726269206575206e756e632073697420616d65740020726973757320636f6e73657175617420616c697175657420736564206163002065782e20496e2068656e64726572697420756c74726963696573206c696700756c612c2071756973207375736369706974206c6563747573206469637475006d2065752e20536564206c616f7265657420636f6e67756520756c747269630065732e2050686173656c6c7573207375736369706974206d6173736120612000666163696c6973697320696d706572646965742e0a0a447569732074696e63006964756e742065726f7320717569732067726176696461207661726975732e002053757370656e6469737365206e6f6e206475692070757275732e20496e7400657264756d206574206d616c6573756164612066616d657320616320616e74006520697073756d207072696d697320696e2066617563696275732e20446f6e0065632061742070756c76696e61722066656c69732e20446f6e6563206e65630020616c697175616d2065726f732c2064696374756d20626962656e64756d2000617263752e20496e206e656320646f6c6f722066696e696275732c20707265007469756d206c6967756c612065742c20636f6e7365717561742065782e2049006e206861632068616269746173736520706c617465612064696374756d7374002e20457469616d2074656c6c757320656e696d2c20696e74657264756d207300656d70657220697073756d20736f64616c65732c206772617669646120667200696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e6961206a750073746f20736f6c6c696369747564696e206c616f72656574206d6f6c6573740069652e20457469616d20616320766573746962756c756d207175616d2c2069006420657569736d6f6420697073756d2e205574206174206772617669646120006c6f72656d2e2053757370656e646973736520696e74657264756d20656c65006966656e64206c65637475732c2065752073656d7065722070757275732076006f6c757470617420612e0a0a55742076656c20617567756520756c747269630065732c2074696e636964756e74206d6173736120612c20736167697474697300206e69736c2e2050726f696e206567657420616e746520616c697175616d2c00206f726e6172652061756775652070656c6c656e7465737175652c2064617000696275732070757275732e20496e206574206d6574757320617263752e205000656c6c656e74657371756520616c697175616d20626c616e6469742061726300752071756973207472697374697175652e204d617572697320746f72746f7200206d617373612c206d6178696d757320717569732076617269757320612c2000706f72747469746f7220636f6e73656374657475722073656d2e2050726f69006e207665686963756c6120707572757320657420696163756c697320636f6e0073656374657475722e20557420736f6c6c696369747564696e2066696e696200757320657820696e20656c656d656e74756d2e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e205072616573656e74206e656320696d7065007264696574206d61676e612e205574206d616c65737561646120696420707500727573206e656320766573746962756c756d2e2053757370656e64697373650020616363756d73616e2065726174206c656f2c20696e20666175636962757300206469616d20696163756c69732073697420616d65742e204475697320736f006c6c696369747564696e206c6563747573207175697320656e696d206c616300696e696120657569736d6f642076656c2075742061756775652e0a0a416c69007175616d20756c7472696369657320636f6e76616c6c69732074656c6c7573002c206964206567657374617320656c697420736167697474697320696e2e20004372617320706f72747469746f72206e69736920656765742073617069656e0020636f6e76616c6c697320706f73756572652e204d6175726973206772617600696461206e65717565207669746165206c696265726f206375727375732c2000696420636f6e736571756174206e657175652072686f6e6375732e20496e74006567657220616c69717565742065676574206e696268206163207068617265007472612e204e756c6c616d20696163756c6973206e69736c2066656c69732c00207175697320696d70657264696574206e756c6c6120756c74726963657320007365642e205175697371756520747269737469717565206c61637573206174002072686f6e63757320706f7274612e204e616d20616320636f6e64696d656e0074756d2075726e612e20536564206e656320706f72747469746f72206e696200682e205365642067726176696461206d61676e612069642070757275732070006f737565726520766573746962756c756d206e6f6e20736564206e6973692e0020566573746962756c756d2061726375207475727069732c20696163756c6900732076656c20636f6e7365717561742069642c206c6f626f72746973207369007420616d65742065782e205072616573656e7420717569732074656d706f72002061756775652e204e756c6c61206567657420656e696d20656c656966656e00642c2074696e636964756e74206c696265726f2073697420616d65742c206d006174746973206e6973692e20446f6e65632064756920657261742c2070756c0076696e61722076656c207075727573206e65632c20666163696c69736973200066696e69627573206c6f72656d2e204e756c6c616d20756c7472696365732000707572757320766573746962756c756d20636f6d6d6f646f20616c69717561006d2e0a0a4f72636920766172697573206e61746f7175652070656e61746962007573206574206d61676e6973206469732070617274757269656e74206d6f6e007465732c206e61736365747572207269646963756c7573206d75732e204e75006e6320626c616e646974206e756c6c612072697375732c2076656c20736f6400616c6573206c6f72656d206f726e6172652061632e20496e7465676572206e006f6e20646f6c6f7220626962656e64756d2c206f726e61726520746f72746f007220656765742c20756c7472696369657320697073756d2e2041656e65616e002066696e69627573206469676e697373696d206f726e6172652e204d6175720069732074656d7075732c206572617420617420626962656e64756d2061756300746f722c206c656f20656c6974206c6163696e6961206f64696f2c206174200074656d7075732061726375206475692071756973206573742e20507261657300656e74206672696e67696c6c61206c6f72656d206d616c6573756164612070006f72747469746f7220696d706572646965742e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d6f7262692076697461650020666163696c69736973206c6f72656d2c20766974616520636f6e7365717500617420697073756d2e20457469616d20696420656c656d656e74756d2065720061742e204e616d20646f6c6f72206c656f2c2074656d706f722061632065780020717569732c206469676e697373696d206665726d656e74756d20616e7465002e0a0a446f6e65632061206e756c6c612072697375732e204d6175726973200066617563696275732c206e756e63206163206d6178696d75732076656e656e00617469732c206d61676e612076656c6974207072657469756d20616e74652c00206e6f6e206665726d656e74756d20656c6974206d6175726973206e6f6e20006e756e632e20446f6e65632068656e6472657269742075726e61206174207400656c6c757320636f6e76616c6c69732c20616320666175636962757320656c006974206c6f626f727469732e204e756c6c616d20626962656e64756d20656c00656966656e64206d61676e612073697420616d657420696e74657264756d2e0020496e20696e20736f64616c657320746f72746f722c206e6f6e206c6f626f0072746973206d692e205072616573656e742076656c2073656d2061206f6469006f2076656e656e6174697320666163696c697369732e20566573746962756c00756d206163206d6f6c657374696520646f6c6f722c2061742066696e6962750073206e6973692e0a0a566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2046757363652061632074656d70757320617263752c2076697461650020696163756c6973206e657175652e2055742061206e69736c207574207665006c697420636f6e73657175617420636f6e64696d656e74756d207669746165002065676574206e6962682e2044756973206574206d61676e6120616c6971750065742c20636f6e76616c6c697320656c69742069642c20756c6c616d636f7200706572206d692e20566976616d757320696d706572646965742066656c697300207175697320636f6e7365717561742072757472756d2e204d6f7262692075007420617263752073697420616d657420617567756520636f6e677565207469006e636964756e742e2053757370656e64697373652061206d6174746973206f007263692e204e756e6320656765737461732c2076656c69742073656420646900676e697373696d2073656d7065722c20656c6974206d61757269732062696200656e64756d206e657175652c206567657420616c697175616d206e69736920006e65717565206120616e74652e204e616d2066657567696174206e657175650020646f6c6f722e20566573746962756c756d20616e746520697073756d20700072696d697320696e206661756369627573206f726369206c75637475732065007420756c74726963657320706f737565726520637562696c6961206375726100653b20557420696e20636f6e736563746574757220646f6c6f722e205175690073717565206e6f6e20636f6e677565206e657175652e0a0a4e756c6c6120730063656c657269737175652c206e65717565206567657420636f6e76616c6c69007320626962656e64756d2c206c6f72656d206d65747573207068617265747200612070757275732c2073656420626c616e6469742065726174206172637520006575206e6973692e204d617572697320706c616365726174206d6173736120006575206e6571756520766f6c75747061742c2073697420616d6574207669760065727261207269737573207363656c657269737175652e20496e2076656c2000766573746962756c756d206e756c6c612e20416c697175616d2072686f6e630075732061632061756775652076656c2076756c7075746174652e204d617572006973207669746165206469616d20696d706572646965742c20766f6c757470006174206e6962682065752c206661756369627573206d657475732e2045746900616d2070656c6c656e74657371756520747572706973206964206e6962682000636f6e73657175617420736f6c6c696369747564696e2e204e756e63206567006574206a7573746f2070756c76696e6172206d657475732072757472756d20006c75637475732073697420616d65742061206d657475732e204e756c6c612000666163696c6973692e2053757370656e646973736520657520617567756520006c65637475732e2053757370656e646973736520736f6c6c69636974756469006e20657569736d6f64207661726975732e2050686173656c6c757320616e74006520657261742c20666175636962757320696420746f72746f72206e65632c00207363656c6572697371756520766172697573206e756e632e0a0a45746961006d206672696e67696c6c6120766f6c7574706174206d692c20706f73756572006520766573746962756c756d206c6967756c6120756c74726963657320696e002e20446f6e6563207665686963756c6120747572706973207175697320756c0074726963696573207661726975732e20446f6e65632073656d70657220616e00746520657261742c20616320666575676961742074656c6c75732062696265006e64756d2069642e20446f6e656320697073756d206e69736c2c2070756c7600696e6172206e6563207175616d20696e2c20736f6c6c696369747564696e2000696e74657264756d20656e696d2e20566976616d7573206c616f72656574200074656c6c75732065676574206f72636920636f6e64696d656e74756d20736300656c657269737175652e2050726f696e206574206661756369627573206f6400696f2c206163206566666963697475722061756775652e20557420696e7465007264756d20747269737469717565206475692074656d70757320706f727461002e20416c697175616d206672696e67696c6c6120707572757320766974616500206e6962682074656d706f7220626962656e64756d2e205175697371756520006574207361676974746973206f7263692c2061742074656d706f722076656c0069742e205365642066696e696275732073617069656e20657420747572706900732073656d7065722c206e6f6e206d6f6c6573746965206e756e63206c7563007475732e20536564206a7573746f206e6973692c20736f6c6c69636974756400696e20696e20697073756d20696e2c206665726d656e74756d20707265746900756d206f64696f2e204e756c6c6120757420766f6c75747061742073656d2e000a0a436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e00204e756c6c61206e6f6e206f726369206d692e20566573746962756c756d20007361676974746973206f72636920657520636f6e64696d656e74756d20636f006e6775652e20446f6e656320736564206d61676e612070656c6c656e746573007175652c20706c61636572617420697073756d207365642c20616c69717561006d2073656d2e2043757261626974757220696d706572646965742061756775006520657420656c697420706c6163657261742c2061742070756c76696e61720020617263752066617563696275732e20566573746962756c756d2066657567006961742c20697073756d20617420756c747269636573206d6f6c6573746965002c206e65717565206f64696f20656c656966656e642076656c69742c206174002065676573746173206f72636920647569206574206573742e20496e746567006572207574206a7573746f206c65637475732e204e756c6c616d20666575670069617420696e74657264756d206f726369206e656320617563746f722e0a0a00446f6e656320616c697175657420616363756d73616e206d617373612c2076006974616520666163696c697369732072697375732e20467573636520707265007469756d206e756e63206e6f6e20636f6e73657175617420656c656d656e7400756d2e204d616563656e617320636f6e64696d656e74756d207363656c657200697371756520706f72747469746f722e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e204d6175726973206e6563207075727573206661750063696275732c2074656d707573206469616d206e65632c20756c74726963650073206f7263692e2041656e65616e2066617563696275732c2073617069656e0020757420706f72747469746f7220616c69717565742c206e756e6320657261007420636f6e6775652061756775652c2071756973206469676e697373696d200073656d20697073756d206574206469616d2e2053757370656e646973736520006772617669646120657569736d6f6420697073756d2c206120696d7065726400696574206e756c6c6120636f6e7365717561742061632e2050726f696e20710075697320636f6e73657175617420697073756d2c20696e20737573636970690074206e657175652e204e616d2076697461652076697665727261206c656f2e002041656e65616e20756c74726963657320706c61636572617420626c616e640069742e20496e7465676572206e6571756520617263752c20666163696c69730069732073697420616d6574206f726369207365642c20766573746962756c75006d206672696e67696c6c6120746f72746f722e2050656c6c656e746573717500652066657567696174206575206c6967756c612065676574206c6f626f72740069732e20536564206575206d6f6c6c69732065782c20696e206461706962750073206c616375732e20467573636520616c697175616d2c206e657175652063006f6e73657175617420666163696c6973697320706c6163657261742c2069700073756d206f72636920696163756c6973206a7573746f2c20696d706572646900657420706f7375657265206d61676e61206f64696f206e65632075726e612e0020437572616269747572206d6f6c6c69732c20657820696e20666163696c690073697320766f6c75747061742c206e697369206a7573746f20656c65696665006e64206c696265726f2c20612070656c6c656e74657371756520656e696d20006d61676e612071756973206e6962682e204d617572697320756c7472696369006573206469616d2065676574206c616375732070756c76696e61722c2065740020636f6e64696d656e74756d206e6962682073656d7065722e0a0a56697661006d757320746f72746f72207175616d2c20616c697175657420696e206e756e00632075742c206f726e61726520756c74726963696573206e657175652e205000656c6c656e74657371756520637572737573206163206a7573746f2076697400616520756c747269636965732e20446f6e65632065676574206e69736c207100756973206f726369206772617669646120766f6c75747061742065742069640020656e696d2e2053656420706f72747469746f72206c616375732071756973002073656d20756c74726963657320666163696c6973697320757420656765740020656e696d2e20416c697175616d20696163756c69732065726174206e656300206d617373612072686f6e6375732068656e6472657269742e20416c69717500616d206f726e6172652070686172657472612075726e612065752061756374006f722e20566976616d7573206964206469616d206120617567756520656765007374617320636f6e6775652e205072616573656e742068656e647265726974002073617069656e20696e206f72636920636f6e6775652c206567657420636f006e6775652073617069656e20696d706572646965742e205365642061756374006f7220657374206163206c7563747573206c6163696e69612e20496e746567006572206e65717565206e657175652c20656c656966656e642076656c206c65006f2069642c20626962656e64756d20756c6c616d636f727065722073656d2e0020566573746962756c756d2076656c20666163696c69736973206573742e2000536564207175697320766f6c7574706174207475727069732e0a0a4e616d20006d6174746973206d6f6c6573746965206d61676e612c20766974616520636f006e736571756174206d657475732e204e616d206d6178696d75732065756973006d6f6420656c6974206e6563206f726e6172652e204e756c6c61206d6f6c6c00697320696420707572757320717569732074656d706f722e2050656c6c656e007465737175652072686f6e637573206567657374617320666575676961742e00204475697320756c74726963657320656c6974207574206c6f72656d207075006c76696e617220736f6c6c696369747564696e2e2043757261626974757220006672696e67696c6c612076756c7075746174652076656e656e617469732e20004d61757269732074656d706f7220617563746f722075726e612e0a0a496e20006861632068616269746173736520706c617465612064696374756d73742e20004d616563656e617320617563746f72206d617474697320626962656e64756d002e20566573746962756c756d2074656d7075732072686f6e637573206c6563007475732c2069642072686f6e637573206e69736c206d6178696d7573206174002e204475697320766172697573206672696e67696c6c61206175677565206e00656320666163696c697369732e204e756c6c6120696163756c69732061207000757275732065676574206665726d656e74756d2e20457469616d206e656320007361676974746973206f7263692e205072616573656e74206d6174746973200066656c69732072697375732e204e616d206567657420656c656d656e74756d00206c6967756c612e20436c61737320617074656e742074616369746920736f0063696f737175206164206c69746f726120746f727175656e74207065722063006f6e75626961206e6f737472612c2070657220696e636570746f732068696d00656e61656f732e2050686173656c6c75732065676573746173207075727573002070656c6c656e7465737175652c2070656c6c656e7465737175652076656c006974206e6f6e2c206772617669646120656c69742e0a0a536564206e6f6e200074656d7075732070757275732e2053757370656e64697373652070756c7669006e6172206d65747573206e657175652c206e6f6e207472697374697175652000697073756d20706f727461206e6f6e2e205574206567657420747572706973002074696e636964756e742c2074656d706f722073656d20717569732c207665006e656e61746973206d61676e612e20566573746962756c756d206964206d610078696d75732072697375732e204475697320616c697175657420706f7375650072652066656c697320696e20706c6163657261742e2051756973717565207600656c6974206f64696f2c20656666696369747572206174206d617373612061002c20747269737469717565206f726e61726520646f6c6f722e204e756c6c61006d206567657374617320706c616365726174206475692075742073656d706500722e20416c697175616d20717569732073617069656e206d657475732e20440075697320656c656d656e74756d2c2065726174206e656320626c616e646974002072686f6e6375732c2065726f7320656e696d207363656c65726973717565002061756775652c206e656320766976657272612065726f73206c656f20657500206c656f2e204d6f7262692073656420666163696c69736973206a7573746f002e20566976616d75732073697420616d6574206d61676e612068656e64726500726974206c656f206772617669646120617563746f722e0a0a4e756e63206300757273757320616c6971756574206f64696f2e204e756e6320696163756c6900732065742074757270697320617420756c747269636965732e204e616d207600756c70757461746520656e696d20656765742070757275732074656d70757300206f726e6172652e204e756c6c616d20636f6e736571756174206d6f6c657300746965206469616d2c20766974616520756c747269636573206e6962682070006f72747469746f722065742e20566573746962756c756d20766f6c757470610074207574206c6f72656d20656765742070656c6c656e7465737175652e204e00616d2064617069627573206c696265726f206d692e2050656c6c656e746573007175652074696e636964756e74206e696268206e657175652c206120696e7400657264756d206c6f72656d20636f6e6775652076656e656e617469732e205000686173656c6c757320696e2073656d206574206d617373612066617563696200757320616363756d73616e2074696e636964756e742076656c206e6962682e000a0a4e756c6c61206d616c657375616461206e69736c206e69736c2c20657500206d6f6c657374696520697073756d206d6f6c6c697320656765742e20416c00697175616d2076756c70757461746520707572757320736564206c6967756c006120736167697474697320616c69717565742e20496e20616c697175616d20006469616d20677261766964612072757472756d2070756c76696e61722e2049006e206d616c6573756164612075726e612065676574206f726e6172652065670065737461732e20566573746962756c756d207669746165207363656c6572690073717565206573742c206567657420766573746962756c756d206f7263692e002050656c6c656e746573717565206672696e67696c6c61206d616c6573756100646120706f73756572652e204e756c6c6120696e74657264756d206c656f20007669746165207072657469756d20706f73756572652e204e616d206d6f6c6c0069732065726f73207365642074656c6c7573206d6174746973207361676974007469732e0a0a53757370656e646973736520636f6e64696d656e74756d206c006563747573206574206c6f72656d20657569736d6f64206375727375732e20004d6175726973206172637520617263752c2072757472756d20636f6e7365710075617420707572757320696e2c206567657374617320696163756c6973206c00696265726f2e204d6f726269207068617265747261206d6178696d7573206d00617373612c206567657420626c616e646974207475727069732070756c7669006e61722065742e204d6175726973206e656320646f6c6f722076656e656e61007469732c2070656c6c656e746573717565206d61676e612069642c2061756300746f722075726e612e204d616563656e6173207669766572726120706f7274007469746f72206e6973692c2076656c20756c74726963696573206572617420006375727375732061742e20467573636520636f6e6775652074656c6c7573200076697461652073617069656e20747269737469717565206665726d656e7475006d2e20446f6e656320696d706572646965742073656d206e6f6e206d61757200697320756c7472696365732076656e656e617469732e204372617320756c74007269636573206c6f72656d206c656f2e20536564207365642076656e656e6100746973206e657175652c20766974616520656765737461732066656c69732e00205072616573656e7420617420616e746520706f7274612c20636f6e64696d00656e74756d206c65637475732076697461652c20706f72747469746f72206e00657175652e204e616d2074656c6c7573206c616375732c20747269737469710075652074656d706f72206e756c6c61206e65632c20706c6163657261742062006962656e64756d2061756775652e204e756c6c616d20657569736d6f64207600697665727261206f7263692c206575206772617669646120656e696d20636f006e64696d656e74756d20626962656e64756d2e2053757370656e6469737365002065676574206c6f72656d20766974616520697073756d20706c616365726100742070656c6c656e74657371756520696420636f6d6d6f646f206f64696f2e00204675736365206d61747469732075726e612075742064756920636f6d6d6f00646f2c206e656320636f6d6d6f646f206475692070686172657472612e0a0a00496e206861632068616269746173736520706c617465612064696374756d7300742e204e616d206a7573746f206e6962682c207665686963756c612061206c006967756c612065752c206d617474697320656c656966656e64206c6967756c00612e205175697371756520656765742074757270697320612061756775652000747269737469717565206665726d656e74756d2e204e756c6c616d20766974006165206c61637573206d6f6c65737469652c207363656c65726973717565200061756775652061742c20656c656966656e64206e69736c2e204e756c6c6120006d61676e612065726f732c20636f6e76616c6c697320736564206f64696f20007363656c657269737175652c206c6f626f7274697320636f6e76616c6c697300206e6962682e204e616d2061742073616769747469732061756775652c2065007520766172697573206c6967756c612e204e756c6c616d20706f737565726500206d6178696d7573206e697369206e656320616c69717565742e2045746961006d207363656c657269737175652071756973206469616d20656765742065670065737461732e205072616573656e7420756c74726963696573207363656c6500726973717565206d69206e656320626962656e64756d2e2056657374696275006c756d20616c697175616d2074656c6c75732076656c206a7573746f206c61006f726565742c207574207072657469756d2073656d206f726e6172652e204e00616d20616e7465206e6962682c2066696e69627573206e6563207361706965006e20612c2076656e656e6174697320636f6e6775652072697375732e20496e002076656c206e65717565206120656e696d20636f6e7365637465747572207000656c6c656e7465737175652e20566976616d757320636f6e76616c6c69732000657374207574206e756c6c6120736167697474697320706f73756572652e200050656c6c656e74657371756520626962656e64756d20736f64616c65732069007073756d2065742068656e6472657269742e0a0a536564207269737573206600656c69732c20736f6c6c696369747564696e206575206d6f6c6573746965200065742c20657569736d6f6420656765742065782e20457469616d206567657400206e756c6c61206e6962682e20437261732067726176696461206120746f7200746f722076697665727261207661726975732e2050686173656c6c7573206600696e696275732c2073617069656e20657420616c697175616d20756c747269006365732c206d61757269732065726f7320706f72747469746f722065726f73002c20616320636f6e677565206c656f206573742065676574206d6175726973002e20536564206e756e632076656c69742c2065676573746173207365642065006c69742065752c20657569736d6f64206d6178696d75732073617069656e2e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b2056657374006962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071756973200076756c7075746174652061742c20736f6c6c696369747564696e207369742000616d6574206573742e205365642070756c76696e61722c2076656c69742073006564206469676e697373696d20766976657272612c206d6173736120646f6c006f722073656d706572206c6f72656d2c206e6f6e206d6f6c6573746965206d006175726973206f64696f2065742070757275732e204d616563656e6173206c006f626f7274697320696e74657264756d206e756e63207574206d6f6c6573740069652e20536564206d6f6c6c697320636f6d6d6f646f2076656e656e61746900732e20496e74657264756d206574206d616c6573756164612066616d65732000616320616e746520697073756d207072696d697320696e206661756369627500732e2055742073656420617263752076656c69742e204d617572697320617500677565206e756c6c612c206f726e617265206e656320616c697175657420730065642c20636f6d6d6f646f20696e206475692e0a0a496e746567657220736f006c6c696369747564696e2075726e612065676574206e756c6c61207068617200657472612c206e6f6e20766172697573206e657175652070756c76696e6172002e204e756c6c61207574206c656374757320736564206d617572697320756c006c616d636f7270657220706f7274612e2051756973717565206e656320646900616d207472697374697175652c2064617069627573206c656374757320612c0020616c697175616d206e6962682e2043757261626974757220616c697175650074206d6f6c6c69732073617069656e207574206d6f6c65737469652e205068006173656c6c7573207361676974746973206e69736c207669746165206d617800696d75732066617563696275732e20446f6e6563206d6178696d757320612000647569206575207661726975732e20457469616d2072686f6e63757320746f0072746f722076656c206e756e63206665726d656e74756d2070756c76696e61007220736564206e656320657261742e20416c697175616d207574206c656f20006e6f6e206e69736920646170696275732076756c7075746174652e20496e74006567657220616363756d73616e20636f6e6775652072686f6e6375732e205500742076756c707574617465206f64696f20656c69742c207072657469756d200073656d7065722065726174207375736369706974206e65632e205375737065006e6469737365206d6174746973207475727069732076656c2065726f73207000756c76696e617220756c7472696365732072757472756d2073697420616d65007420616e74652e204475697320656c656966656e64206d6178696d75732061007567756520696e207363656c657269737175652e20446f6e6563206e6f6e2000746f72746f722073697420616d657420657261742066617563696275732061006c69717565742e205365642074656d70757320747269737469717565207269007375732c207072657469756d207472697374697175652064756920636f6e7600616c6c69732065752e0a0a50686173656c6c757320616c697175616d2074750072706973206174206c656f20706f73756572652c2073656420616363756d7300616e206e69736c2074656d7075732e204d616563656e6173207669746165200073617069656e206a7573746f2e2050686173656c6c75732074656d70757320006672696e67696c6c612070656c6c656e7465737175652e2050656c6c656e7400657371756520617420646f6c6f72206964206d6175726973206c616f726565007420637572737573206e6f6e2071756973206d657475732e204475697320610063206d69206e6f6e2074656c6c7573206461706962757320706f7274746974006f72206e6f6e206574206c6967756c612e20457469616d20736f64616c6573002069642074757270697320696e20756c747269636965732e2053656420616e007465206c616375732c2068656e64726572697420757420706f72747469746f00722075742c206665726d656e74756d207669746165206c656f2e0a0a437261007320706861726574726120616e746520616e74652c2076756c70757461746500206665756769617420726973757320666175636962757320656765742e205000726f696e2073697420616d65742074656c6c75732072686f6e6375732c20760065686963756c61206469616d206e6f6e2c2065676573746173206573742e200043726173207669746165206c696265726f206e657175652e20446f6e65632000697073756d2066656c69732c20696e74657264756d2076656c20656765737400617320656765742c20616c6971756574206e65632065726f732e20446f6e650063206e697369206d617373612c20766573746962756c756d2076656c20656e00696d2065742c206461706962757320636f6e67756520697073756d2e20507200616573656e7420647569206573742c20636f6e677565207669746165206d6f006c657374696520717569732c206d616c657375616461206567657420646961006d2e20457469616d206e6f6e2076697665727261206f7263692e2056657374006962756c756d206d6f6c6c69732065726f73206174206c656374757320706f0072747469746f7220756c6c616d636f727065722e20496e2066657567696174002066656c6973206e656320657820756c7472696365732c2073656420666572006d656e74756d206a7573746f2066696e696275732e2044756973206e6f6e2000706f7375657265206e657175652c20657420636f6e736571756174206f726300692e20416c697175616d206575206a7573746f20756c7472696365732c207600656e656e6174697320746f72746f722061632c2072757472756d20656e696d002e0a0a496e7465676572206469676e697373696d207175616d206575206d6100757269732066696e6962757320666163696c697369732e204d617572697320006c6163696e6961206a7573746f206c65637475732c2076656c206c756374750073207175616d20766f6c757470617420766f6c75747061742e205574206e6f006e206f726369206e756c6c612e2041656e65616e20617563746f72207361700069656e206120726973757320656c656d656e74756d206d616c657375616461002e204e616d2065676574206c6563747573206c696265726f2e20416c69717500616d20697073756d206d617373612c20736f6c6c696369747564696e2061630020696163756c697320612c206d6178696d7573206575207475727069732e20004d616563656e61732076656c206e756e632076656c2065726f7320766f6c750074706174207472697374697175652076697461652061742065782e204375720061626974757220657420656e696d206d6f6c6c69732c207072657469756d2000646f6c6f7220717569732c2068656e647265726974206c616375732e20496e002074656d70757320657569736d6f6420646f6c6f722c206964206469637475006d206d657475732072757472756d20717569732e0a0a43757261626974757200207072657469756d206c6f626f72746973207363656c657269737175652e20004d61757269732076656c206d69206120697073756d207665686963756c6120007363656c657269737175652e204e756c6c6120666163696c6973692e20446f006e656320636f6e736571756174206f64696f2061206572617420756c6c616d00636f7270657220666163696c697369732e2044756973206d6173736120656e00696d2c20756c74726963696573206e6f6e2075726e6120717569732c2065750069736d6f64207072657469756d20746f72746f722e20457469616d2068656e00647265726974206c656374757320766974616520656c656d656e74756d207600756c7075746174652e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e20536564206f64696f206d61676e612c20636f6e7365006374657475722073697420616d657420706f7274612076697461652c2076690076657272612061206d61676e612e204372617320657520697073756d20656c00656966656e64206f64696f20766976657272612072757472756d206574206e006f6e206c6f72656d2e20517569737175652071756973206c656f2075742072006973757320756c6c616d636f727065722073757363697069742076656c206e006563206469616d2e20467573636520646170696275732065726f73206e6f6e00206e69736c2066617563696275732c20657420656666696369747572207365006d20706c6163657261742e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20416c697175616d2069642073656d206163206c6f72656d2000706f72747469746f72206c616f72656574206163207175697320656c69742e000a0a446f6e65632076656c20646f6c6f72206d6178696d75732c206d6f6c6c006973206d61676e612073697420616d65742c2070686172657472612076656c0069742e2041656e65616e2070656c6c656e74657371756520737573636970690074206c6563747573206174207665686963756c612e20446f6e6563206e656300206661756369627573206469616d2e204e616d20656765742064756920657500206d6175726973206461706962757320616c697175616d2064696374756d20006575206d61757269732e20446f6e6563206c6563747573206d657475732c20006d6f6c657374696520636f6e73657175617420756c747269636965732065670065742c206c616f72656574206e6563206475692e20446f6e6563206575206c00656374757320717569732076656c697420656c656d656e74756d2065756973006d6f642e204d616563656e617320626962656e64756d206c61637573207369007420616d657420736f6c6c696369747564696e206c6163696e69612e0a0a510075697371756520737573636970697420706f73756572652070757275732063006f6e64696d656e74756d20706f7274612e20457469616d2068656e64726572006974207574206c696265726f20696e2072757472756d2e204e756c6c616d2000756c74726963696573206c696265726f20657420647569206c6f626f7274690073206672696e67696c6c612e20496e746567657220757420656c6974206d6100676e612e2051756973717565207665686963756c61206d6f6c6c6973206c65006f2c206964207665686963756c61206d61676e6120616c6971756574207574002e20457469616d206e6f6e20706f72747469746f72206e69736c2c207369740020616d65742076756c707574617465206469616d2e2050726f696e206e657100756520657261742c20737573636970697420656765742066656c697320696e002c20677261766964612066696e69627573207175616d2e2050686173656c6c007573206d617474697320746f72746f722072697375732c20757420656c656d00656e74756d206d6574757320737573636970697420626962656e64756d2e0a000a4e756c6c616d207175616d2065782c20706f72746120696e2070757275730020696e2c206d6f6c65737469652074726973746971756520646f6c6f722e2000457469616d207472697374697175652072697375732076656c206c6163757300206672696e67696c6c612c206174206c75637475732075726e6120616c69710075616d2e20416c697175616d2065752066656c697320666575676961742c2000696163756c6973206c6f72656d2073697420616d65742c2070756c76696e61007220697073756d2e204e616d2076697461652074696e636964756e74206d6100676e612e204d617572697320756c6c616d636f727065722c206d657475732000636f6e64696d656e74756d20736f64616c657320756c6c616d636f72706572002c2073656d2074656c6c757320636f6e7365637465747572206c6563747573002c2061742074656d7075732073617069656e206d61757269732076656e656e0061746973206d61757269732e2041656e65616e20766573746962756c756d2000646f6c6f722065782c2076656c2076697665727261206e696268206d617869006d7573207365642e20457469616d20636f6d6d6f646f206d616c65737561640061206f7263692e204e616d20616363756d73616e206469616d206e6563206e00756e6320766f6c7574706174206566666963697475722e20467573636520700072657469756d20697073756d206c656f2c207175697320696e74657264756d00206172637520736f6c6c696369747564696e20656765742e2050656c6c656e00746573717565206d617474697320617420697073756d206567657420707265007469756d2e0a0a536564206c656f206d692c207068617265747261207369740020616d657420696d706572646965742065752c2074696e636964756e742065007420746f72746f722e2055742071756973207072657469756d206d61676e61002c20657520616c697175657420697073756d2e2050726f696e20616320756c0074726963657320697073756d2c2076656c206d6f6c6573746965207361706900656e2e20457469616d20736f64616c6573206e65717565206163206f726e610072652070686172657472612e204d6f7262692071756973206175677565207300697420616d65742075726e6120706c6163657261742070756c76696e61722e00204375726162697475722076617269757320666163696c69736973207269730075732c206964207375736369706974207175616d20696d7065726469657420006d616c6573756164612e20416c697175616d20646170696275732c2069707300756d2076656c20636f6e64696d656e74756d206d61747469732c206c696775006c6120657374206375727375732074656c6c75732c20657520696e7465726400756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6120717561006d206e6973692c20706f737565726520657420616363756d73616e20696e7400657264756d2c2076756c707574617465206e6f6e2070757275732e204e756e00632076617269757320696d706572646965742066656c6973206e656320696e0074657264756d2e2050726f696e2076656e656e617469732061206c6967756c006120657420636f6e73656374657475722e2050686173656c6c7573206e6563002065726f73206d6f6c6c69732c20756c7472696369657320656c6974206e6f006e2c206c6163696e6961206d692e2053757370656e6469737365206c696775006c6120617263752c206665726d656e74756d20617420617563746f722071750069732c20656c656966656e64207669746165206e69736c2e0a0a53656420660065726d656e74756d20707572757320696e206f64696f2070756c76696e6172002c20766573746962756c756d20656c656966656e642065737420636f6d6d6f00646f2e20467573636520766172697573207365642074757270697320696e2000666575676961742e20557420616320666163696c69736973206f64696f2e2000557420766f6c757470617420697073756d20646f6c6f722c20696e2065756900736d6f6420646f6c6f7220696e74657264756d2069642e20536564207361700069656e206573742c20696d70657264696574206575206f726e6172652065670065742c2074656d70757320656765742066656c69732e2050686173656c6c7500732070656c6c656e7465737175652c206e756c6c612073697420616d6574200066696e6962757320677261766964612c207175616d206e69736c206469637400756d206a7573746f2c2073697420616d6574206672696e67696c6c6120646900616d206c616375732065676574206573742e20566573746962756c756d2062006c616e646974206d617572697320696e20616e7465206d6178696d75732076006f6c75747061742e2050656c6c656e746573717565206861626974616e7420006d6f726269207472697374697175652073656e6563747573206574206e6574007573206574206d616c6573756164612066616d6573206163207475727069730020656765737461732e20566573746962756c756d2066656c6973207269737500732c2073616769747469732076656c20636f6d6d6f646f207365642c20706f0072746120617563746f722073656d2e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d616563656e6173206e656320706f0072747469746f722066656c69732e20446f6e656320656c656d656e74756d200073656d206e756c6c612e0a0a416c697175616d20656c656d656e74756d20650075206c6f72656d206964206c75637475732e204e756e63206174206e69626800206573742e205072616573656e7420666175636962757320766172697573200065726174206e656320706f73756572652e204e756c6c616d207175616d206c00616375732c20766f6c7574706174206e6563206c616f72656574206e6f6e2c0020706f7375657265206163206c6967756c612e2050726f696e2071756973200065676573746173206e69736c2c20736564206c75637475732066656c69732e00204e756c6c61207072657469756d207175616d206e65632066696e696275730020656c656966656e642e20457469616d206d617572697320656e696d2c207200686f6e6375732076656c206d616c657375616461207365642c20636f6e6469006d656e74756d2076697665727261206c696265726f2e20416c697175616d20007175616d2073656d2c2072757472756d2061742073617069656e206e65632c00206c616f7265657420666163696c69736973207475727069732e204e616d20006e65632074656d707573206573742e204d616563656e617320766172697573002c206e69626820617420636f6e73656374657475722074656d7075732c206e00756e63206c6f72656d206672696e67696c6c6120617263752c20696d70657200646965742072757472756d206e69736c2064756920612061756775652e20500072616573656e7420706c6163657261742073617069656e20736564206d6920006d6f6c6c697320666163696c697369732061206e65632070757275732e20500072616573656e7420736f6c6c696369747564696e2066656c6973206d61737300612c2076656c206d6174746973206c656f2068656e6472657269742061632e002053757370656e646973736520657569736d6f642064696374756d2074696e00636964756e742e0a0a416c697175616d2064617069627573206c6f72656d2000657520736f64616c65732066617563696275732e204e756c6c612074726973007469717565206f64696f2065742072697375732064696374756d2c20756c7400726963696573206c6f626f72746973206c6967756c61207361676974746973002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e204e756e632074656d7075732076656c2065726174207669746165206c610063696e69612e204e756c6c6120696e20656765737461732065726f732e204e00756c6c616d2076656c20646f6c6f722076656c2076656c697420706c616365007261742076756c70757461746520696e20736564206c616375732e20416c69007175616d206c6f626f7274697320616e746520696e2074656c6c75732069610063756c69732c206120636f6d6d6f646f207175616d20616363756d73616e2e002050726f696e2066657567696174206c6967756c61206964206e756e63207600756c70757461746520646170696275732e20457469616d207072657469756d00207669746165206475692073697420616d657420616c697175616d2e204165006e65616e206c6f626f727469732072757472756d206e6973692c2061207465006d7075732065726f7320666163696c697369732069642e204d617572697320006e6f6e2061726375206174206e6973692076697665727261206375727375730020657520616320646f6c6f722e0a0a4e756e6320696e206f64696f206d692e00204e616d206d617474697320736564206c6967756c612073697420616d6574002074656d706f722e20496e74656765722064696374756d207269737573206600617563696275732c2076656e656e6174697320616e74652065752c20756c74007269636573206d61757269732e20446f6e6563206e656320636f6e64696d65006e74756d2065782e2053656420666163696c69736973206f64696f20647569002c207669746165206672696e67696c6c61206d617572697320617563746f7200206e6f6e2e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e2053757370656e646973736520717569732074656c6c7573206c00616f726565742c20756c7472696365732073656d206e65632c207363656c650072697371756520656c69742e20536564207363656c65726973717565206573007420766f6c75747061742c20636f6e64696d656e74756d20616e746520612c002076656e656e61746973206d617373612e204d6f726269206e65632061756300746f72206c65637475732c206163207072657469756d206e6962682e20467500736365207363656c65726973717565206d61737361206e6f6e206375727375007320706f7274612e20566573746962756c756d206d65747573207075727573002c20636f6e736571756174206964206672696e67696c6c6120612c2074656d00707573207068617265747261206c65637475732e20566573746962756c756d0020736f64616c6573206c6f626f7274697320756c7472696365732e0a0a4e61006d2073697420616d657420626c616e646974206573742e204675736365207300697420616d65742074696e636964756e7420646f6c6f722e20446f6e6563200076656c206e697369206c616375732e204d617572697320706f7375657265200075726e6120616320656c656966656e6420616c69717565742e205375737065006e6469737365206661756369627573206665726d656e74756d206c69626572006f2c20616320617563746f72206d617373612068656e647265726974207465006d706f722e20467573636520706f72747469746f722061726375206163206c00656374757320626962656e64756d20636f6d6d6f646f2e205365642061756300746f72206575206f64696f2076656c20616c69717565742e20436c6173732000617074656e742074616369746920736f63696f737175206164206c69746f72006120746f727175656e742070657220636f6e75626961206e6f737472612c200070657220696e636570746f732068696d656e61656f732e20566976616d757300206574206c756374757320656e696d2e20566573746962756c756d2074656d00706f7220616e746520736564206d61747469732064696374756d2e205175690073717565207068617265747261206172637520656765742075726e6120756c0074726963657320617563746f722e204d6f72626920656c656966656e642063006f6e736571756174206d692069642068656e6472657269742e20467573636500206d617474697320616e746520636f6e64696d656e74756d20706f73756572006520736f64616c65732e20437572616269747572206c6f626f72746973207500726e612073697420616d6574206d617474697320656765737461732e204d610075726973206665756769617420656c69742074656c6c75732c20756c747269006369657320696d70657264696574206469616d2074656d7075732076656c2e000a0a566573746962756c756d206672696e67696c6c6120747269737469717500652075726e6120657520706f7274612e2050726f696e206665756769617420006e69736c207475727069732c207574206c6f626f727469732072697375732000696d706572646965742061742e2050686173656c6c75732073697420616d65007420616c69717565742066656c69732c20766974616520706f737565726520006d692e20416c697175616d20736167697474697320766172697573206e69620068206e6563206f726e6172652e2050656c6c656e7465737175652074696e63006964756e742076697461652065737420657520616c697175616d2e20447569007320696163756c697320757420617263752073656420656c656d656e74756d002e20467573636520616363756d73616e2c20646f6c6f72206e6f6e2074656d0070757320616363756d73616e2c20646f6c6f72207175616d20617563746f7200206e657175652c2071756973206f726e61726520616e7465206c656f206964002070757275732e2050686173656c6c75732073656420656c656966656e642000656c69742e204372617320657520706f737565726520616e74652e20496e2000616e7465206c6f72656d2c2070686172657472612073697420616d65742076006573746962756c756d207365642c2072686f6e637573206964206a7573746f002e2055742074656d707573206469676e697373696d207665686963756c612e00204d616563656e6173206d61757269732076656c69742c2065676573746173002073697420616d6574207661726975732076697461652c20666163696c69730069732073697420616d6574206c6967756c612e0a0a4d6175726973206772610076696461206c656f2073697420616d6574206f7263692076656e656e61746900732c207574206d6178696d75732073617069656e20636f6e7365717561742e00204d6f726269206e6563206f7263692065782e20566976616d757320766568006963756c61206469676e697373696d207075727573207365642074696e63690064756e742e20467573636520657569736d6f64206e6f6e20656e696d2065740020636f6d6d6f646f2e205072616573656e7420766f6c7574706174206d6f6c006573746965206f726e6172652e20566976616d757320636f6e64696d656e7400756d2076656c697420656c656d656e74756d2c207072657469756d20747572007069732065752c20626c616e6469742072697375732e204675736365207065006c6c656e746573717565206d6178696d7573206e6973692061632073656d700065722e20416c697175616d20757420657569736d6f642076656c69742c207300656420656c656d656e74756d206c6f72656d2e204d616563656e617320696400207269737573206e6f6e206d61737361206772617669646120636f6d6d6f64006f2e204e756c6c616d20696e20707572757320696420656c69742066616369006c6973697320636f6e6775652e2041656e65616e20636f6e6775652076756c00707574617465206c616f726565742e20416c697175616d206567657420656c0069742074656c6c75732e205175697371756520737573636970697420717561006d206163206d6173736120626962656e64756d20656765737461732e20416c00697175616d2071756973206578206e6f6e2076656c6974207363656c657269007371756520756c6c616d636f727065722069642065676574206d61676e612e002041656e65616e20612073656d206e6f6e2065726174206c6f626f727469730020636f6e6775652e0a0a43726173206e6f6e20647569206f64696f2e20517500697371756520766f6c7574706174207363656c657269737175652069707375006d206174207661726975732e20536564206f726e6172652073656d20736564002076656e656e6174697320636f6e7365717561742e2044756973206f726e610072652076656e656e61746973206d6f6c6c69732e20536564206578206e65710075652c2065666669636974757220626962656e64756d20706c616365726174002065742c20736f6c6c696369747564696e2076656c206f7263692e20496e740065676572206e696268206e657175652c20666163696c69736973206e6f6e20006d61757269732076656c2c20636f6e73656374657475722074726973746971007565206e756c6c612e204e756e632073697420616d657420706861726574720061206c656f2e204e756c6c616d206c656f206f7263692c20696d70657264690065742073697420616d657420696e74657264756d20717569732c2069616375006c6973206575206e69736c2e20416c697175616d2073656420747269737469007175652073656d2c206e6563206c6f626f7274697320746f72746f722e204d00616563656e617320736f64616c6573207075727573206e656320616c69717500616d20706f72747469746f722e20447569732075742066656c69732065726100742e0a0a437261732061206d6173736120696d706572646965742c2061636300756d73616e2072697375732069642c207375736369706974206e756e632e2000446f6e65632073656d70657220656e696d206575206d61676e6120636f6e730065717561742074696e636964756e742e2053757370656e646973736520636f006e736571756174206c6563747573207669746165206d6574757320616c697100756574206c616f726565742e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e20446f6e656320696e74657264756d206469616d00206174206e69626820616363756d73616e2c20657420617563746f72206d6100737361206c6163696e69612e20467573636520696420657820766974616520007269737573206c616f7265657420706f72746120636f6e64696d656e74756d00206567657420656e696d2e2050686173656c6c7573206c6563747573206f6400696f2c20666163696c6973697320612074656d707573207365642c20736f6400616c6573206575206475692e204e616d20696e206d616c657375616461206f0064696f2e205175697371756520706c61636572617420697073756d2076656e00656e617469732072697375732074656d7075732066617563696275732e205000656c6c656e74657371756520656c656d656e74756d20646f6c6f72207175690073206672696e67696c6c612074656d7075732e20457469616d2074696e63690064756e7420766172697573206c6f72656d20696e206f726e6172652e204e61006d206120656c656d656e74756d206f7263692e2050686173656c6c7573206700726176696461206e69736c20657520656c697420756c747269636965732c2000657420626962656e64756d2074656c6c75732066696e696275732e0a0a437200617320626c616e6469742070756c76696e6172206d657475732c2061632069006e74657264756d2066656c6973206d6178696d757320626962656e64756d2e002041656e65616e20626962656e64756d20696d7065726469657420636f6e6400696d656e74756d2e204e616d206e6f6e206c61637573206c6967756c612e2000517569737175652073656420766573746962756c756d2073617069656e2e2000536564207665686963756c612074696e636964756e74206c656f207175697300206c6163696e69612e20536564206c61637573206c6f72656d2c20756c74720069636573206e6563206c6f72656d207365642c20706c61636572617420766f006c7574706174206d657475732e205365642075742073656d2073697420616d00657420746f72746f7220756c7472696365732073757363697069742076656c00206174207475727069732e0a0a5574207669746165206175677565207369740020616d657420656c69742070756c76696e61722068656e647265726974206e0065632061206c6967756c612e20446f6e656320706f727461206e6973692063006f6d6d6f646f20616e7465207665686963756c612073656d7065722e205574002066696e696275732c207075727573207574206661756369627573206d6f6c006c69732c2066656c6973206e65717565206d616c657375616461206e696268002c2061632076656e656e61746973206e756c6c612076656c69742061206665006c69732e204d617572697320677261766964612c206c6967756c6120696420006c6163696e696120766976657272612c206a7573746f206c696265726f2076006172697573206c6967756c612c2073697420616d657420706f727461206c6f0072656d206c696265726f2061206d657475732e20416c697175616d20756c6c00616d636f72706572206d61757269732073617069656e2c2061206772617669006461207075727573207363656c6572697371756520717569732e204e756c6c00616d2072757472756d20746f72746f722073697420616d6574206f64696f2000656666696369747572207072657469756d2e2044756973206c616f7265657400206566666963697475722076656c69742c20612073656d7065722066656c6900732e2050726f696e206e696268206c616375732c20637572737573207369740020616d6574206c656374757320717569732c2065666669636974757220766500686963756c61206475692e20446f6e65632061726375206c656f2c207275740072756d2075742063757273757320696e2c207363656c6572697371756520650074206c616375732e204d616563656e61732074696e636964756e742061726300752061206e6571756520666575676961742c2076656c2064696374756d206e0069736c2073656d7065722e20446f6e6563206e756e632076656c69742c2063006f6d6d6f646f20696420746f72746f722076697461652c20616c697175657400206661756369627573206c6f72656d2e2041656e65616e2076617269757320006d61747469732073617069656e2065676574206d6f6c6c69732e20446f6e6500632076697461652075726e6120756c6c616d636f727065722c206469676e69007373696d20656e696d2076697461652c20766573746962756c756d206d65740075732e2050686173656c6c757320636f6e73656374657475722065726f732000696d706572646965742c20677261766964612065726f732069642c206d6f6c006c69732076656c69742e0a0a5574206163206c6163757320636f6e76616c6c0069732c207665686963756c61206e6571756520717569732c2065666669636900747572206f7263692e205574206d69206c616375732c206566666963697475007220657420736f6c6c696369747564696e2075742c206661756369627573200073697420616d657420616e74652e2053656420636f6e64696d656e74756d20006567657420656c697420617420677261766964612e20457469616d206e656300206e69736c2073656420656e696d20706f72746120706c6163657261742e20005072616573656e74206672696e67696c6c61207361676974746973206c656f002c2076656c2074656d706f72206f64696f206d6f6c6c69732076697665727200612e20566573746962756c756d2066696e69627573206a7573746f207269730075732c2065752073656d706572206475692066696e696275732061632e204d00617572697320706c616365726174206c6563747573206e6973692c206e6f6e0020766573746962756c756d20746f72746f72206d61747469732061632e204e00756c6c61206e656320626962656e64756d207175616d2e0a0a53656420657400206469616d2065676574206c696265726f2070756c76696e6172206672696e0067696c6c6120756c74726963696573206964207475727069732e20507261650073656e7420657520656e696d206672696e67696c6c612c20706c61636572610074206172637520696e2c20766573746962756c756d206e657175652e2045740069616d207665686963756c6120657261742064696374756d206e6962682065007569736d6f6420736f6c6c696369747564696e2e205072616573656e74206e0065632074757270697320616c69717565742c206c6f626f72746973206c656f0020717569732c207665686963756c61207175616d2e2050686173656c6c7573002073656420626962656e64756d206e6973692e204d616563656e61732069640020646f6c6f72206567657420616e746520626c616e6469742064617069627500732e20446f6e656320656c656d656e74756d20736564206e696268206575200073616769747469732e20467573636520636f6e6775652073656d206c6f7265006d2c206e6f6e206672696e67696c6c61206f64696f20617563746f7220612e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b204d61656300656e61732073656420636f6e7365637465747572206a7573746f2e2053656400206566666963697475722061207175616d2073697420616d6574206d617869006d75732e0a0a416c697175616d20636f6d6d6f646f20616e7465206574206d006f6c657374696520706f72747469746f722e204d616563656e617320766f6c007574706174206e69736c207363656c657269737175652c206c6f626f7274690073206d61757269732061632c2064696374756d206d617373612e205068617300656c6c7573206d616c657375616461206c6163696e6961206f64696f206964002066696e696275732e204d616563656e61732061206d61676e61206f64696f002e20467573636520697073756d2075726e612c2073616769747469732066610075636962757320616e7465207365642c20756c747269636573206461706962007573206d61757269732e2053757370656e6469737365207574206f64696f2000717569732073656d206461706962757320616c697175616d20696e2069642000646f6c6f722e205574206d61747469732071756973206f64696f20766974610065206c6f626f727469732e20416c697175616d20616320746f72746f7220610063206d657475732073656d70657220766976657272612e20416c697175616d00206e65632064696374756d206d617373612c2076656c2073757363697069740020656c69742e2044756973207365642073656d206575206e69626820636f6e00736563746574757220696163756c69732076656c2075742061756775652e200044756973207669746165206c75637475732075726e612e204e616d206e756c006c61206e6962682c20626c616e6469742073697420616d65742073656d706500722076697461652c206d6f6c6c6973206c6f626f72746973206e756e632e200053656420757420666175636962757320746f72746f722c20656765742069610063756c6973206f7263692e20496e206120626c616e646974206475692c20610074207068617265747261206d657475732e20457469616d2068656e64726572006974206c696265726f207669746165206c656374757320737573636970697400206f726e6172652e2051756973717565206d6174746973206c6163757320610074207068617265747261207661726975732e0a0a4d616563656e61732066610063696c6973697320656c697420756c747269636573207072657469756d206c006f626f727469732e2046757363652076656c20766573746962756c756d2065007261742e20457469616d206175677565206d617373612c20666575676961740020766974616520657261742061632c206c6f626f7274697320766f6c757470006174206d61676e612e20446f6e6563206d616c65737561646120736564206c006967756c6120717569732066696e696275732e204e756c6c616d20656666690063697475722076697665727261206475692c206e6f6e20766573746962756c00756d20746f72746f7220696e74657264756d2076656c2e2050726f696e2061006e7465206573742c20626c616e64697420696e207363656c65726973717565002073697420616d65742c20756c74726963696573206e65632065726f732e20005365642065726174206e69736c2c20677261766964612065742074656d706f00722065742c206665726d656e74756d2073697420616d65742065782e205365006420656666696369747572206d6920766974616520657569736d6f6420667200696e67696c6c612e2053757370656e6469737365206567657420617563746f0072206e6962682e20446f6e6563206e6563207068617265747261206f64696f002c2068656e64726572697420636f6e64696d656e74756d20646f6c6f722e0a000a4d6f72626920696d706572646965742c206469616d206e65632076756c700075746174652072757472756d2c20746f72746f72206c6f72656d20696e7465007264756d20616e74652c207669746165206375727375732074757270697320006f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265657420760069746165206d61676e612073697420616d657420617563746f722e20437261007320617563746f72206e69736c20717569732076617269757320636f6d6d6f00646f2e204d6175726973206174206c6163696e6961206e756c6c612e2056650073746962756c756d20666575676961742073656d206174206d61737361206600617563696275732064696374756d2e2046757363652076656c207361706965006e2073697420616d6574206a7573746f20737573636970697420616363756d0073616e2075742076656c206f7263692e204e756c6c6120666163696c697369002e204e756c6c616d20736f6c6c696369747564696e20737573636970697420006e6973692c20657520616363756d73616e206d6574757320636f6e73656374006574757220766573746962756c756d2e20517569737175652074656c6c757300206d657475732c2073656d7065722074656d707573206d657475732071756900732c2064696374756d20656c656d656e74756d2066656c69732e205375737000656e646973736520636f6e76616c6c6973207075727573206163206c6163750073207072657469756d2c20616320616c6971756574206573742066696e69620075732e2050656c6c656e74657371756520626962656e64756d20707572757300206d61676e612c2073697420616d657420637572737573206e65717565206600657567696174206e6f6e2e2043757261626974757220696e206d6178696d750073206a7573746f2e2041656e65616e20696163756c6973206c6163696e6961002072686f6e6375732e0a0a536564206672696e67696c6c612073656d20616300206d61737361206d616c6573756164612c206d617474697320696d7065726400696574207175616d2073757363697069742e2043726173206c6163696e6961002061632065782076697461652072757472756d2e205365642065782066656c0069732c20706f727461206e656320617263752061632c2066696e6962757320006c7563747573207475727069732e204475697320697073756d206c69626572006f2c20696e74657264756d20757420696e74657264756d2075742c20656c65006d656e74756d206163206a7573746f2e204d6f7262692074726973746971750065206c6f626f7274697320706c6163657261742e2050656c6c656e746573710075652074696e636964756e742074656d70757320656e696d20617420636f6e006775652e204e756c6c61206d61747469732074696e636964756e74206e697300692c2061742072686f6e63757320616e746520656c656966656e642068656e006472657269742e204e756c6c616d2064696374756d20706861726574726120006475692e20566573746962756c756d206c75637475732065737420757420610075677565207472697374697175652c2073697420616d657420656c656d656e0074756d2074656c6c757320656c656966656e642e20496e7465676572206e650063206f726e617265206a7573746f2c207175697320706f727461206469616d002e2051756973717565206e6f6e206e697369206e6f6e206c6f72656d207075006c76696e617220706f73756572652061206567657420656c69742e20536564002065676574206c6163696e69612073656d2e2050686173656c6c7573206e6f006e206e756c6c612074656d7075732c207363656c65726973717565206c69620065726f2076656c2c207068617265747261206e6962682e0a0a53757370656e006469737365206469676e697373696d20636f6e67756520657374206964207000686172657472612e20447569732076697461652066656c697320696e206c65006374757320666163696c6973697320706861726574726120736564206163200070757275732e2050656c6c656e7465737175652076656e656e617469732070006c616365726174206d61757269732c206120626962656e64756d206d617572006973206566666963697475722076697461652e204d6f7262692065666669630069747572206d65747573206575207363656c65726973717565206661756369006275732e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b200041656e65616e20696e74657264756d20666163696c69736973207175616d2000717569732066617563696275732e20566573746962756c756d20616e74652000697073756d207072696d697320696e206661756369627573206f726369206c00756374757320657420756c74726963657320706f737565726520637562696c0069612063757261653b205072616573656e74206c6f626f72746973206d6167006e612071756973206e697369206d616c657375616461206d6178696d7573200071756973206e6f6e206c6f72656d2e20437572616269747572206e6f6e206e00756c6c612073697420616d657420657261742074696e636964756e742066610063696c6973697320617420657420746f72746f722e204d6f72626920696420006175677565207669766572726120697073756d2070756c76696e617220736300656c657269737175652071756973206e65632076656c69742e204e616d207600656c206f64696f20636f6d6d6f646f2c20706f727461206172637520696e2c0020666163696c697369732073617069656e2e204e756e632073697420616d6500742076656e656e6174697320657261742c206174206c616f72656574206175006775652e20446f6e656320617563746f722070757275732071756973207465006d706f7220666575676961742e20496e2071756973206c6f72656d206567650074206e756e63206c6163696e696120646170696275732e20446f6e65632069006163756c6973206573742076656c2072686f6e63757320616c697175616d2e000a0a4d6f726269206d61676e61206f64696f2c2076656e656e61746973207600697461652073656d2069642c20646170696275732074656d707573206e756e00632e204d6f7262692066617563696275732074656d706f72206d6178696d7500732e205175697371756520657520696d70657264696574206d61676e612c2000696420616c697175616d2075726e612e20446f6e6563207574206c69626572006f206475692e20457469616d206d6174746973206e756c6c6120717569732000617567756520696e74657264756d2c2061206d6f6c6573746965206f72636900207472697374697175652e20446f6e6563206e656320756c6c616d636f7270006572206e6962682c2061742074696e636964756e742070757275732e20447500697320626c616e646974206e69626820756c74726963696573206f7263692000616363756d73616e20736f6c6c696369747564696e2e20446f6e6563206964002061756775652071756973206e65717565206c616f72656574206f726e617200652e204e756e632072757472756d206a7573746f2075742065676573746173002068656e6472657269742e20437261732074656d70757320696e206d61757200697320612074696e636964756e742e0a0a557420706f72747469746f72207400656d70757320616c697175616d2e204d616563656e617320677261766964610020636f6e736571756174206d692c20657420747269737469717565206c6f7200656d20666575676961742073697420616d65742e205072616573656e742073006564206d6178696d7573206f64696f2c206567657420636f6e736563746574007572206c616375732e20416c697175616d20647569206e657175652c20766900766572726120636f6e73657175617420636f6e6775652076656c2c20636f6e00736571756174206964206f7263692e2041656e65616e2066696e69627573200065782073656d706572206e69736c206d61747469732c2071756973206c75630074757320656e696d206c6163696e69612e2050726f696e206964206d6173730061206d61757269732e20496e74656765722065752061726375206c6163696e006961206c656374757320657569736d6f64206c75637475732e20496e20766f006c7574706174206e6f6e206d657475732073697420616d657420636f6e7661006c6c69732e204e616d206c6967756c61206d657475732c206665726d656e7400756d2065752074656c6c75732069642c20656c656966656e642076617269750073206e657175652e204675736365206175677565206c6f72656d2c2070686100726574726120612073656d2076656c2c20636f6e64696d656e74756d206d61007474697320646f6c6f722e2046757363652073656d706572206e69736c2069006e2075726e612073757363697069742c2065676574207072657469756d206a007573746f20736f6c6c696369747564696e2e0a0a496e7465676572207669740061652072686f6e637573206573742c207175697320626962656e64756d207200697375732e20457469616d206d616c657375616461206175677565206575200074656d70757320636f6e76616c6c69732e205175697371756520717569732000656c697420666575676961742c20756c6c616d636f72706572206e6962682000696e2c206c7563747573206d617373612e2050686173656c6c757320636f6e0076616c6c69732073617069656e2076656c206c616375732074696e63696475006e742c206e656320657569736d6f64206573742070656c6c656e746573717500652e20416c697175616d20706f727461206a7573746f206120756c74726963006965732068656e6472657269742e204d6175726973206c756374757320617500677565206575206c656374757320646170696275732c20757420706f7274610020656c69742070656c6c656e7465737175652e20496e74656765722073656400206d61676e6120757420646f6c6f722074696e636964756e74206672696e6700696c6c61206964206174206475692e204d6f72626920656c656966656e64200072697375732073697420616d6574206d61676e612074656d7075732c20766500686963756c61206c6f626f72746973206f72636920736f6c6c69636974756400696e2e204e616d2065742074656d706f72206d61676e612e204d6f726269200071756973207072657469756d2072697375732c2075742076656e656e61746900732074656c6c75732e204d617572697320706f72746120646f6c6f722065740020636f6e73656374657475722068656e6472657269742e204e616d2070656c006c656e7465737175652065676573746173206f64696f207472697374697175006520677261766964612e2050656c6c656e746573717565206964206665726d00656e74756d206469616d2e20496e20636f6e7365637465747572206d69207600656c206c696265726f20657569736d6f642064696374756d2e20446f6e65630020736167697474697320616e7465206d617373612e205072616573656e7420006163206175677565206e657175652e0a0a536564206d6173736120747572700069732c20636f6e76616c6c69732065676574207665686963756c612065752c0020636f6e64696d656e74756d20736564206d657475732e2053656420636f6e0064696d656e74756d20766f6c7574706174206573742c2076656c2070756c7600696e6172206e69736920736f6c6c696369747564696e206e6f6e2e20496e740065676572207574206d61676e6120657420746f72746f722064696374756d2000636f6e64696d656e74756d20696e20706f727461206573742e20496e207369007420616d65742061756775652065782e204e756e6320766573746962756c75006d206964206c616375732076656c2070756c76696e61722e2050726f696e200070756c76696e6172206d6173736120757420616e7465206d6178696d75732c00207669746165206c7563747573207175616d20656765737461732e204475690073206d6178696d757320616e74652073697420616d6574206d616c65737561006461206469676e697373696d2e204675736365207574206c656f20626c616e006469742c20666163696c69736973206d657475732061742c20636f6e73657100756174206c696265726f2e20437261732076656e656e61746973206e6973690020656765742075726e61206665726d656e74756d2c2061742066696e6962750073207175616d20696163756c69732e20517569737175652076656c206c6f7200656d2065782e2050726f696e206a7573746f2066656c69732c207363656c650072697371756520736564206f64696f2069642c206665756769617420736f6c006c696369747564696e207175616d2e20496e74656765722076617269757320006f7263692073697420616d65742076756c7075746174652068656e647265720069742e204d6f726269206d6178696d75732c2065726f73206e6f6e20636f6e007365717561742066696e696275732c207175616d206e69626820756c6c616d00636f72706572206475692c20616320696e74657264756d2073656d20616e74006520766974616520746f72746f722e204375726162697475722076697461650020706861726574726120656e696d2e20437261732073757363697069742063006f6e677565206c656f2c20696e20736f6c6c696369747564696e206e69736900207472697374697175652061742e20566976616d757320706f72747469746f007220746f72746f7220636f6e64696d656e74756d2c20696163756c6973206c006967756c612075742c207472697374697175652065726f732e0a0a496e20650075206c756374757320616e74652e204d6f726269206d6178696d7573207572006e61206e6f6e206c6967756c6120706f73756572652c206120766f6c757470006174206f7263692073616769747469732e204e616d20617420656c6974206500676574206d692066696e696275732073656d70657220756c747269636573200073656420616e74652e205072616573656e742065752073656d706572206f720063692e204e616d2071756973206469616d206e65632065737420656666696300697475722073656d7065722e204d6f7262692073697420616d6574206f6469006f2070656c6c656e746573717565206e69736c20626c616e64697420736f6400616c65732e20447569732067726176696461206964206c6f72656d2065752000616c69717565742e205365642065726f73207475727069732c207375736369007069742073697420616d657420736f64616c6573207365642c20666163696c0069736973206574206573742e204f72636920766172697573206e61746f717500652070656e617469627573206574206d61676e697320646973207061727475007269656e74206d6f6e7465732c206e61736365747572207269646963756c750073206d75732e20566976616d75732073656d7065722074656d706f7220766100726975732e20416c697175616d20696420616c697175616d206469616d2e0a000a416c697175616d20746f72746f72206573742c206c7563747573206575200075726e6120717569732c2074656d7075732068656e6472657269742061726300752e20566573746962756c756d2073697420616d657420656c656d656e7475006d206c656f2e2053757370656e64697373652071756973206e756e632061200073617069656e2068656e64726572697420696d706572646965742e205365640020696e2065676573746173206c696265726f2e20446f6e656320636f6e677500652073697420616d6574206e65717565206461706962757320657569736d6f00642e204675736365207363656c657269737175652076656c20707572757320006964207363656c657269737175652e2050726f696e2076656c20706f7274740069746f72206e69736c2e0a0a4d6f726269206964206475692065676574207400757270697320696163756c697320636f6e6775652e204e756c6c616d2061750063746f722c206c6967756c61206567657420636f6d6d6f646f20707265746900756d2c206c696265726f206e756c6c6120756c74726963696573206f64696f002c2075742072757472756d2061726375206172637520696e206e6973692e20004d61757269732065676574206c6163757320696e20657820766172697573200073616769747469732073656420696e20656c69742e204d6175726973206d6f006c6573746965206f64696f206574206f72636920706861726574726120706c006163657261742e20496e746567657220696e20747572706973206567657420006c696265726f20636f6e7365637465747572206c6f626f7274697320657520006e6f6e206c616375732e204d616563656e61732064696374756d206c656f200074656d707573206c61637573206d617474697320736f64616c65732e20446f006e6563206a7573746f206f64696f2c2074696e636964756e7420616320617200637520656765742c20666175636962757320706f737565726520646f6c6f72002e205072616573656e742065676574206e756e63206e65632066656c69732000696e74657264756d2072686f6e6375732e20566573746962756c756d20656c00656d656e74756d206461706962757320636f6e73656374657475722e205375007370656e6469737365206964206e756e63206d61747469732c206c756374750073206e6962682073697420616d65742c20636f6e64696d656e74756d206578002e20496e7465676572206f726e6172652075726e61207669746165206e69730069206c7563747573206469676e697373696d2e2041656e65616e2074696e63006964756e742068656e647265726974207269737573206e6f6e20616363756d0073616e2e204e756c6c6120617420736f64616c6573206e69736c2e20496e7400656765722068656e647265726974207669746165206d61676e61207669746100652073757363697069742e20437261732064617069627573206c65637475730020736564206c656f207363656c657269737175652073656d7065722e204d6100757269732061207269737573206e756c6c612e0a0a53656420696163756c6900732c206c656f20757420766573746962756c756d206672696e67696c6c612c002066656c69732073617069656e20636f6e76616c6c6973206c65637475732c002076656c206c616f72656574207175616d206f7263692061206d6175726973002e204e756c6c616d20657520616363756d73616e2073617069656e2e205065006c6c656e746573717565206d617474697320736f64616c6573206d6175726900732c20757420636f6e64696d656e74756d206d61676e6120636f6e677565200076656c2e2041656e65616e20706f72747469746f72206e6973692061632065007261742066617563696275732073757363697069742e2050686173656c6c75007320656c656d656e74756d2074696e636964756e74207175616d206e65632000636f6e64696d656e74756d2e204375726162697475722066696e6962757320006e756c6c612076656c206c6163696e696120696d706572646965742e204d61006563656e61732066657567696174206d617474697320646f6c6f722c206e65006320616363756d73616e20697073756d2074656d706f722075742e205068610073656c6c757320617563746f7220666163696c697369732072757472756d2e0020536564207669746165206d69206e6f6e206f64696f2070656c6c656e7465007371756520626c616e64697420696e2061206d61676e612e0a0a5365642069006e206469616d20636f6e6775652c20636f6d6d6f646f20746f72746f722061002c20657569736d6f64206c6967756c612e20496e2061632065666669636974007572206e756e632c2076656c20756c6c616d636f7270657220697073756d2e0020416c697175616d2076656c206469616d206665726d656e74756d2c20736f006c6c696369747564696e20617263752065742c20656c656d656e74756d207300617069656e2e2043726173206c656f206d657475732c2072686f6e637573200071756973206d617373612065752c206772617669646120696163756c69732000657261742e2043757261626974757220756c7472696365732073697420616d00657420656e696d20757420617563746f722e2041656e65616e20617420617500677565206163206a7573746f2074656d70757320626962656e64756d207365006420696d7065726469657420746f72746f722e204e756c6c616d2073656420006d61757269732073617069656e2e20447569732070656c6c656e746573717500652075726e6120696e2066696e69627573206d6f6c65737469652e20507261006573656e74206e6f6e207072657469756d206d61676e612c206e6563206c610063696e696120746f72746f722e2050726f696e20666175636962757320656c00656d656e74756d206c6f72656d2c2072686f6e6375732076756c7075746174006520657820616c69717565742061632e0a0a416c697175616d2074696e63690064756e7420617263752073617069656e2c20616c697175657420737573636900706974206c656f20656c656d656e74756d2076697461652e2043726173206d00617474697320617263752076656c206f726e617265206665726d656e74756d002e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65737469650020657261742073656d7065722c20736564206c7563747573206e65717565200076756c7075746174652e2053757370656e6469737365206d616c657375616400612c20646f6c6f722076656c20756c74726963657320696d70657264696574002c206d69206e69626820756c74726963696573207475727069732c206e656300207072657469756d206c696265726f20697073756d207669746165207269730075732e20416c697175616d20696e20636f6e677565206c616375732c2066650075676961742076756c7075746174652065726f732e20496e206c616f7265650074206e69626820696e2076756c70757461746520766573746962756c756d2e00205574206661756369627573206f726e617265206e756e632073697420616d00657420656c656966656e642e205072616573656e7420706c616365726174200073617069656e2076656c20656c69742074656d706f7220626962656e64756d002e204e756c6c612071756973207665686963756c6120617263752e205375730070656e646973736520736f64616c6573206c656f2061632075726e6120616c0069717565742076756c7075746174652e20536564206d6f6c6c69732c206c610063757320657520656c656966656e6420736f64616c65732c206d61676e6120006172637520766172697573206c656f2c20657520626c616e6469742066656c006973206572617420657420746f72746f722e205072616573656e742074656d007075732073697420616d6574206d61676e61207669746165206f726e617265002e20416c697175616d20656c656966656e642076656c206f64696f2069642000636f6e7365717561742e204d6175726973206574206e657175652071756973002073617069656e20706f737565726520756c74726963696573206575207369007420616d65742075726e612e20437261732072686f6e6375732065726f73200076656c2073656d2070756c76696e61722066696e696275732061206e6f6e200072697375732e0a0a536564206c6f626f72746973206f64696f207175616d2c00206e6f6e20637572737573206e756c6c6120616c697175616d206e6f6e2e2000446f6e65632061726375206573742c20666163696c6973697320696e2066610075636962757320612c2070686172657472612073697420616d6574206e6973006c2e205175697371756520696163756c6973206c656f206e6f6e20656c656d00656e74756d20706c6163657261742e2053656420766573746962756c756d20006c656f20616e74652c20616320636f6e76616c6c697320647569207361676900747469732069642e20496e206861632068616269746173736520706c61746500612064696374756d73742e20536564206d6f6c657374696520636f6e76616c006c69732066656c69732c20696e2070656c6c656e74657371756520616e74650020696e74657264756d20612e20566976616d757320706c6163657261742065006c656966656e6420616e74652e2050656c6c656e746573717565207369742000616d6574206f64696f207665686963756c612c207361676974746973206573007420656765742c20656c656d656e74756d206c6f72656d2e204d61757269730020656c6974206d61676e612c20636f6e6775652076656c2065726f73206e6500632c20696163756c6973206d616c65737561646120616e74652e2056697661006d757320696e20656666696369747572206f64696f2c207175697320616c69007175616d206e756c6c612e204e756c6c61207574206469676e697373696d20006475692e20496e206567657374617320666163696c69736973206c6f72656d002c206e6f6e20656c656d656e74756d20647569207665686963756c61206e6500632e204e756c6c61206d616c65737561646120706f72747469746f72206578002061206f726e6172652e204e756c6c61206e6f6e20766172697573206f6469006f2e2041656e65616e206e656320696d706572646965742073617069656e2e0020446f6e6563206e69736920617263752c2070756c76696e617220707265740069756d206d616c6573756164612061632c20706f72746120766974616520710075616d2e0a0a437572616269747572206d6f6c65737469652c206d6920696e0074657264756d206c7563747573206375727375732c207269737573207361700069656e206c6f626f72746973206c656f2c206174206566666963697475722000617567756520656c6974207365642074656c6c75732e204e756e6320737573006369706974206c7563747573206e69736c2073697420616d65742062696265006e64756d2e20446f6e6563206e6f6e206375727375732070757275732c20610063206661756369627573206a7573746f2e2050726f696e20617563746f722000766f6c7574706174206e756e632c20696e20747269737469717565206e6973006c20626962656e64756d2061742e2053757370656e64697373652076656e65006e61746973206e756e63206e69736c2c206e65632067726176696461206c69006265726f2074726973746971756520696e2e205175697371756520706c616300657261742061206e69736c20616320706c6163657261742e2041656e65616e0020756c74726963696573206c696265726f20696420697073756d2072686f6e006375732c2073697420616d657420616c697175616d20656e696d206c7563740075732e20447569732076656e656e6174697320646f6c6f722065742074656c006c757320636f6e736571756174206c6f626f727469732e20446f6e65632069006e206469616d20706f73756572652c206665726d656e74756d207269737573002065742c2070756c76696e6172206e657175652e0a0a496e7465676572206e006563206e6962682065752074656c6c7573207072657469756d20696e7465720064756d206174206574206469616d2e204e756c6c612070656c6c656e74657300717565206f64696f20717569732065726f73206567657374617320736f6461006c65732e2043757261626974757220656765742074656d707573206469616d002e2050656c6c656e74657371756520756c747269636965732061726375206500782c206120696d70657264696574206a7573746f20706f7375657265207665006c2e2050726f696e2076756c70757461746520736f64616c6573206d61737300612061742070686172657472612e20496e7465676572206e6f6e206d6173730061207574206c6967756c6120666575676961742074656d7075732e2051756900737175652073616769747469732076656c206e756e6320757420747269737400697175652e2041656e65616e2075742074656d706f72206a7573746f2e2044006f6e656320636f6e677565206e69736c20736564207175616d206d6f6c657300746965206d6f6c6c69732e204e756c6c616d20706c6163657261742c2074750072706973206567657420677261766964612072757472756d2c2066656c6973002076656c697420616c697175616d2065726f732c20696420656c656d656e7400756d206c6967756c612075726e6120696420657261742e204e756c6c61206e0065632072686f6e6375732073656d2e205574206e6563207665686963756c61002065782c2076656c2068656e647265726974206e657175652e20557420706c006163657261742076656c69742076656c2076656c69742068656e647265726900742c207669746165206665726d656e74756d207269737573206d6f6c6573740069652e0a0a4d6175726973206f726369206c65637475732c20696d7065726400696574207365642066696e69627573206e65632c20616c697175616d207665006c206e6962682e20566573746962756c756d206672696e67696c6c612061630063756d73616e206e756e63206574206d6f6c65737469652e205574206574200065726174206a7573746f2e2050656c6c656e74657371756520677261766964006120617263752070757275732e2041656e65616e20696e206e6962682076690074616520617263752064696374756d2074696e636964756e74206964206575002066656c69732e205072616573656e7420657420656c6974206964206d692000636f6e736563746574757220616c697175616d2e20566573746962756c756d0020696e20656e696d2064696374756d2c20626962656e64756d206572617420006e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e7465737100756520636f6e76616c6c6973206f726369206e6973692c206e656320756c7400726963696573206f64696f20706f73756572652073697420616d65742e0a0a004d616563656e61732073697420616d6574206665726d656e74756d206e6973006c2e20566573746962756c756d20616e746520697073756d207072696d69730020696e206661756369627573206f726369206c756374757320657420756c7400726963657320706f737565726520637562696c69612063757261653b20507200616573656e74206174206e756e6320696e206d61676e6120636f6e73657175006174207363656c657269737175652e204d616563656e617320696e20717561006d207574206a7573746f2074696e636964756e7420617563746f722e205068006173656c6c757320757420646f6c6f72206d657475732e20496e2073656d70006572206d6920736564206c6f72656d2070686172657472612072686f6e637500732e204675736365206567657420657374206c616f726565742c20736167690074746973206c696265726f2073697420616d65742c2066657567696174206e006962682e204d6f72626920646170696275732075726e61206163207175616d00206665726d656e74756d2072686f6e6375732e20446f6e656320636f6e7661006c6c697320657569736d6f64206469676e697373696d2e204375726162697400757220757420747269737469717565206c6967756c612e0a0a536564207275007472756d2074696e636964756e74207472697374697175652e204e756e6320006d69207175616d2c20637572737573206574207665686963756c612065676500742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e65632061007563746f722066696e69627573206f726e6172652e204d6f72626920766568006963756c612c206e69736c2076656c20636f6d6d6f646f20706f7274746974006f722c20646f6c6f72206e756e63207361676974746973206469616d2c2065006765742066617563696275732073617069656e2065782076656c206d61676e00612e204375726162697475722076656c206c6967756c612073697420616d650074206c6967756c6120646170696275732066696e696275732e20457469616d002073697420616d6574206c6f72656d206c65637475732e204e756c6c616d20006665726d656e74756d206e69736c206c696265726f2c207669746165207469006e636964756e74207075727573206c6163696e696120717569732e204d6f72006269207574206d6f6c657374696520697073756d2c206575206d6f6c657374006965206c6967756c612e2050686173656c6c7573206574206c656374757320006a7573746f2e20566976616d7573206578206d61676e612c20636f6e736571007561742076656c206a7573746f2076656c2c2074656d706f7220616c69717500616d20616e74652e205365642066696e6962757320736564206d6173736120007175697320636f6d6d6f646f2e20446f6e656320696e206e696268206e6563002074656c6c757320636f6e677565206469676e697373696d206567657420760069746165206e756c6c612e204475697320656c656966656e6420706c61636500726174207269737573206120706c6163657261742e204d6175726973206e650063206c65637475732068656e6472657269742c207361676974746973207665006c697420636f6e64696d656e74756d2c2065676573746173206475692e0a0a004e616d20696163756c69732076656c697420717569732075726e6120706f720074612073616769747469732e2041656e65616e20636f6d6d6f646f206e6973006c206e656320697073756d206c6f626f727469732c20626962656e64756d200065666669636974757220656e696d20636f6e64696d656e74756d2e2050726f00696e206172637520656c69742c206665726d656e74756d2075742065676573007461732061742c206c616f726565742076656c206e69736c2e20496e74656700657220626962656e64756d20747572706973207574206469616d206665726d00656e74756d2c2065752074656d707573206c656f206672696e67696c6c612e00204d616563656e61732076656c697420617263752c20636f6e64696d656e7400756d20696d7065726469657420657261742065742c206661756369627573200076756c707574617465206c65637475732e20437572616269747572206d657400757320656e696d2c206672696e67696c6c6120757420666163696c69736973002061632c20616363756d73616e20696e20697073756d2e204e756c6c616d20007665686963756c61206c6163696e6961206d617373612c2076656c20666175006369627573206f64696f20636f6e64696d656e74756d2061742e204d61757200697320706f72747469746f722065726f73206d61676e612c207574206d617800696d75732074656c6c7573206665726d656e74756d2069642e20566976616d007573207574206c6563747573206f726e6172652c20706f72747469746f7220006469616d20656765742c20756c6c616d636f72706572206e6962682e2044750069732076656e656e617469732074656d706f7220657261742c207574207661007269757320657374206c6f626f727469732076656c2e2050686173656c6c75007320736564206578206c65637475732e205365642076656c2073617069656e0020616c697175616d2c20696e74657264756d206475692069642c20656c65690066656e64206f7263692e0a0a5072616573656e74206174206c6f626f7274690073206d657475732e204e616d2074656d707573207175616d206475692c206e006563206c7563747573206d617373612074696e636964756e7420612e205065006c6c656e74657371756520616363756d73616e2076656c697420757420617500677565206d617474697320636f6e76616c6c69732e205574206567657374610073206f64696f20656e696d2c206163207669766572726120616e746520636f006e76616c6c69732075742e2041656e65616e20696e2064756920617420717500616d206665726d656e74756d2072757472756d2e20566976616d757320656700657420636f6e76616c6c6973206c65637475732e20457469616d2065756973006d6f64206672696e67696c6c6120746f72746f722c206e656320696e7465720064756d206a7573746f206d61747469732065752e204e756c6c616d206d617800696d7573206e696268206469616d2c206575206c6f626f72746973206a757300746f207072657469756d2076697461652e20517569737175652074696e63690064756e7420646f6c6f722061742075726e6120636f6e64696d656e74756d2c00207669746165206d616c6573756164612065737420706f72747469746f722e002050656c6c656e746573717565207669746165206475692065782e2056697600616d757320766f6c757470617420697073756d207574207475727069732065006c656d656e74756d20706f7274612e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d6175726973207365642066656c690073206e756c6c612e205072616573656e742076656c2072697375732076656c0069742e0a0a446f6e656320706f727461206174206469616d2073656d7065720020616c69717565742e2041656e65616e20637572737573206c6f72656d206e006f6e2076617269757320636f6d6d6f646f2e20536564206e65717565206572006f732c20656666696369747572206e6563206469616d20696e2c20747269730074697175652076697665727261206469616d2e2053757370656e64697373650020746f72746f72206475692c20657569736d6f64206e6563206e756c6c61200061632c20616c697175657420756c74726963696573206c6f72656d2e205068006173656c6c757320636f6e7365637465747572206575206573742061632065006765737461732e204e756e6320757420656c697420696e2070757275732061006363756d73616e20657569736d6f642e2043726173206c656f206f7263692c0020677261766964612076656c20626962656e64756d20656765742c20636f6e0076616c6c697320696e2072697375732e20467573636520656765742073656d007065722073617069656e2e0a0a536564206d6f6c657374696520706c61636500726174206c6967756c61206e656320766976657272612e20496e2061742065006666696369747572206d61676e612e204e616d2066696e69627573206c6f7200656d20657420726973757320756c747269636965732c2076656c2063757273007573206e65717565207363656c657269737175652e20496e74657264756d20006574206d616c6573756164612066616d657320616320616e74652069707375006d207072696d697320696e2066617563696275732e2053656420696e2065670065737461732065726f732e2041656e65616e2074656d706f722c206e6962680020636f6d6d6f646f20626962656e64756d206c75637475732c2076656c697400206e756e6320696e74657264756d206f7263692c2073697420616d6574207400656d707573206c656f2070757275732076697461652072697375732e2045740069616d207669746165207269737573206e6962682e20566573746962756c75006d206d6f6c65737469652063757273757320616e74652c2065676574206c610063696e6961206c656f206d6f6c65737469652076656c2e0a0a53757370656e00646973736520757420677261766964612073617069656e2e2056657374696200756c756d20616363756d73616e206e756e6320696e2064617069627573207300656d7065722e204e756e632076656c2073656d706572207175616d2e205065006c6c656e746573717565206861626974616e74206d6f72626920747269737400697175652073656e6563747573206574206e65747573206574206d616c657300756164612066616d65732061632074757270697320656765737461732e20460075736365206d6f6c6573746965206672696e67696c6c61206c6f72656d2c20007175697320747269737469717565206d61676e6120756c6c616d636f72706500722073697420616d65742e20437572616269747572207669746165206c6f7200656d207574206a7573746f206c616f72656574207665686963756c61206174002061206469616d2e2053757370656e646973736520616c697175657420636f006e73656374657475722065782c20757420636f6e7365637465747572206e650071756520636f6e7365637465747572206e65632e20496e74656765722076690074616520636f6e64696d656e74756d20746f72746f722e204e756e6320736500642073757363697069742073617069656e2e2050686173656c6c757320656c00656d656e74756d20657569736d6f642076656c69742c2065676574206469630074756d20646f6c6f7220756c6c616d636f727065722065752e0a0a5068617300656c6c75732061742064756920697073756d2e204e756e63206c75637475730020617563746f72206e69736c20657520617563746f722e20446f6e65632063006f6e76616c6c69732061726375206c6163696e6961206578207361676974740069732c20736564206f726e61726520616e7465206f726e6172652e204e616d002074696e636964756e74206a7573746f207475727069732c20736564206d61007474697320616e746520736f6c6c696369747564696e207365642e2053656400206f726e61726520697073756d206e6962682c2061632074656d706f72206d0061676e612076617269757320696e2e204e616d206672696e67696c6c61206d0061676e61206d692c2075742065676573746173206c6f72656d207661726975007320696e2e20536564206575206c75637475732073617069656e2e20496e7400656765722076656c206469676e697373696d20656c69742c20617420706c61006365726174207475727069732e20446f6e656320696e206e69626820696420006a7573746f206c6f626f727469732064696374756d2e20446f6e656320706800617265747261206f726369206e656320636f6e76616c6c697320736f6c6c69006369747564696e2e0a0a50656c6c656e7465737175652073697420616d657400206672696e67696c6c612073656d2c20616320737573636970697420656c6900742e20446f6e656320612074726973746971756520697073756d2c206e6f6e0020756c7472696365732065726f732e205072616573656e7420616c69717561006d20697073756d206567657420626962656e64756d20766f6c75747061742e0020447569732073697420616d6574206469616d20626962656e64756d2c2061007563746f72206e69736920656765742c206d6f6c6c697320746f72746f722e00204d61757269732065742076656c69742075726e612e2055742066656c697300206c65637475732c207072657469756d207365642074656d707573207369740020616d65742c206d6f6c6c6973207669746165206c65637475732e204d6175007269732073697420616d6574206f7263692065752074656c6c75732066616300696c697369732074696e636964756e742e20447569732068656e647265726900742066656c69732061206e6571756520617563746f7220636f6e6775652e20004d6f726269206c6967756c61206573742c2070656c6c656e746573717565200076656c2073616769747469732065742c20666175636962757320656765742000656e696d2e0a0a517569737175652064696374756d206e6973692069642073006f6c6c696369747564696e207072657469756d2e20496e74657264756d20650074206d616c6573756164612066616d657320616320616e746520697073756d00207072696d697320696e2066617563696275732e2053757370656e646973730065207665686963756c612076656e656e617469732072697375732c20617420007665686963756c61206c616375732072757472756d206e6f6e2e2050656c6c00656e746573717565206861626974616e74206d6f72626920747269737469710075652073656e6563747573206574206e65747573206574206d616c657375610064612066616d65732061632074757270697320656765737461732e20496e20007075727573206d617373612c206d6f6c657374696520696e206e6962682061002c2076656e656e6174697320626c616e64697420656c69742e205068617365006c6c75732073617069656e206469616d2c2074696e636964756e7420736f6400616c6573206469616d2076697461652c20636f6e67756520736167697474690073206f64696f2e2043757261626974757220657569736d6f64206e65632061006e746520736564207072657469756d2e2050656c6c656e746573717565206d006f6c65737469652076617269757320656e696d2c206e6f6e20666175636962007573206c656f2073616769747469732061632e20437572616269747572207100756973206d61757269732071756973206c6967756c6120756c6c616d636f7200706572206d616c65737561646120736564206575206c65637475732e0a0a5300757370656e64697373652076656c206d61676e61206469676e697373696d2c002064696374756d206e657175652073757363697069742c20626962656e6475006d206c616375732e205175697371756520717569732066656c69732061726300752e2050686173656c6c75732065726174206c656f2c2073656d7065722061007420646f6c6f7220656765742c2076656e656e617469732072686f6e637573002065782e2043726173206d6f6c6c6973206e696268207365642061756775650020736f64616c65732c2073697420616d6574206d6f6c6c6973207075727573002070686172657472612e2043726173206e6563206d692071756973206c656f0020696d7065726469657420616363756d73616e207574206964207175616d2e00204e616d206e69736c20656c69742c206f726e61726520657520756c747269006365732076697461652c20706f72747469746f72206574206c6967756c612e002050656c6c656e746573717565207665686963756c6120656c69742065742000697073756d20636f6e7365717561742c206e6563206d6f6c6c6973206573740020696e74657264756d2e2055742074656d706f7220637572737573206d6f6c0065737469652e204d61757269732074696e636964756e7420616363756d7361006e206e756e6320696420696d706572646965742e20457469616d206d616c650073756164612c206e6973692061632076756c70757461746520696163756c6900732c206e697369206f72636920706c616365726174206e756c6c612c206e6500632074696e636964756e742074656c6c757320656c69742071756973207572006e612e20457469616d206c61637573206d617373612c2068656e6472657269007420757420636f6d6d6f646f20612c20696e74657264756d206964206e6973006c2e20496e746567657220766974616520616e7465206672696e67696c6c6100206d692074696e636964756e7420636f6e73656374657475722e204e756c6c006120636f6e7365637465747572206f726e61726520626962656e64756d2e0a000a55742073697420616d657420657569736d6f642074656c6c75732e205065006c6c656e746573717565207072657469756d2074696e636964756e7420647500692065752073656d7065722e205365642076656c2065726f73206e6f6e2064006f6c6f7220696163756c697320696e74657264756d20736564207175697320006f7263692e20496e2073656d706572206c6f626f72746973206469676e69730073696d2e2053656420666175636962757320666575676961742070656c6c65006e7465737175652e2050656c6c656e74657371756520736f6c6c69636974750064696e206f64696f20736564206c65637475732073616769747469732c206e006f6e20756c7472696369657320697073756d2072757472756d2e205365642000736564206f726e6172652065782e0a0a5072616573656e7420766974616520006d6f6c6573746965207175616d2c20616320626c616e646974206f64696f2e0020457469616d2065676573746173206375727375732075726e612069642065007569736d6f642e204e616d20616c69717565742061726375206575206c756300747573206c616f726565742e20457469616d20696d7065726469657420717500616d2076656c20636f6e73657175617420626c616e6469742e204d61757269007320696e74657264756d2c206469616d20766172697573206c6163696e69610020616c69717565742c2076656c69742074656c6c757320706861726574726100206a7573746f2c20656765742073757363697069742075726e61206e756c6c00612071756973206c656f2e204e756c6c61206578206e69736c2c2066617563006962757320617420626c616e6469742061632c2063757273757320612069700073756d2e20566976616d75732071756973206469616d20636f6e6775652c2000657569736d6f642075726e612073697420616d65742c206672696e67696c6c006120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e677565206c00696265726f2074656d706f7220756c747269636965732e2050656c6c656e740065737175652070756c76696e61722073617069656e207669746165206e756e0063207363656c65726973717565206672696e67696c6c612e204675736365200068656e647265726974206566666963697475722066617563696275732e2041006c697175616d2070757275732061756775652c206c7563747573206e6f6e2000636f6e76616c6c697320717569732c206d6178696d7573206e6f6e20647569002e0a0a446f6e65632070656c6c656e74657371756520657261742065752065007374206c6163696e696120616363756d73616e2e2050726f696e206d6f6c6c0069732073656d20646f6c6f722c206964206d6f6c6c6973206c656374757320007669766572726120696e2e204e756e632071756973206d6173736120766172006975732c206665726d656e74756d206c656f2076697461652c206c6f626f7200746973206e657175652e205175697371756520756c6c616d636f7270657220006a7573746f20766974616520636f6e67756520656c656966656e642e2045740069616d206574206c61637573206573742e20496e7465676572207475727069007320617263752c20616363756d73616e2076656c20697073756d2065676574002c206d616c65737561646120756c6c616d636f72706572206a7573746f2e20004d6175726973206e6f6e2065782074696e636964756e742c20756c74726963006573206c616375732061742c20626c616e646974206f64696f2e2056657374006962756c756d2067726176696461206e65632073617069656e206e656320640069676e697373696d2e2053757370656e64697373652074656d706f7220696e00206e69736c2076656c206d6f6c6c69732e204d616563656e6173206772617600696461206c616375732074656c6c75732c20657420756c7472696369657320006e756c6c612074696e636964756e7420612e20416c697175616d20657261740020766f6c75747061742e20446f6e65632065726f73206c65637475732c20640069676e697373696d2069642073617069656e2061742c20706c6163657261740020666163696c697369732070757275732e20566976616d757320707265746900756d2c206d69206120756c6c616d636f727065722074696e636964756e742c00206475692074656c6c757320626c616e646974206d617373612c206e6563200066696e6962757320657374206e69736c2071756973206e6962682e2046757300636520646170696275732064756920696e20636f6e73656374657475722070006c6163657261742e20467573636520736f6c6c696369747564696e20656765007374617320657261742c2073697420616d657420616363756d73616e206c65006f2074696e636964756e7420696e2e204d6f7262692065666669636974757200206d61757269732069642064696374756d20666163696c697369732e0a0a5500742075726e61206d61676e612c20706f72747469746f722061632065666669006369747572206e6f6e2c20656666696369747572206174206d617373612e200041656e65616e2073656420656c6974206e6f6e2065782073757363697069740020616363756d73616e2e20416c697175616d207669746165206c656f207361006769747469732c2067726176696461206c6967756c612065742c2070756c7600696e617220646f6c6f722e20457469616d20616320746f72746f72206c6f7200656d2e2050686173656c6c7573206567657374617320696163756c69732067007261766964612e204e756e63206e6f6e206e756e63206e6962682e2056697600616d757320766974616520617563746f722073617069656e2e20437261732000706f7375657265206e756c6c61206f64696f2c20657520706f727461206578002076656e656e6174697320612e204e616d207269737573206e657175652c2000657569736d6f642075742063757273757320656765742c2066617563696275007320736f6c6c696369747564696e20746f72746f722e2043757261626974750072207574206d65747573206e6f6e206469616d20617563746f722074696e63006964756e742e20496e7465676572206d616c65737561646120707265746975006d2076656e656e617469732e20566976616d75732072686f6e637573207469006e636964756e74206c6f72656d207175697320756c747269636965732e205000686173656c6c7573206f726e6172652065726f732065742068656e6472657200697420636f6d6d6f646f2e0a0a43757261626974757220696163756c69732000636f6e7365717561742073656d20717569732070656c6c656e746573717565002e2050726f696e206d617474697320656e696d20696e2065737420736167690074746973207661726975732e204d6f726269206e65632074696e636964756e00742076656c69742c206575206469676e697373696d20657261742e20416c69007175616d206572617420766f6c75747061742e205072616573656e74206669006e696275732074656c6c757320696e2068656e6472657269742076657374690062756c756d2e20437572616269747572206d6f6c6c69732074656c6c757320006d692c206e6563206d616c6573756164612076656c6974207375736369706900742061742e205365642065726174206e657175652c2072757472756d2073650064206665726d656e74756d2076656c2c2070656c6c656e746573717565206e006f6e20616e74652e204e616d20736f64616c65732070756c76696e6172206c006f72656d2c2065742074696e636964756e74206d61737361206469676e69730073696d2061632e20457469616d206d61737361207175616d2c20766f6c757400706174206574206c6f626f727469732073697420616d65742c2076656e656e006174697320696420656e696d2e0a0a446f6e656320706f727461206e69736c0020657520697073756d20706f72747469746f722c20656765742070756c7669006e6172206c6f72656d206d6178696d75732e205574206163206e6571756520006c6f72656d2e204e756c6c612061206c6f72656d2065676574206c656f206d006f6c6c6973206469676e697373696d2e20566573746962756c756d20696d70006572646965742073656d706572206c65637475732e204e756c6c6120657420006469616d206574206e756c6c61206f726e61726520736f6c6c69636974756400696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c20766568006963756c61206a7573746f2061742c2074696e636964756e74207361706965006e2e2043757261626974757220657569736d6f642076697665727261207268006f6e6375732e204e756e6320766172697573206f726369206e6563206d617300736120766976657272612c2065676574206c7563747573206c616375732075006c7472696365732e204375726162697475722063757273757320656c69742000646f6c6f722e20467573636520616c6971756574206f726e6172652065726f00732c20612067726176696461206578206d616c6573756164612076656c2e20004e616d206163206d61676e6120636f6e7365717561742c2076617269757320006d61757269732065752c206665726d656e74756d206c696265726f2e0a0a500072616573656e7420657420646f6c6f722074656d706f72206475692074696e00636964756e742064696374756d2e2050656c6c656e746573717565206d617800696d757320697073756d20657520656765737461732074656d7075732e2046007573636520616c697175616d20696d7065726469657420616e74652065742000626c616e6469742e204d61757269732068656e647265726974206c6f626f7200746973206c616f726565742e2041656e65616e20706f72746120766f6c75740070617420697073756d2c206120736f6c6c696369747564696e20617263752000756c6c616d636f72706572206e6f6e2e205365642076617269757320706c6100636572617420656e696d206575207072657469756d2e20496e206a7573746f0020617263752c20656c656d656e74756d20757420616c69717565742065752c00206c616f72656574206964206c656f2e20496e7465676572207365642061720063752061206469616d206c75637475732072686f6e6375732e20557420656700657420636f6e677565206d657475732c2069642072757472756d206c6563740075732e0a0a4d6f726269207665686963756c6120616363756d73616e206e6900736c2c20617420706f727461206c616375732066617563696275732065676500742e2053757370656e64697373652076756c707574617465206d69206e6f6e0020766f6c757470617420666575676961742e2051756973717565206469637400756d20706f72747469746f72206f64696f2073697420616d657420636f6e670075652e2041656e65616e20657569736d6f64207072657469756d20656c69740020706f72747469746f722066696e696275732e204d616563656e617320736500642076756c7075746174652072697375732e2041656e65616e2065726f732000656e696d2c2076656e656e6174697320696420636f6e73657175617420612c002072686f6e637573206f726e6172652073656d2e20517569737175652062690062656e64756d20766f6c757470617420616e74652c20616320706f7375657200652073617069656e207375736369706974206566666963697475722e204e75006c6c61206f726e617265206e696268206163206d61757269732076756c707500746174652c206e6f6e207068617265747261206469616d2076697665727261002e20436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e002050726f696e20617420766573746962756c756d2076656c69742e205365640020766976657272612076656e656e61746973206d692c207574206d616c65730075616461206e756c6c612e2044756973207068617265747261206964206e6900626820617420636f6e6775652e20536564206c6163696e69612065726f73200061206572617420766976657272612c20612074696e636964756e742061756700756520616363756d73616e2e2050656c6c656e746573717565206c6f626f720074697320616363756d73616e2073656d2c2065676574206d616c65737561640061206e756c6c61206665726d656e74756d2073697420616d65742e20496e2000616363756d73616e206c616f72656574206e69736c2076697461652066657500676961742e20416c697175616d206572617420766f6c75747061742e0a0a440075697320696420616e7465206c6967756c612e2050686173656c6c75732073006167697474697320706c61636572617420706f73756572652e204d61656365006e61732076697461652076697665727261206c616375732c206d6f6c6c697300206d616c657375616461206c65637475732e2050656c6c656e7465737175650020696e20657374206c6163696e69612c20656c656d656e74756d206e756e630020656765742c2070656c6c656e746573717565206a7573746f2e20517569730071756520636f6e67756520747572706973206e6f6e206f64696f20626c616e00646974207361676974746973206772617669646120657420697073756d2e20004e756c6c616d206c6f626f72746973206e6571756520616320656c69742063006f6e76616c6c697320616363756d73616e2073697420616d65742070756c7600696e6172206d617373612e20446f6e656320657520636f6d6d6f646f20616e0074652c2073697420616d657420756c6c616d636f7270657220646f6c6f722e002044756973206d6175726973206c6967756c612c20656c656d656e74756d200061742066617563696275732061632c20616c697175616d20696e2066656c6900732e205072616573656e74206c6f626f727469732065782073697420616d650074206e69736c20756c74726963696573206c6163696e69612e20566976616d00757320617563746f722c2073656d207175697320766573746962756c756d20007363656c657269737175652c2073617069656e206e69736c2072757472756d00206c696265726f2c2073697420616d657420696e74657264756d206e69736c00206a7573746f207669746165206c65637475732e20566976616d757320696d0070657264696574206e756c6c6120657520657261742076656e656e61746973002c20736564206d6f6c657374696520646f6c6f72207665686963756c612e2000517569737175652076656c2061726375207365642073656d2073656d70657200206375727375732e2050656c6c656e746573717565206d617474697320656c00656966656e64207269737573206574206d6f6c6c69732e205574206c6f626f00727469732c2065737420736564206665726d656e74756d2073656d7065722c002075726e612072697375732064617069627573206475692c20612074656d70007573206d6175726973206e69736c206174206469616d2e20566976616d757300206469676e697373696d20666163696c6973697320636f6e7365637465747500722e20496e20706f737565726520736f6c6c696369747564696e20656c656d00656e74756d2e0a0a457469616d20697073756d206573742c206d616c65737500616461206120666575676961742073697420616d65742c206d6f6c65737469006520656765742066656c69732e2041656e65616e2074656d70757320667269006e67696c6c61206469616d20696e20616c697175616d2e20446f6e6563207300697420616d65742072757472756d206469616d2e2050686173656c6c75732000756c6c616d636f72706572206d617474697320616363756d73616e2e205375007370656e646973736520616c6971756574207669746165206e6973692061630020766f6c75747061742e2050726f696e207075727573206d61757269732c2000696d706572646965742073697420616d657420647569206e6f6e2c20766568006963756c6120637572737573206f7263692e20446f6e65632065742074656c006c7573206574206d6574757320766573746962756c756d20656c656d656e7400756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74657371750065206c6967756c61206e69736c2c20616c697175616d206163206c6967756c006120706f73756572652c20656c656d656e74756d2068656e64726572697420006d61757269732e204d617572697320666163696c697369732066656c69732000696e2072757472756d20696163756c69732e204e756e632066657567696174002073656d20612068656e6472657269742072757472756d2e20496e746567650072206d6f6c65737469652064696374756d2066696e696275732e2041656e6500616e206e656320766f6c7574706174206c6967756c612e205175697371756500206d617373612070757275732c20706861726574726120757420696163756c006973207365642c20706f72747469746f7220616320616e74652e20416c69710075616d206d6173736120656e696d2c2076756c707574617465206e6563206d00692069642c20756c6c616d636f72706572206665756769617420747572706900732e0a0a4e756e63207669766572726120647569206c6f72656d2c207369740020616d657420656666696369747572206d65747573207375736369706974200076656c2e20566573746962756c756d2073697420616d657420706f7274746900746f722065782e205574206d616c657375616461206c6563747573206e656300206d65747573206672696e67696c6c612c206e65632073656d706572207572006e61206d616c6573756164612e20557420756c6c616d636f72706572206e69007369206174206e69736c20696d706572646965742070756c76696e61722e2000566573746962756c756d2065726f7320646f6c6f722c20766f6c757470617400206964206f64696f2069642c2074656d70757320636f6e76616c6c6973207200697375732e2043726173206575206661756369627573206c696265726f2e200050656c6c656e74657371756520696163756c697320766573746962756c756d0020646f6c6f72206964206566666963697475722e2046757363652061206e75006e6320717569732075726e61206469676e697373696d20646170696275732e002050726f696e2076656c20696163756c69732073656d2c20617420636f6e7600616c6c6973206475692e20496e2069642066656c69732074656c6c75732e2000446f6e6563207068617265747261206d6f6c657374696520617263752c206100206d616c6573756164612065737420677261766964612069642e0a0a517569007371756520616c6971756574206c6967756c61207574206f72636920706f7300756572652c207365642074696e636964756e74206d61676e6120756c74726900636965732e204d616563656e61732073697420616d657420756c6c616d636f0072706572207475727069732e20536564206e6563206d6f6c657374696520710075616d2e20566976616d7573206d617474697320636f6e64696d656e74756d00206f7263692c206e6f6e206375727375732066656c69732074656d707573200065752e2053656420656765742072697375732075726e612e20566976616d750073206f726e61726520756c6c616d636f72706572206172637520616320616c0069717565742e205072616573656e74206d616c6573756164612070756c7669006e6172206c65637475732c2073697420616d65742064696374756d20726973007573206d616c6573756164612061742e204e756c6c612061206d616c65737500616461206c65637475732c2065676573746173206d616c657375616461206600656c69732e20496e20696420696e74657264756d206e756e632e20496e74650067657220666163696c69736973206469676e697373696d20616e74652071750069732070686172657472612e0a0a446f6e65632070656c6c656e7465737175006520656e696d20766974616520616e746520756c7472696365732c2061742000657569736d6f64206d617373612066696e696275732e20517569737175652000636f6e67756520756c7472696369657320706f72747469746f722e204375720061626974757220756c7472696369657320626c616e64697420637572737573002e204675736365206567657420647569206375727375732c2070686172657400726120617263752076656c2c20706c6163657261742070757275732e204372006173206e6563206d6175726973206c656f2e204e616d207072657469756d20007072657469756d20766f6c75747061742e2050686173656c6c7573206e65710075652074656c6c75732c206672696e67696c6c612073697420616d65742066006163696c6973697320717569732c20616363756d73616e207363656c65726900737175652073656d2e204e756e632076697461652066656c69732073656420006d6173736120756c747269636965732064617069627573206e6f6e2065752000656e696d2e20496e20706f72747469746f722074656d706f72206e69736c2c00206567657420666163696c697369732075726e612066696e69627573207669007461652e205365642070656c6c656e746573717565206e656320747572706900732075742073656d7065722e205072616573656e74206566666963697475720020656c656966656e64206f64696f2e0a0a4e756c6c6120617563746f722063006f6e64696d656e74756d206e756c6c612e204d616563656e6173206d616c65007375616461206d61757269732061206c6967756c6120756c7472696365732000636f6d6d6f646f2065742076656c206469616d2e2053757370656e64697373006520696e74657264756d2074696e636964756e74206c6967756c612c20612000626962656e64756d206d6920696163756c697320612e20536564206d616c65007375616461206d657475732076656c206c696265726f206469676e69737369006d2c2073697420616d657420636f6e677565207175616d2074696e63696475006e742e204375726162697475722066696e696275732074696e636964756e74002073616769747469732e20517569737175652073617069656e20656e696d2c0020736f64616c6573206163206469616d20612c206469676e697373696d206c006163696e69612074656c6c75732e20446f6e65632065666669636974757220006c616375732072686f6e637573206672696e67696c6c6120636f6d6d6f646f002e20496e20696420656c69742076656c206c6f72656d20736167697474697300206f726e6172652e204372617320757420646f6c6f72206c6967756c612e200053656420656c656966656e64206c6563747573207661726975732066696e69006275732072757472756d2e204675736365206e65632061756775652061206a007573746f207661726975732074656d706f7220736564207669746165206c6f0072656d2e204d6175726973206174206c696265726f20696e2065737420637500727375732064696374756d2075742076697461652065726f732e205068617300656c6c75732072757472756d2c206c656374757320766974616520696e7465007264756d20626c616e6469742c206c6f72656d2075726e61207669766572720061206d617373612c2071756973207363656c657269737175652066656c697300206c6563747573206574206f64696f2e204d617572697320666163696c6973006973206c656f207475727069732c20696d70657264696574206665756769610074206475692074656d706f722073697420616d65742e0a0a4d616563656e6100732061206c656f2061756775652e20437572616269747572206e6f6e2069700073756d2073697420616d657420656c6974206c616f726565742076656e656e00617469732065676574206e6f6e206d61676e612e204375726162697475722000616c697175616d20696163756c697320706f72747469746f722e2053656420006163206c6f72656d206120646f6c6f7220616c6971756574206c7563747573002e2050726f696e206c6163696e696120697073756d20616e74652c207369740020616d657420696d70657264696574206c6563747573206469676e69737369006d20656765742e20566573746962756c756d20656666696369747572207369007420616d65742073656d207175697320736f64616c65732e20566976616d7500732070756c76696e6172207068617265747261206e69736c2076697461652000616363756d73616e2e204475697320696e74657264756d20636f6e67756520007661726975732e20446f6e65632061207361676974746973206e6973692c20007175697320656c656d656e74756d206475692e20536564206c756374757320006c616f72656574206c656f206567657420756c7472696365732e0a0a446f6e006563206120617567756520656765737461732c2076756c70757461746520650073742076656c2c206c616f72656574206c616375732e20416c697175616d2000646f6c6f7220646f6c6f722c20706c61636572617420696e2065676573746100732073697420616d65742c20616c69717565742061206f7263692e20496e200076756c70757461746520626c616e64697420656c69742c2068656e6472657200697420636f6d6d6f646f2075726e6120626962656e64756d2065752e2045740069616d20617567756520616e74652c206d6f6c65737469652071756973206f0064696f2065752c2074656d70757320636f6d6d6f646f206e6962682e20557400206d6174746973206c6163696e69612073617069656e2075742064617069620075732e20457469616d20636f6e736571756174206e6f6e206f64696f207175006973206375727375732e204e756e6320616c697175657420626962656e6475006d20646f6c6f722065752073656d7065722e20566976616d7573206163206d00692073697420616d65742061726375206c6163696e69612072757472756d200073697420616d65742061206e756c6c612e2050686173656c6c75732065726100742072697375732c206c75637475732065676574206c6f72656d207669746100652c206d616c65737561646120626962656e64756d206d657475732e204e61006d206964206d617474697320656e696d2c206665756769617420736167697400746973206d657475732e2050686173656c6c7573206c7563747573207475720070697320657261742c20657420766172697573206d61676e612072686f6e630075732069642e0a0a4372617320766172697573207361676974746973206f6400696f20757420677261766964612e20536564206f726e61726520706f727461002076756c7075746174652e20496e746567657220706f7375657265206172630075206c6f72656d2c206964207363656c657269737175652073656d206566660069636974757220612e205365642076656c20617563746f7220697073756d2e002050656c6c656e7465737175652069642065726f73206574206c6f72656d2000616363756d73616e20616363756d73616e206567657420717569732065726f00732e204e756e632063757273757320636f6e64696d656e74756d206d692c20006e65632066617563696275732070757275732070756c76696e6172207068610072657472612e205365642073656420736f64616c6573206e756e632e204675007363652070756c76696e617220756c747269636573206d692c206964207275007472756d206d69206672696e67696c6c612061632e2053656420697073756d00207175616d2c20756c74726963696573207669746165206c6163696e6961200076697461652c206665726d656e74756d206e6f6e206d61757269732e20507200616573656e74206461706962757320756c6c616d636f72706572206c696775006c612c206567657420756c6c616d636f727065722073656d2064617069627500732065752e2046757363652073697420616d657420766573746962756c756d00206c616375732e205072616573656e74207365642074726973746971756520006c616375732c2076656c2070756c76696e6172206573742e0a0a467573636500206e6563206e6571756520646f6c6f722e20566573746962756c756d20616c00697175616d206c6967756c612075742064696374756d2073656d7065722e2000457469616d206d616c657375616461206d65747573206567657420656c69740020636f6e64696d656e74756d20636f6e7365717561742e2053757370656e64006973736520736167697474697320656e696d207175616d2c20696e20756c7400726963696573206c656f206461706962757320717569732e2050656c6c656e007465737175652063757273757320766172697573206e6973692c2076656c2000736167697474697320656c6974206d6178696d7573206e6f6e2e205375737000656e646973736520746f72746f72206f64696f2c207068617265747261207600656c206475692061632c20656c656d656e74756d2076756c707574617465200074656c6c75732e20416c697175616d20696420666163696c69736973206578002e2044756973206e6563206672696e67696c6c61206e69736c2e2046757363006520736564206672696e67696c6c612065782e204675736365207574206d610075726973206574207175616d207669766572726120696e74657264756d2061002061742065726f732e20416c697175616d20616363756d73616e2065726174002075742074656c6c7573206469676e697373696d20696163756c6973207365006420657420746f72746f722e2050726f696e20736564206175677565207369007420616d6574206d657475732072757472756d206772617669646120696e200076656c206e69736c2e20496e746567657220706f73756572652061726375200069642065726f73206665726d656e74756d2074656d706f722e0a0a55742075006c74726963657320697073756d206f7263692e204d61757269732061756374006f72206d6178696d75732072697375732c20717569732066696e6962757320006e756c6c612065666669636974757220696e2e204e616d20756c74726963650073206e6571756520616320657820666163696c697369732c20696e2074656d00707573206c6967756c61206c6f626f727469732e204372617320706861726500747261206c6f72656d20696e74657264756d206e657175652068656e6472650072697420617563746f722e2050686173656c6c7573206e6f6e207275747275006d206c696265726f2c20617420736f64616c657320697073756d2e20496e2000756c6c616d636f72706572206578206c65637475732c2073697420616d657400207068617265747261206e756c6c6120636f6e76616c6c69732072686f6e630075732e2053757370656e6469737365206e6f6e20656c6974206c6f72656d2e00205072616573656e7420756c6c616d636f72706572206e756c6c612076656c0020637572737573206469676e697373696d2e2041656e65616e20736f64616c00657320746f72746f72206f64696f2c20617420656c656966656e64206c696700756c61206469676e697373696d2073697420616d65742e2044756973207665006c20736f6c6c696369747564696e2074656c6c75732e204d616563656e61730020717569732070656c6c656e746573717565206475692e204d6175726973200071756973207361676974746973206e756e632e20447569732072757472756d00206d616c657375616461206c6967756c612065752070756c76696e61722e0a000a41656e65616e206772617669646120706f727461207175616d20736564200070656c6c656e7465737175652e2050656c6c656e7465737175652076657374006962756c756d20626962656e64756d207472697374697175652e2056657374006962756c756d20696e206572617420656e696d2e2050726f696e2065726f7300206f7263692c2072686f6e63757320616320616c697175616d206e6f6e2c20007072657469756d2061206f7263692e20566573746962756c756d2074656d700075732c2076656c6974206d616c657375616461206c6163696e69612064617000696275732c2075726e61206c6f72656d206672696e67696c6c61206d61737300612c20696e206d6178696d757320656e696d20656e696d206574206e69736c002e204e616d207669766572726120636f6e64696d656e74756d206c6967756c006120696e20696d706572646965742e20536564207175697320656c656d656e0074756d206a7573746f2e204e756c6c61206f726e61726520636f6e73656374006574757220656e696d2061742074696e636964756e742e20457469616d207300697420616d6574206c616f7265657420697073756d2e0a0a457469616d2066006163696c697369732065737420706f72747469746f722c2066696e69627573002066656c69732065742c207375736369706974206c65637475732e2041656e0065616e20706c616365726174206567657374617320616c69717565742e204d00617572697320657420656e696d206c65637475732e204d616563656e6173200070656c6c656e746573717565206d6f6c6c6973206d692064696374756d2063006f6e6775652e205072616573656e742076656c2066656c6973206c616f72650065742c20636f6e7365637465747572206e756c6c61206e6f6e2c2066657567006961742074656c6c75732e2053656420616c697175616d2076656c697420730065642073656d20706c616365726174207361676974746973206174207369740020616d6574206c696265726f2e2051756973717565206d6174746973207275007472756d20656e696d2c2073656420656c656d656e74756d2076656c69742e002050686173656c6c7573206e6f6e206c616f72656574206f64696f2e204375007261626974757220656c656966656e64206f64696f2073697420616d65742000756c7472696369657320756c6c616d636f727065722e20496e20656765742000726973757320756c7472696365732c207665686963756c61206c65637475730020696e2c20616c6971756574207475727069732e0a0a50686173656c6c757300206e6f6e206d6574757320617563746f722c20636f6e736563746574757220006e69736c2061742c207361676974746973207175616d2e205072616573656e007420746f72746f722074656c6c75732c2074656d706f72206e6f6e207068610072657472612069642c207661726975732061742070757275732e2053656420006120636f6e64696d656e74756d206e6962682e205072616573656e74206c65006f206e756e632c20756c6c616d636f72706572207665686963756c612076650073746962756c756d2074696e636964756e742c206665726d656e74756d2075007420616e74652e20496e206f726e617265206c61637573206e6f6e206c69620065726f20736f6c6c696369747564696e2c2065752066657567696174206e75006c6c6120626c616e6469742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e204e756e632065676574206e756e63207369007420616d6574206d617572697320706861726574726120766573746962756c00756d20657520766974616520656e696d2e20496e20766f6c7574706174207300617069656e2065676574206c65637475732074696e636964756e7420766f6c0075747061742e20416c697175616d2073656420766976657272612075726e61002e204675736365206c6563747573206d657475732c20756c747269636573200076656c20657569736d6f642065742c20616c69717565742073656420746f7200746f722e2050686173656c6c757320626c616e6469742070656c6c656e7465007371756520756c747269636965732e204f72636920766172697573206e6174006f7175652070656e617469627573206574206d61676e697320646973207061007274757269656e74206d6f6e7465732c206e6173636574757220726964696300756c7573206d75732e204e756c6c61206469676e697373696d2c2076656c690074207175697320666163696c697369732072686f6e6375732c206e756c6c61002066656c697320747269737469717565206d61757269732c20657520636f6d006d6f646f206c656f206f726369206174206e6973692e20467573636520636f006e736563746574757220746f72746f7220657420706861726574726120766500686963756c612e204e756e63207665686963756c612c206d65747573207369007420616d657420657569736d6f642064696374756d2c20646f6c6f72206d650074757320616363756d73616e206573742c20696e20696163756c6973206d6100737361206c696265726f206e6f6e206c65637475732e0a0a496e2061742063006f6e736571756174207475727069732e204675736365206d69206e756c6c61002c206672696e67696c6c61207574207661726975732076697461652c2074720069737469717565206174206e6973692e204e756c6c61206964206d69206572006f732e204d6f726269206469616d20616e74652c2076656e656e617469732000696e2073757363697069742076656c2c2074696e636964756e7420766974610065206f64696f2e204d61757269732068656e647265726974206e6f6e20617200637520696420636f6e73656374657475722e205072616573656e7420616c69007175616d206e756e632076656c206d61676e61207665686963756c6120616c0069717565742e204e616d20636f6e7365637465747572206e756c6c612071750069732075726e6120696163756c697320756c6c616d636f727065722070656c006c656e74657371756520657420617263752e20496e7465676572206163206c00616f726565742076656c69742e2050656c6c656e7465737175652075742061006e7465207175616d2e20566976616d75732061206d6174746973206c656f2c002069642074656d707573206d692e204675736365207363656c657269737175006520646170696275732070757275732073656420616c697175616d2e0a0a4600757363652076656c20656e696d2070656c6c656e7465737175652c20656c65006d656e74756d206469616d2065752c2076756c7075746174652076656c6974002e204e756e63206c696265726f2074656c6c75732c20656c656d656e74756d00206964207175616d2073697420616d65742c20617563746f7220706f7274740069746f722070757275732e204c6f72656d20697073756d20646f6c6f72207300697420616d65742c20636f6e73656374657475722061646970697363696e670020656c69742e20457469616d206d6f6c6573746965206e756e6320736f6461006c657320636f6d6d6f646f20696163756c69732e204e616d20717569732065006c69742061206c696265726f20616c697175657420636f6e64696d656e7475006d207669746165206163206d692e20457469616d20756c7472696365732075006c74726963696573206d61676e6120766974616520706f73756572652e2056006976616d757320757420657569736d6f642076656c69742e20437261732073006f64616c6573206c6163696e6961206d61676e612c2071756973206665726d00656e74756d20657261742064696374756d2073697420616d65742e204675730063652074696e636964756e74206c696265726f206574206e657175652074720069737469717565206375727375732e204372617320616320646f6c6f72206c006967756c612e2050726f696e206567657420696d70657264696574206d6175007269732e20416c697175616d206469616d20646f6c6f722c20666163696c69007369732076656c206e69626820656765742c20636f6e7365717561742076650073746962756c756d206c696265726f2e204375726162697475722076756c700075746174652066617563696275732061756775652065676574207375736369007069742e204e756e632074696e636964756e742074656c6c7573207574206d006f6c6c6973206d6178696d75732e2050726f696e20766573746962756c756d00206c616f726565742073617069656e2c206e6563206672696e67696c6c6120006e6973692074656d70757320696e2e0a0a566573746962756c756d20616e74006520697073756d207072696d697320696e206661756369627573206f72636900206c756374757320657420756c74726963657320706f73756572652063756200696c69612063757261653b20566573746962756c756d20666163696c69736900732c20707572757320657520706f7375657265206c6163696e69612c2070750072757320657374206c616f72656574206e69736c2c206e656320766f6c75740070617420616e746520657261742076697665727261206e756c6c612e204e75006c6c6120666163696c6973692e20496e206e656320706f727461206d65747500732e20446f6e656320666163696c6973697320646f6c6f722073697420616d006574206f64696f20616c697175616d2c206567657420706f72747469746f720020697073756d2076756c7075746174652e204d61757269732076656e656e6100746973206d61676e61206575206578206f726e6172652c20696420736f6c6c00696369747564696e20616e746520636f6e6775652e2050656c6c656e746573007175652075726e61206f7263692c20756c747269636965732076697461652000706f73756572652075742c20756c74726963657320717569732074656c6c7500732e20536564206e6f6e20656c656966656e64206d692c20657520747269730074697175652073656d2e2041656e65616e2074656d707573206d61737361200065752067726176696461206d616c6573756164612e2050726f696e206e6563002076756c707574617465206e756e632e204e756e63206d616c657375616461002c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c207175616d00206e69736c2074696e636964756e74206c616375732c2073697420616d6574002066657567696174206c6f72656d206e756c6c61206e656320697073756d2e000a0a4d617572697320736564206d6574757320617420646f6c6f7220636f6e0064696d656e74756d20636f6e73657175617420616363756d73616e2061632000646f6c6f722e2053757370656e6469737365206c756374757320626c616e640069742065782c20617420656c656d656e74756d206d692064696374756d206500752e20416c697175616d2074696e636964756e7420656c656d656e74756d20006d61676e6120766974616520616c69717565742e20446f6e656320696e206f00726e617265206d61757269732e20496e206c6163696e69612073697420616d006574206e756c6c61207669746165206665726d656e74756d2e20446f6e656300206e6563206665726d656e74756d2075726e612c206174206672696e67696c006c612076656c69742e20416c697175616d206572617420766f6c7574706174002e20566573746962756c756d2073656420747572706973206e657175652e2000496e74656765722076656c207375736369706974207475727069732e2053650064206e656320636f6e64696d656e74756d206e657175652e2041656e65616e0020636f6e76616c6c697320766f6c757470617420706f73756572652e205068006173656c6c7573206c6f626f72746973206c6967756c612076656c2072686f006e637573206c616f726565742e2041656e65616e2065676574206573742069006163756c69732c2076656e656e61746973206f64696f2075742c206469637400756d2074656c6c75732e2044756973207669746165206572617420766974610065206e69736920637572737573206d61747469732e204e756e6320626c616e006469742070656c6c656e7465737175652072697375732c206c7563747573200074696e636964756e74206d61676e6120706f7274612061632e204372617320007669766572726120616c697175657420706f73756572652e0a0a4c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e204e756c6c616d20657520006c61637573206c65637475732e20467573636520612074656c6c7573206c61006375732e20496e74657264756d206574206d616c6573756164612066616d65007320616320616e746520697073756d207072696d697320696e206661756369006275732e204e756c6c616d2070656c6c656e746573717565206c6f72656d20007175616d2c2076656c2074656d706f7220746f72746f72207072657469756d002076697461652e20566573746962756c756d20736f6c6c696369747564696e002071756973206d692061632072757472756d2e20496e746567657220646967006e697373696d206c696265726f20616c697175616d206672696e67696c6c610020616363756d73616e2e20446f6e656320666163696c697369732064756920006e6f6e206c656f2074656d707573206c75637475732e20536564206d616c65007375616461207665686963756c6120756c7472696365732e20557420616e74006520616e74652c20616c69717565742073697420616d657420736f6c6c69630069747564696e2066696e696275732c20626c616e64697420756c747269636500732061756775652e20536564206e6563206e69736920717569732076656c69007420636f6e64696d656e74756d20677261766964612e2041656e65616e2061006c697175657420657569736d6f64206475692c207574207665686963756c610020697073756d2066617563696275732065752e0a0a46757363652076656c6900742073617069656e2c2073656d706572206574206469676e697373696d207600656c2c20696163756c69732069642076656c69742e205072616573656e7420006e6f6e206e69736c206567657420616e746520736f6c6c696369747564696e002072757472756d206e6563206e6563206573742e205365642076697665727200612066656c6973206e69736c2c206e65632065676573746173206573742073006f64616c65732065742e204e616d20636f6e67756520617567756520737573006369706974206578206c616f7265657420706f72747469746f722e2046757300636520626962656e64756d20697073756d206e657175652c206163206d617800696d757320646f6c6f72206672696e67696c6c612075742e2043757261626900747572206120636f6e736571756174206c6967756c612e204e616d20766f6c00757470617420636f6e736571756174206c696265726f20657520626c616e640069742e204e616d20696e74657264756d2074656c6c7573207574206f64696f0020636f6e736571756174206f726e6172652e204e756c6c6120666163696c690073692e204d616563656e6173206c756374757320616e74652065676574206f0064696f20636f6e64696d656e74756d206672696e67696c6c612e20496e7465006765722065676574206d61676e612073697420616d6574206d61676e6120660065726d656e74756d20677261766964612e0a0a4d6f72626920736f64616c6500732076656c6974206e6973692c2061206d6178696d75732064756920656c65006966656e64206e6f6e2e204d61757269732070757275732065726f732c2061007563746f722075742066696e6962757320656765742c20756c7472696369650073207175697320657261742e2041656e65616e207361676974746973207475007270697320696e206f72636920706f7274612c20696420706861726574726100206578206566666963697475722e20467573636520617420636f6e6775652000657261742e20566573746962756c756d206c756374757320656e696d20666500726d656e74756d206c656f2064696374756d207472697374697175652e2044006f6e6563206e65632066656c69732073697420616d65742064756920706f7200747469746f7220656c656d656e74756d2e205072616573656e74206c616f72006565742c2066656c6973207669746165207472697374697175652062696265006e64756d2c206c6f72656d206e6962682070656c6c656e746573717565207300617069656e2c20736564207363656c65726973717565206c6f72656d206e690062682076656c2073656d2e204675736365206e6f6e2076656e656e6174697300206e657175652e20446f6e6563207363656c65726973717565206469676e69007373696d20726973757320696420706f7274612e0a0a53757370656e6469730073652072686f6e637573206c696265726f2076656c2066656c6973206c616300696e69612074656d7075732e2046757363652064696374756d206e657175650020736564206e69626820677261766964612c20626962656e64756d206c6f62006f727469732075726e6120616c69717565742e204375726162697475722065007420657569736d6f6420656e696d2e2050656c6c656e74657371756520696d0070657264696574206175677565206c6f72656d2c2075742068656e64726572006974206e657175652073656d7065722076656c2e2050686173656c6c75732000636f6d6d6f646f20647569206e6f6e206c6f626f727469732076656e656e61007469732e20437261732076697665727261207361676974746973206e69736c002c207669746165206c6f626f72746973206d6574757320756c747269636965007320696e2e20416c697175616d207669746165206469676e697373696d207000757275732c206661756369627573207072657469756d2072697375732e20500072616573656e74206163206d61676e6120617563746f722c206d616c65737500616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f20647569002e205072616573656e7420617420746f72746f7220697073756d2e204675730063652074656d7075732c2066656c697320696e20616363756d73616e206661007563696275732c206c696265726f20656e696d206d6f6c6c697320656e696d002c20696420656c656d656e74756d206d657475732070757275732061206d6100676e612e204375726162697475722073697420616d657420636f6e64696d65006e74756d2075726e612e20496e2075726e612066656c69732c20636f6e6469006d656e74756d207669746165206e756c6c612065752c20706f73756572652000636f6e64696d656e74756d206e6962682e2050656c6c656e746573717565200067726176696461206f64696f20656c69742c2076656c20616c69717565742000726973757320636f6e7365637465747572206e6f6e2e204d616563656e6173002074656d706f722c206d61676e6120616320706861726574726120616c69710075616d2c20616e7465206c6967756c612066657567696174207175616d2c20006575206d6174746973206e756c6c61206e69736c206e6f6e206d617373612e000a0a496e746567657220756c74726963657320736f64616c6573206a757374006f2e20416c697175616d20626962656e64756d207068617265747261207269007375732c2061632076697665727261206e69736920616363756d73616e207500742e20457469616d2067726176696461206665726d656e74756d206d692069006e207363656c657269737175652e20467573636520696e74657264756d2c20006c656f207175697320626962656e64756d206d61747469732c206a7573746f00206d65747573206672696e67696c6c6120656c69742c20616320706c6163650072617420747572706973206469616d206661756369627573206e69736c2e2000457469616d206c616f72656574206c696265726f206c6f72656d2c2076656c002074656d707573206f64696f206469676e697373696d2065742e204e756c6c006120666163696c6973692e20496e74656765722064617069627573206d6f6c00657374696520656e696d2c2061632074696e636964756e742073617069656e0020636f6e76616c6c69732075742e2043726173206d6f6c6c697320636f6e73006563746574757220666163696c697369732e2043757261626974757220747200697374697175652c20726973757320706f72747469746f722076756c7075740061746520756c7472696365732c206c6f72656d2073656d206469676e69737300696d206e657175652c20657520706f72747469746f72206d61676e61206e69007369207669746165207475727069732e20446f6e656320636f6e7365717561007420657374206575206469616d20666575676961742c2076656c2076657374006962756c756d206469616d206c6163696e69612e20457469616d20756c74720069636573206c65637475732073697420616d6574206f726369207361676974007469732c2076656c20616c69717565742065726f73206c6163696e69612e2000496e74656765722070686172657472612c206172637520657520626c616e640069742064696374756d2c2076656c6974206f64696f20636f6d6d6f646f206f0064696f2c20757420636f6e7365717561742074656c6c7573207175616d206e006563206a7573746f2e2053656420656666696369747572207365642066656c0069732061206d6178696d75732e204e756c6c616d20656c656966656e6420730063656c65726973717565206c6f72656d2c20696e206d6f6c65737469652074006f72746f72206d616c6573756164612076697461652e20457469616d20636f006e64696d656e74756d2c20617567756520657420696163756c69732064617000696275732c206469616d206172637520706f72747469746f722075726e612c0020616320636f6e76616c6c6973206d61676e61206175677565207365642064006f6c6f722e2050686173656c6c75732076656c206f64696f2070757275732e000a0a457469616d20656c656966656e64206469676e697373696d206e697369002066657567696174206c6163696e69612e2051756973717565206574206c6100637573207669746165206172637520706f73756572652074656d7075732e20004e616d20636f6e73657175617420657820696e206172637520756c747269630065732c2076656c2076656e656e61746973206e756e63206672696e67696c6c00612e20496e7465676572206575206a7573746f206964206e6962682062696200656e64756d2072757472756d2e20457469616d207363656c657269737175650020747572706973206c656f2c2061632074696e636964756e74207175616d200064696374756d2065752e204475697320636f6e73657175617420636f6e67750065206a7573746f2c206469676e697373696d20626962656e64756d207361700069656e20656c656966656e6420656765742e204d616563656e617320646967006e697373696d206d6173736120757420626c616e646974206c6163696e6961002e2050726f696e2066657567696174206e756e6320736564206c6f72656d2000616c697175616d2070756c76696e61722e20416c697175616d207661726975007320616e7465207365642073617069656e206469676e697373696d2c206574002064696374756d2073617069656e20696e74657264756d2e2041656e65616e00206574206c656f2061756775652e2053656420756c74726963696573207469006e636964756e742065726f732c2073656420706f727461206d6175726973200066696e69627573206e65632e0a0a53757370656e6469737365206e6563206c006f72656d206c696265726f2e204d616563656e6173206e6563206c6967756c0061206e6f6e20657820626c616e6469742073757363697069742e2050656c6c00656e746573717565206c616375732072697375732c206f726e6172652061200063757273757320656765742c2074656d706f72207669746165206e69736c2e00204375726162697475722072757472756d20766f6c757470617420657820610020706c6163657261742e204d6f726269206d616c6573756164612074656c6c0075732065752061726375206d6f6c6573746965206d61747469732e2045746900616d207363656c6572697371756520636f6d6d6f646f2061756775652c20710075697320636f6d6d6f646f2076656c697420656c656966656e642069642e20004d617572697320617563746f72207669746165206d657475732071756973200076656e656e617469732e2050726f696e20626962656e64756d206661756369006275732074656c6c75732c20736f6c6c696369747564696e20696d7065726400696574206e69736920766f6c75747061742076656c2e20446f6e656320666100756369627573206d6f6c6573746965207175616d2c206574206672696e6769006c6c61206469616d2e0a0a446f6e656320696d706572646965742065726174002061206e6973692066696e696275732c207574206469676e697373696d206e0069736920666163696c697369732e204e756c6c6120696163756c697320757400207175616d20616c69717565742068656e6472657269742e2050656c6c656e0074657371756520757420656c656966656e64206e657175652e20446f6e656300206575206c6563747573206574206c656f20696e74657264756d2074696e63006964756e742e204e616d20756c74726963657320656c6974206e6973692c200065676574206d6178696d7573207269737573206672696e67696c6c612071750069732e205365642076656c206e69736920617420747572706973207275747200756d2074696e636964756e742e204e756c6c6120636f6e677565206572617400206c6f72656d2c207365642066696e69627573206c6163757320616c6971750065742065742e2050656c6c656e746573717565207574207175616d20696e20006f72636920736f64616c65732074656d706f72207574206575206e65717565002e2051756973717565206d616c65737561646120736167697474697320726900737573206e6f6e2076656e656e617469732e204e756e632066696e696275730020756c74726963696573206e69626820706f737565726520636f6e7365637400657475722e20496e7465676572206e6563206c6967756c61206e756e632e20005574206e6563206d617373612076656c206c6967756c612074726973746971007565206665726d656e74756d20696e2065752074656c6c75732e0a0a4d61750072697320736f64616c6573206469616d2069642066656c6973206c616f72650065742c207175697320736f6c6c696369747564696e2074757270697320756c006c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207361706965006e20657420756c6c616d636f7270657220736f6c6c696369747564696e2c200073656d206c6563747573206672696e67696c6c61207175616d2c2061742070006c6163657261742065782065726f732075742073617069656e2e20496e206f0064696f206e6973692c207661726975732073697420616d657420646f6c6f72002076656c2c20756c74726963657320706c6163657261742074656c6c75732e0020557420646f6c6f72206d692c2073656d706572206e6f6e206d6178696d7500732076656c2c2070756c76696e61722061742066656c69732e20457469616d00207269737573206e756c6c612c20656666696369747572206174206c6f7265006d206c6f626f727469732c20706f72746120656c656966656e64206c6f7265006d2e20566976616d757320617420636f6e64696d656e74756d2065726f732e00204475697320657420696163756c6973206d692c20766974616520636f6e73006563746574757220617263752e20496e2065726f73206d61757269732c207400656d706f7220717569732070656c6c656e74657371756520696e2c207068610072657472612076656c206c65637475732e204d6f72626920706f7274612c20006c696265726f20617420736f64616c657320656c656966656e642c206c6163007573206c6f72656d20626962656e64756d206f64696f2c206e656320706f7200747469746f72206c65637475732074656c6c75732076656c2073656d2e204e00756c6c61207363656c657269737175652065742075726e61206575206469630074756d2e205574206f726e617265206d61747469732074656d7075732e2055007420626c616e646974206f64696f2061206d61737361206d6178696d75732c00206e6563206d616c657375616461206c696265726f2066617563696275732e000a0a5574206d6178696d757320756c7472696369657320747269737469717500652e20457469616d206163206469616d206174206e756c6c61206c75637475007320756c6c616d636f7270657220696e20657520656c69742e2053656420650074206d617373612076656c206e6962682072686f6e6375732074696e63696400756e742e2053656420636f6e677565207363656c657269737175652074656d007075732e205175697371756520766f6c7574706174206d61737361206c6f7200656d2c2076656c2072757472756d20656e696d20636f6e64696d656e74756d00206e65632e20416c697175616d2074757270697320646f6c6f722c2065666600696369747572207365642064696374756d20616c697175616d2c206d617474006973206964206c616375732e204d616563656e61732066657567696174206e006973692071756973206d6178696d757320636f6e76616c6c69732e0a0a536500642074696e636964756e74207574206a7573746f2076697461652066696e69006275732e204d617572697320626c616e6469742065726174206e756e632c2000766974616520616363756d73616e2061726375206672696e67696c6c612071007569732e2053656420756c7472696365732074696e636964756e7420646961006d2073697420616d657420626962656e64756d2e20416c697175616d20666100756369627573206c61637573206567657420766573746962756c756d206865006e6472657269742e204e756c6c616d20766172697573206e6563206e657175006520657420656c656966656e642e2053656420766974616520747572706973002065742074757270697320656c656966656e642074656d706f722e2050656c006c656e74657371756520766573746962756c756d206172637520612065756900736d6f64206d61747469732e205072616573656e74206e6563207269737573002073697420616d6574207475727069732064617069627573207375736369700069742e20446f6e656320626962656e64756d2074656d707573206d6920696e002072757472756d2e20566573746962756c756d206d61737361206d65747573002c20696d7065726469657420657520736f64616c657320717569732c2061630063756d73616e2076656e656e6174697320617263752e20496e206e6f6e2070006f7375657265206c696265726f2c2076656c2073757363697069742075726e00612e0a0a53757370656e64697373652073617069656e206d657475732c207000756c76696e6172206e6563206c61637573206d6f6c65737469652c20656765007374617320766573746962756c756d2065782e20566573746962756c756d200074656d706f7220616e7465206e6563206e756e632074696e636964756e742000666163696c697369732e20457469616d20626962656e64756d2c20616e74650020696e207072657469756d20636f6e6775652c206d61737361206c6f72656d00206c6f626f727469732065782c206e65632072686f6e63757320746f72746f0072206d61757269732061632070757275732e20496e2072686f6e637573207600756c707574617465206d61676e6120617420657569736d6f642e204d61656300656e61732076656c206c616f72656574206a7573746f2c20696e206c616369006e6961206f64696f2e2050656c6c656e74657371756520616c697175657420006c616375732061632076656e656e61746973206c75637475732e20496e7465007264756d206574206d616c6573756164612066616d657320616320616e74650020697073756d207072696d697320696e2066617563696275732e205175697300717565206c6163696e6961207072657469756d2075726e6120736f64616c650073206d6178696d75732e20496e7465676572206469676e697373696d20707200657469756d206d6f6c6c69732e20536564206c656374757320656c69742c2000616c697175616d2061206469616d2069642c20646170696275732076617269007573206c6967756c612e204d6f726269206c6163696e696120736f64616c650073206c6f72656d2c20696420616c697175616d206e69736c20706f73756572006520656765742e0a0a41656e65616e2070686172657472612c2074656c6c750073206163206469676e697373696d20656765737461732c206175677565206500737420656c656d656e74756d2066656c69732c2076656c206c6f626f7274690073206e69736920656e696d20636f6d6d6f646f207475727069732e205375730070656e6469737365206e756e63207475727069732c206c6f626f727469732000736564206d61757269732069642c20706f72746120736f6c6c69636974756400696e206a7573746f2e2050726f696e20656c656d656e74756d206d6175726900732073697420616d6574206f72636920696e74657264756d2074696e63696400756e742e2053656420706f7274612075726e612066656c69732c206964207600656e656e617469732073617069656e207363656c657269737175652065742e0020566976616d7573206461706962757320706f72747469746f72206a757374006f2c206964206d6f6c6573746965206e69736c20696163756c69732074696e00636964756e742e20496e206d6174746973206d61757269732073697420616d00657420636f6e76616c6c697320756c747269636965732e20446f6e65632063006f6d6d6f646f2065676573746173206572617420766974616520617563746f00722e204e756c6c616d2066657567696174206d61676e61206573742c2065740020706f72747469746f72206573742074656d706f722061632e20416c69717500616d20766172697573206d69206575206c61637573206d61747469732c207300697420616d6574207375736369706974206e69736920736f64616c65732e200041656e65616e2065742068656e6472657269742076656c69742c20696e2070006c616365726174206e6973692e20446f6e656320717569732076656c697420006d692e20457469616d20706c61636572617420657261742076656c2065726f0073206672696e67696c6c6120636f6d6d6f646f2e0a0a50686173656c6c757300207669746165206475692066656c69732e205072616573656e7420707265740069756d206d6174746973206e657175652c2065676574206672696e67696c6c00612066656c69732074656d706f722061742e204372617320617563746f7220006e69736c206e65632073656d206c6f626f72746973206d61747469732e205000656c6c656e746573717565206d61747469732074696e636964756e74207465006d7075732e2050726f696e206c616f726565742073656d206120766f6c7574007061742072686f6e6375732e204d6f726269206575206d6175726973207369007420616d65742072697375732074696e636964756e74206f726e6172652e200041656e65616e20756c6c616d636f72706572206c61637573206e6f6e206e75006e6320696d706572646965742c20657420656c656966656e642074656c6c75007320706c6163657261742e2043726173206574206d6920696e206469616d20006567657374617320706c616365726174206e6f6e2073697420616d6574206c0065637475732e20416c697175616d20696163756c6973207075727573206c6f00626f727469732c207363656c657269737175652065726f7320656765742c200076617269757320646f6c6f722e2043757261626974757220737573636970690074206e6571756520736564206567657374617320636f6e7365717561742e2000496e2076656c20616c697175616d206d657475732c206c756374757320636f006d6d6f646f206e6962682e2053656420636f6e7365717561742070756c7669006e6172206d692c20736167697474697320616c69717565742065726f73206d006178696d75732076756c7075746174652e2055742065742074656d70757320006c616375732e0a0a53757370656e646973736520706f74656e74692e2044750069732076656c2076756c707574617465206d61757269732c20757420736f6c006c696369747564696e206d692e20446f6e65632076656c20616c697175616d00206c6967756c612c20656765742072686f6e6375732074656c6c75732e20500072616573656e74206e65632065726f732076697461652065726f732076756c0070757461746520617563746f722e204e756e632073757363697069742c206d00617572697320696420696e74657264756d20756c6c616d636f727065722c2000746f72746f72206a7573746f20646170696275732073617069656e2c20766900746165206c6163696e6961206c656f2075726e612076697665727261206e690062682e205175697371756520626962656e64756d20617563746f722065726f00732c206964206d6174746973206d617373612064696374756d20612e20557400206964206d69206e69736c2e20566573746962756c756d206575206c756374007573206c616375732e20446f6e65632061206d6178696d75732066656c6973002e0a0a446f6e65632073656d206e69736c2c20756c7472696365732061207400656c6c75732075742c2070656c6c656e74657371756520666163696c6973690073206e756c6c612e205365642065742073617069656e2075742065726f732000636f6e64696d656e74756d20706f72747469746f722e204675736365207369007420616d6574206d657475732065782e20496e20612065782073697420616d0065742074656c6c75732070756c76696e617220636f6e73657175617420612000696420656e696d2e204d616563656e617320756c6c616d636f727065722073006f64616c6573207475727069732c207175697320756c6c616d636f72706572002065726f7320636f6e7365717561742065742e20496e746567657220736f6400616c6573206573742073697420616d657420616e74652074656d7075732c2000696420616c69717565742066656c69732072757472756d2e204c6f72656d2000697073756d20646f6c6f722073697420616d65742c20636f6e7365637465740075722061646970697363696e6720656c69742e204d616563656e61732069640020747572706973207669746165206573742076656e656e6174697320656c65006d656e74756d2e0a0a446f6e656320696163756c697320677261766964612000636f6e73656374657475722e20457469616d20657569736d6f642065726f7300206567657420766573746962756c756d206672696e67696c6c612e20496e2000706f7274612c206572617420766974616520656c656d656e74756d2067726100766964612c20747572706973206c6f72656d206d6f6c6573746965206e696200682c20696420706861726574726120746f72746f72206d65747573206c616300696e6961207475727069732e204d6175726973207072657469756d2076617200697573207475727069732c2065742063757273757320657820766976657272006120717569732e20536564206d616c657375616461206c656f206574206d61007373612074656d707573206c6163696e69612e204e756e632073697420616d00657420656e696d2073656d2e20446f6e65632076656c206772617669646120007175616d2c2076656e656e61746973207665686963756c6120657261742e0a000a496e206e6f6e206c61637573206d616c6573756164612c206d6178696d750073206e696268206e65632c20636f6e73656374657475722076656c69742e20004e756c6c61206575206772617669646120746f72746f722e2050686173656c006c757320696e74657264756d206665726d656e74756d207661726975732e20004d6f726269207661726975732076656c697420696e206c6163757320736365006c65726973717565206d616c6573756164612e2050686173656c6c75732073007573636970697420616c697175616d2065726f7320696e20747269737469710075652e20566573746962756c756d2061632075726e61206e756e632e204d610075726973207072657469756d20746f72746f72206469616d2c206120667269006e67696c6c61206c65637475732074656d7075732061632e0a0a4d6f7262690020696d70657264696574206d6f6c6c697320646f6c6f722c206e65632065660066696369747572207175616d20616c697175657420612e20566976616d757300206c75637475732070757275732076656c206e69736c20657569736d6f642000706f72747469746f722061632076697461652074656c6c75732e2043726173002073757363697069742074726973746971756520707572757320757420736300656c657269737175652e2050656c6c656e7465737175652073697420616d65007420656c6974206964206c696265726f206665726d656e74756d20736f6461006c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c6120696e00207175616d207072657469756d2c20696420616c6971756574206e6962682000636f6e7365717561742e204e756c6c6120666163696c6973692e2041656e6500616e206f726369206c696265726f2c2068656e647265726974207574206c6f0072656d2076656c2c20706f72747469746f7220706f72747469746f72206c69006265726f2e20557420696420616363756d73616e206d617373612e20536564002073617069656e206c656f2c2074696e636964756e74207072657469756d200061756775652076697461652c207669766572726120766f6c7574706174207300617069656e2e204d6f726269206d6f6c6c6973206f7263692073656420756c0074726963657320636f6e64696d656e74756d2e204372617320616363756d7300616e20736167697474697320696d706572646965742e204e616d2074656d70006f7220766573746962756c756d207475727069732c20636f6e64696d656e7400756d2074656d706f72206f64696f20656c656d656e74756d2076656c2e2056006573746962756c756d20737573636970697420616e7465206120617263752000616363756d73616e2c2076656c20636f6e677565206d61757269732067726100766964612e0a0a50686173656c6c757320766f6c7574706174206d6175726900732065676574206c696265726f206c616f7265657420616c697175616d2e2000566573746962756c756d207269737573206e69736c2c2074656d7075732061007420766f6c75747061742076697461652c2074696e636964756e74207669740061652065726f732e20416c697175616d2076656e656e6174697320616e74650020626c616e64697420707572757320666575676961742c206120616c69717500616d20616e746520626962656e64756d2e2050726f696e20696e7465726475006d20697073756d206e6962682c2076656c20706f7274612066656c69732065007569736d6f642065742e20457469616d20717569732074656c6c757320646f006c6f722e2044756973206964206c616f72656574206f64696f2c20657420630075727375732072697375732e2053757370656e6469737365206c616f726565007420646f6c6f72206575206e756c6c6120666575676961742c20736564206600657567696174206e756c6c6120626c616e6469742e20416c697175616d2071007569732061726375207175697320617567756520756c7472696365732069610063756c69732e20446f6e65632069642065726f73206e6f6e206e6973692061006363756d73616e206f726e6172652076656c20757420657261742e205365640020636f6d6d6f646f206c756374757320616e746520717569732070756c7669006e61722e205072616573656e7420616c697175616d206d6f6c6c6973207075007275732072686f6e63757320636f6e7365717561742e2055742076697461650020636f6e6775652072697375732e20496e206d6f6c6c6973206120707572750073206964206c6163696e69612e0a0a467573636520616c697175616d206175006775652073697420616d6574206a7573746f2070656c6c656e746573717565002c20756c6c616d636f7270657220706f7274612064756920696163756c6973002e2050726f696e20656765737461732076756c707574617465206e69736c2c002076656c20637572737573206d6173736120706f72747469746f722061742e0020536564206e6f6e2074656c6c75732076656c206e756c6c6120626c616e6400697420666163696c697369732e204d616563656e6173206572617420656e69006d2c20736f64616c65732061206c6163696e69612076656c2c20616c697175006574207574206e756c6c612e20496e74656765722066656c69732061726375002c20736f64616c65732076656c2066617563696275732073697420616d6574002c20766573746962756c756d2065676574206c6f72656d2e204e756c6c61200076697665727261206f64696f206163206e756e63206c75637475732c2065750020706c6163657261742074656c6c757320616c697175616d2e204d6f72626900206e65632073656d20657520616e746520706f737565726520736f6c6c69630069747564696e2e204e756c6c6120616363756d73616e20636f6e7365637465007475722065737420766974616520756c747269636965732e20447569732066006163696c69736973207363656c65726973717565206d61757269732c206e6f006e20636f6e64696d656e74756d2064756920766f6c757470617420696e2e0a000a4d617572697320717569732066696e6962757320656e696d2e204e756e630020656765742065726f7320616c69717565742c206d6178696d7573206c6f7200656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e204d6f720062692065676574206e756e6320696420726973757320657569736d6f642062006c616e6469742076656c20612072697375732e204d6175726973206120736f0064616c65732074656c6c75732e2043757261626974757220626c616e64697400206174206e756e63206174206566666963697475722e204475697320657520006c696265726f206e656320647569206d6174746973206d6178696d75732e200053656420636f6e7365717561742065726174206d61757269732c2075742070006f727461206c6563747573206665756769617420717569732e2056657374690062756c756d2076656c2074656c6c7573206e65632073617069656e20636f6e006775652076656e656e617469732e20446f6e656320706c6163657261742075006c747269636573206d692e204675736365206c7563747573206e6f6e206d610075726973206163206375727375732e204e756c6c612065676574206d61676e006120766974616520747572706973206d616c6573756164612076697665727200612e2050656c6c656e746573717565206174206c6563747573206964206d6100676e612064617069627573206d61747469732076697461652061207175616d002e0a0a496e206572617420657261742c20696d7065726469657420757420710075616d206e65632c20756c6c616d636f727065722072757472756d20747572007069732e204d6f72626920706c61636572617420656c6974206174206e697300692070656c6c656e74657371756520706c6163657261742e2050726f696e20007669766572726120736f6c6c696369747564696e206375727375732e204675007363652076656e656e6174697320626c616e646974206e69736c207365642000636f6e6775652e204675736365206d6f6c65737469652c2075726e61207665006c20636f6e76616c6c69732072686f6e6375732c20656c6974206d657475730020657569736d6f642065782c2071756973207665686963756c61206d6173730061207075727573206163206475692e2041656e65616e206e6f6e206c6163750073207665686963756c612c20656c656966656e6420656c697420736f64616c0065732c207661726975732073617069656e2e20536564206e756c6c61206a750073746f2c206665726d656e74756d20706f72747469746f722076697665727200612075742c20706f727461206567657420656e696d2e2050656c6c656e7465007371756520636f6e736563746574757220736167697474697320747572706900732c206174206375727375732064756920706f737565726520696e2e20517500697371756520612073757363697069742065726f732e20457469616d20616c0069717565742c20646f6c6f722061742064696374756d2072686f6e6375732c00206d692065737420756c6c616d636f727065722072697375732c2061207469006e636964756e742074757270697320746f72746f72206e6f6e206e6962682e002053656420636f6d6d6f646f206469616d206163206f72636920766f6c7574007061742c207669746165206c6f626f72746973206d61676e6120706f7375650072652e204475697320636f6d6d6f646f20656c697420696420657820766172006975732c206567657420706f737565726520697073756d20617563746f722e0020467573636520756c74726963696573206f64696f20657520636f6e6775650020616c69717565742e2055742071756973206573742070756c76696e61722c002076756c707574617465206c65637475732076756c7075746174652c20636f006e7365717561742073617069656e2e0a0a446f6e656320636f6e76616c6c690073206d61757269732074656d7075732076617269757320617563746f722e2000416c697175616d207472697374697175652064696374756d2070757275732c0020696420677261766964612075726e6120616c69717565742075742e2056690076616d75732065752076656e656e6174697320616e74652c206d6178696d7500732074696e636964756e74206f7263692e20557420617420616c697175616d00206c6f72656d2e20416c697175616d206e6f6e206c61637573206e756c6c61002e204d6f72626920766974616520656666696369747572206d617373612c200076697461652072686f6e63757320657261742e2041656e65616e206e6f6e2000657261742071756973206d617572697320657569736d6f6420626c616e646900742e205574207669746165206e756c6c612073697420616d65742074656c6c007573206567657374617320636f6e7365717561742e205574206c696265726f00206c65637475732c20626c616e6469742070756c76696e6172207375736369007069742065752c20636f6e7365637465747572207669746165207361706965006e2e2043757261626974757220706f727461206e756e632066656c69732c2000717569732070656c6c656e746573717565206c656f206469676e697373696d002061742e204d6f7262692076656c20696163756c6973206e6962682e20446f006e65632074696e636964756e742065737420657520696d706572646965742000706f72747469746f722e20566573746962756c756d20696e207475727069730020746f72746f722e0a0a50726f696e2076697461652061726375206e696268002e205072616573656e74206573742073617069656e2c2074696e636964756e007420617420617263752076697461652c2076656e656e6174697320736f6c6c00696369747564696e20746f72746f722e2050656c6c656e7465737175652066006163696c697369732c206f64696f20696e2074726973746971756520736f6400616c65732c20657374206e6571756520657569736d6f6420697073756d2c2000657520656c656d656e74756d206f726369206e65717565207669746165206c00696265726f2e20446f6e65632074656d706f72206c696265726f20696e206c00656f20636f6d6d6f646f2c2075742076756c707574617465206d61676e6120006c616f726565742e204d616563656e61732072757472756d20656c656d656e0074756d20766f6c75747061742e20536564206d6f6c65737469652c206d657400757320657520656c656d656e74756d20616363756d73616e2c2073656d20710075616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d616c6573007561646120616e7465206c61637573206c6f626f7274697320746f72746f72002e205365642076656c697420646f6c6f722c20636f6e73656374657475722000617563746f7220616c697175657420696e2c206f726e617265206575207361007069656e2e204e756c6c61206574206c65637475732061207075727573207300656d706572206d61747469732e204e756c6c616d206d617474697320656c65006966656e64206d6f6c65737469652e0a0a4d6175726973206c6f626f72746900732065726174206c616375732c20757420766573746962756c756d20617567007565207072657469756d2065752e20446f6e65632065742073656d70657220006d61757269732c2073697420616d65742067726176696461206c6563747573002e20447569732076656e656e61746973206d69206f7263692c2061206566660069636974757220646f6c6f7220617563746f722069642e204e756c6c61206e006f6e2075726e612075742065726174207665686963756c612074696e63696400756e74207574206964206a7573746f2e2041656e65616e206c6163696e69610020657374206964206c7563747573206d616c6573756164612e205574206f72006e61726520647569207175697320636f6e736563746574757220707265746900756d2e20496e206163206a7573746f206163206e756c6c61207669766572720061207665686963756c612e2053757370656e646973736520696e2076657374006962756c756d206d657475732c206120736f64616c6573206c6f72656d2e20004d6f726269206e6f6e206c6967756c612076697461652074656c6c7573206600696e69627573207363656c6572697371756520617420696e20616e74652e20005175697371756520696e2073656d70657220646f6c6f722e20457469616d20006d6f6c6c69732c206d6574757320696420766f6c75747061742073656d706500722c206d61737361206e65717565206c6163696e69612073656d2c20696e2000656666696369747572206c656374757320656c6974207574206e756e632e200050726f696e206c6163696e6961206c6f72656d2071756973207475727069730020756c7472696365732c20757420666175636962757320646f6c6f7220656c00656966656e642e20446f6e6563206c6f626f7274697320697073756d20657500206572617420616c69717565742c2065752065676573746173206c6967756c006120656c656d656e74756d2e205072616573656e742069642065726f73206600696e696275732c206d6f6c6c69732074757270697320696e2c206d6f6c6c690073207175616d2e2050686173656c6c757320626c616e64697420636f6d6d6f00646f206e756e6320696e20626c616e6469742e204e616d207175697320726900737573207574206469616d206c6f626f727469732073616769747469732e0a000a50726f696e20766f6c75747061742074656d7075732072757472756d2e200050726f696e20696d7065726469657420626c616e6469742073617069656e20007175697320706c6163657261742e204e756c6c6120706f73756572652064750069206964206f64696f20657569736d6f642c20696420696163756c6973207500726e6120646170696275732e20446f6e65632070656c6c656e74657371756500206d617373612069642076697665727261206c616f726565742e204e756c6c00616d2071756973206c6163757320636f6e76616c6c69732c20626c616e64690074206c656f206e6f6e2c20616c697175616d206c696265726f2e2053656420006461706962757320617567756520696e2075726e612070686172657472612c002061742073656d706572206c656374757320706c6163657261742e205365640020756c74726963657320726973757320696420696163756c69732074656d700075732e20496e7465676572206665726d656e74756d2c2072697375732065740020636f6e736563746574757220636f6e6775652c206e756e63206573742069006163756c69732072697375732c20706f73756572652076656e656e61746973002065726f7320616e74652076656c2070757275732e20496e7465676572206c006163696e69612074656c6c7573207669766572726120726973757320736167006974746973206672696e67696c6c612e2043726173206e6f6e20697073756d002071756973206e65717565207669766572726120666163696c69736973206e006f6e20736564206475692e20467573636520636f6d6d6f646f20656c65696600656e64206a7573746f207175697320636f6e6775652e0a0a566976616d757300207363656c657269737175652074696e636964756e74206e756e6320646967006e697373696d20636f6e64696d656e74756d2e2051756973717565206172630075206e69736c2c20756c6c616d636f72706572206e6563206c65637475732000717569732c20636f6e67756520616363756d73616e20657261742e2043757200616269747572207574206e697369207475727069732e20496e20766974616500206573742071756973206d657475732074656d70757320766573746962756c00756d206575206e656320617263752e2055742073656d206a7573746f2c20660065756769617420657520636f6e73657175617420656765742c20756c6c616d00636f72706572206567657420697073756d2e205072616573656e7420707265007469756d206d6174746973206c656f2c20677261766964612068656e64726500726974206c696265726f2065666669636974757220656765742e204d61656300656e617320626c616e646974206e696268206469616d2c206e6563206c616300696e69612061726375206c6163696e69612065742e0a0a4675736365207469006e636964756e7420746f72746f722066656c69732e20536564206469616d20006e6962682c20637572737573206e6563206461706962757320656765742c20006f726e61726520656666696369747572206d692e20446f6e65632069642074006f72746f72207669746165206d692064696374756d20766573746962756c75006d2e2050726f696e206964206c696265726f20616c697175616d2076656c6900742074656d706f7220696d706572646965742073697420616d657420766974006165206c616375732e20437261732073697420616d65742065782068656e640072657269742c206672696e67696c6c6120617567756520696e2c206c616f7200656574206f7263692e204d616563656e6173206c61637573206d657475732c0020656c656966656e6420736564206d657475732075742c20657569736d6f640020657569736d6f642076656c69742e20496e746567657220696e2061636375006d73616e206d692e0a0a41656e65616e20696163756c69732076656c206a750073746f20756c7472696369657320766f6c75747061742e204372617320636f006e73656374657475722c2065726f73206e6f6e20756c6c616d636f727065720020696163756c69732c2076656c6974206578207665686963756c612076656c0069742c2073697420616d657420696163756c6973206a7573746f206469616d00206567657420657261742e20496e74656765722066696e6962757320736f6400616c6573206d617373612073697420616d6574206d616c6573756164612e2000496e2072686f6e6375732073617069656e206964207175616d207669766572007261207665686963756c612e20496e20686163206861626974617373652070006c617465612064696374756d73742e20446f6e656320616320706f7274746900746f72206e657175652c2073656420656666696369747572206c6967756c61002e20446f6e6563206567657420616c697175616d206c616375732c206e6f6e00207665686963756c61206e69736c2e2053656420706c616365726174206d61007474697320636f6e76616c6c69732e20496e746567657220736f64616c6573002c206e69736c2061207665686963756c61206469676e697373696d2c207665006c69742074656c6c7573206566666963697475722070757275732c20612076006573746962756c756d206f64696f206c61637573206964206469616d2e204e00756c6c616d20766974616520626c616e64697420656c69742e20507261657300656e742074696e636964756e74206c656374757320656c69742c206e6f6e200074656d707573206e69736c20677261766964612076697461652e204e756c6c0061206469616d2070757275732c206c616f7265657420766974616520656765007374617320696e2c20636f6e7365637465747572206574206d61757269732e002053656420766172697573206d6f6c6c697320656c656d656e74756d2e204e00616d2073697420616d6574206d61676e6120677261766964612c2068656e6400726572697420697073756d206e6f6e2c2074656d7075732073656d2e204d61006563656e6173206469676e697373696d206d6f6c6c69732072686f6e637573002e205365642066656c6973206e69736c2c2073656d7065722061742074656c006c75732065742c206d616c65737561646120616c697175616d20697073756d002e0a0a496e74656765722073757363697069742076656c6974206964207365006d206665726d656e74756d2c207175697320756c7472696365732073656d200074696e636964756e742e2041656e65616e2076656c20646f6c6f72206e6563002074757270697320656c656d656e74756d207363656c657269737175652e200050726f696e206f64696f20746f72746f722c20616c697175657420656765740020696d7065726469657420717569732c20736f6c6c696369747564696e20690064206c616375732e2050656c6c656e74657371756520656e696d20656c6974002c207375736369706974206964207175616d206e65632c206375727375732000616c697175616d2065726f732e20446f6e656320626962656e64756d207369007420616d6574206d657475732071756973207363656c657269737175652e20004e756e6320616320747572706973206a7573746f2e2053656420706c6163650072617420746f72746f72206e6563206c6163757320736f6c6c69636974756400696e207363656c657269737175652e2050686173656c6c7573207669746165002063757273757320657261742c20616320756c7472696369657320746f7274006f722e0a0a43726173206d616c6573756164612067726176696461206a757300746f2076656c207661726975732e204e756c6c616d206c616f7265657420690064206d617572697320696e20646170696275732e20437572616269747572200073757363697069742065782065676574207361676974746973206c7563747500732e20447569732071756973207669766572726120656c69742c20717569730020756c6c616d636f72706572206e756e632e204d617572697320656c65696600656e642c206d6173736120696e20626962656e64756d20616363756d73616e002c206578206e69736920766573746962756c756d206469616d2c2075742069006163756c697320647569206f72636920736564207475727069732e204e756c006c6120626962656e64756d2c2076656c697420657520636f6e76616c6c6973002073656d7065722c206d65747573206e69736c20706f7375657265206175670075652c2068656e64726572697420696163756c69732073617069656e20717500616d206574206469616d2e2050726f696e2076656c206e69736c206175677500652e20566976616d75732076656e656e61746973206d657475732073656420006d617572697320706f73756572652c20612068656e64726572697420656e69006d20766976657272612e204475697320636f6d6d6f646f206172637520657400206d61676e6120756c7472696365732070656c6c656e7465737175652e204e00616d20696e206c696265726f2076656e656e617469732c2076657374696275006c756d206175677565206c6163696e69612c20766172697573206c6f72656d002e20457469616d206574206c7563747573206c616375732e205175697371750065206d6f6c65737469652c206e69626820617420756c747269636573206d6100747469732c206c616375732075726e6120636f6e76616c6c6973206e756c6c00612c20696e206d616c657375616461206e756c6c61206c6563747573206e6f006e206469616d2e20457469616d206567657420697073756d206d61676e612e002050686173656c6c75732066656c6973207175616d2c20626962656e64756d002073697420616d657420726973757320717569732c20677261766964612065007569736d6f642066656c69732e0a0a46757363652076656e656e617469732000696e74657264756d20656c69742c20717569732072757472756d206f7263690020706f7375657265206e6f6e2e20496e20656c656966656e6420657374207100756973206469616d20666163696c697369732c206163206d616c65737561640061206d61737361206f726e6172652e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e205365642063757273757320616c697175616d206f0064696f2076656c2073757363697069742e2050656c6c656e74657371756520006163206c696265726f206163206572617420616c6971756574207361676974007469732e204d616563656e617320616e7465206c616375732c207363656c6500726973717565206574207472697374697175652076697461652c20656666690063697475722065676574207175616d2e2050686173656c6c7573207275747200756d20656c69742061756775652c2071756973206c6163696e6961206f726300692074696e636964756e74206e65632e20496e20636f6e736563746574757200206964206f726369206575207363656c657269737175652e2050656c6c656e0074657371756520616c69717565742074656d707573206f64696f207574207600756c7075746174652e2051756973717565206c696265726f206e69736c2c200072757472756d2061742073617069656e206e65632c206c616f726565742074007269737469717565206a7573746f2e2043726173206c6163696e6961206e690062682069642065726f732072757472756d207363656c657269737175652e20004e756e63206e6f6e206d6175726973206f7263692e204e616d20696d70657200646965742064617069627573206a7573746f2e20496e2076656c206c616375007320706f72747469746f722c207661726975732072697375732075742c2061006c697175616d20746f72746f722e2043757261626974757220696e206d65740075732076656c2065782076656e656e6174697320706f7274612e0a0a5375730070656e6469737365207365642070756c76696e6172206573742e205068617300656c6c7573206e6563206d6920656c656966656e642c20666575676961742000617263752061742c20706f72747469746f72206e6973692e204475697320650067657420626c616e6469742065782e20437261732061206475692065726f73002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e20496e2073656d206c696265726f2c20766f6c757470617420656765742000647569207365642c2070656c6c656e746573717565206c7563747573206578002e20536564206574206c656f20656765742065726f7320696e74657264756d00206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c657374690065206c65637475732c206e6f6e207665686963756c61206c65637475732e2000446f6e656320656666696369747572206d616c657375616461206d6175726900732c2065676574207472697374697175652073656d206c6f626f727469732000612e204e616d2074656c6c75732075726e612c2072686f6e63757320666572006d656e74756d20737573636970697420717569732c20696d70657264696574002071756973206f7263692e20557420637572737573206572617420766974610065206665726d656e74756d20666163696c697369732e204e756e632075742000626c616e646974206c6f72656d2e20566573746962756c756d2074656c6c750073206469616d2c20636f6e67756520657520706f73756572652075742c206c006f626f7274697320612073656d2e204e756c6c616d206163206f726369206e006f6e2075726e6120656c656966656e6420696d706572646965742e0a0a507200616573656e74207669746165206e69736c206672696e67696c6c612c207375007363697069742065726174207365642c20656c656d656e74756d207269737500732e20446f6e656320696420756c74726963696573206f64696f2e2050726f00696e206d6174746973206d61757269732061206d61737361206d6178696d750073207472697374697175652e2050686173656c6c7573206567657420706f730075657265206e6962682e2050686173656c6c757320736564206d657475732000657420657820636f6d6d6f646f20766f6c75747061742e2041656e65616e20006c6163696e69612c206175677565206e6f6e2065666669636974757220636f006e6775652c206d617373612073656d2076697665727261206469616d2c20710075697320706f737565726520647569206c6f72656d2061206c6f72656d2e2000496e2076756c7075746174652064756920657520656c6974207375736369700069742074656d706f722e204372617320696d70657264696574206d6175726900732073656420657820637572737573206c616f726565742e20566976616d750073206e65717565206573742c20666163696c6973697320717569732066656c00697320717569732c20706f72747469746f7220706f72747469746f72206e75006e632e204675736365206e6f6e206c6f626f72746973206c6f72656d2e0a0a004d616563656e617320766f6c75747061742066617563696275732074656c6c00757320756c747269636965732070756c76696e61722e2050686173656c6c750073206120706f72747469746f7220617263752e20446f6e65632076756c7075007461746520656e696d207475727069732c20612074696e636964756e7420640069616d2074656d706f722065752e20446f6e656320736f6c6c69636974756400696e2c206578207669746165206c756374757320766573746962756c756d2c00206e69736c20616e746520756c6c616d636f72706572206d692c2061742075006c7472696369657320656e696d20646f6c6f722073656420656c69742e20500072616573656e74206d6f6c6c697320656666696369747572207269737573200071756973207072657469756d2e20566573746962756c756d2071756973206600696e69627573206475692c2065676574206f726e617265206c65637475732e0020457469616d2065676574206a7573746f20766573746962756c756d2c2062006c616e6469742073656d20696e2c206d6178696d75732065726f732e0a0a5000686173656c6c7573206120697073756d206575206d69206375727375732073006f64616c6573206e656320736564206e6973692e2044756973206672696e6700696c6c6120657374206163206c6967756c612070756c76696e61722067726100766964612e2050726f696e207669766572726120616363756d73616e207365006d2c2076656c2072757472756d206e69736c20636f6e736571756174207665006c2e204e756e63206672696e67696c6c61206d657475732076656c206661750063696275732074656d706f722e205072616573656e7420636f6e73656374650074757220646170696275732061756775652c206574207363656c6572697371007565206c656374757320636f6e64696d656e74756d206e65632e204e756e630020616363756d73616e2c2075726e61206e6f6e20706c61636572617420756c007472696365732c206d617572697320617567756520736f6c6c69636974756400696e20616e74652c2073697420616d657420616c697175616d206c61637573002076656c69742061632074656c6c75732e205365642076656e656e61746973002c2074656c6c7573206e656320617563746f7220646170696275732c206c6f0072656d2073617069656e2073656d70657220657261742c206575207669766500727261207175616d2075726e61207669746165206c6f72656d2e204d61656300656e6173207375736369706974206e756e63207574206d6f6c657374696520006d61747469732e20416c697175616d20766974616520657374206469676e69007373696d2064756920656c656d656e74756d20617563746f722e0a0a4d6f72006269206e756c6c61206c616375732c2073656d7065722073697420616d6574002066656c69732065742c2076756c707574617465206d616c65737561646120006475692e2050726f696e20656765742065726f73206c65637475732e20446f006e65632074696e636964756e7420656c69742076656c20736f6c6c69636974007564696e2073616769747469732e2050726f696e206163206d6f6c6573746900652073656d2e2053757370656e646973736520696163756c69732076657374006962756c756d2073656d206574206d61747469732e2050726f696e206c6f62006f72746973206c616f72656574206469616d2c2073656420706f737565726500206573742074656d706f722065742e2053656420696e20746f72746f7220710075697320657820696d70657264696574206c6163696e69612071756973206e006563206c6f72656d2e204d616563656e617320636f6e76616c6c69732065660066696369747572206f7263692c20657420706f72747469746f72206e69736c0020666163696c69736973206e6f6e2e205365642068656e647265726974207600656e656e617469732066656c697320666175636962757320656c656d656e7400756d2e204d6f7262692061632064756920736f64616c65732c2070656c6c65006e74657371756520697073756d2076656c2c20736f64616c65732076656c6900742e20457469616d20656e696d206c6f72656d2c2076656e656e6174697320006163206c616375732065742c2065676573746173206d616c65737561646120006c65637475732e20416c697175616d20736f64616c6573206e6962682065660066696369747572206c656374757320616c697175616d20766573746962756c00756d206e6f6e2061206f64696f2e204d61757269732069642066617563696200757320656c69742c2073656d70657220706f72747469746f72206e756c6c61002e204675736365206f726e6172652c206a7573746f20696e20766568696375006c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e677565200074656c6c75732c20757420666175636962757320697073756d207269737573002061206e756c6c612e20457469616d207669766572726120707572757320710075616d2c2076656c20706f72747469746f72206d6574757320696d70657264006965742065752e204d6f72626920636f6e76616c6c697320636f6e73657175006174206475692e0a0a4d61757269732074726973746971756520617263752000717569732072686f6e6375732064696374756d2e204e756e6320646f6c6f7200206c696265726f2c206d6178696d757320617420656e696d2075742c2067720061766964612072686f6e637573207175616d2e20566573746962756c756d20006d61747469732074696e636964756e7420666163696c697369732e20467573006365206e756c6c612061756775652c206567657374617320736564206c616300696e69612076697461652c206d616c657375616461206163206e756c6c612e00204d617572697320696163756c6973207072657469756d206c616375732c2000612066696e696275732075726e6120706f73756572652061632e204d6f7262006920696e74657264756d20666175636962757320657261742c2061206c616f0072656574206d61676e6120626c616e64697420612e2043726173206e656320006d61676e612071756973206c61637573206567657374617320696163756c6900732e0a0a4c6f72656d20697073756d20646f6c6f722073697420616d65742c0020636f6e73656374657475722061646970697363696e6720656c69742e2055007420756c74726963696573206f726369207175616d2c2073697420616d65740020656c656966656e6420616e7465206672696e67696c6c61206e65632e205000726f696e20616c697175616d20696e2074656c6c757320677261766964612000636f6e76616c6c69732e2050726f696e2072757472756d20636f6e7365717500617420656e696d20736564206d616c6573756164612e2041656e65616e206500676573746173206d657475732076697461652073656d20636f6e64696d656e0074756d2073757363697069742e2053757370656e6469737365206172637520006475692c206772617669646120696e2065726f732065742c206d61747469730020616c69717565742074656c6c75732e20496e74656765722070656c6c656e0074657371756520616e74652066696e69627573206d692072757472756d2061006c697175616d2e20496e7465676572206d6174746973206469616d2073656400206665756769617420696d706572646965742e2046757363652069642062690062656e64756d206d617373612e20496e74656765722061742074656d7075730020656e696d2e20416c697175616d206574206d6f6c6c6973206d61676e612e000a0a5365642073656d70657220656c656d656e74756d206d61737361206e6f006e20766976657272612e205365642073697420616d6574206d61676e612065007420697073756d207472697374697175652076756c7075746174652e205065006c6c656e74657371756520696e206c696265726f2073656d2e205375737065006e646973736520736f64616c65732074656d706f722061756775652074696e00636964756e7420666163696c697369732e204d616563656e6173207363656c006572697371756520697073756d20617420666575676961742064696374756d002e204d616563656e61732076656c2075726e6120736564206d657475732075006c74726963696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6100757269732c2073757363697069742065676574206172637520696e2c207275007472756d2072757472756d206d617373612e204d616563656e61732061632000696d7065726469657420656c69742c207365642073757363697069742069700073756d2e2050726f696e206d6f6c6573746965206d6173736120617263752c00206120636f6e64696d656e74756d206f64696f20756c747269636573207369007420616d65742e205072616573656e742072686f6e637573206578207075720075732c2073656420706c616365726174206e756e63206f726e617265206574002e2050686173656c6c75732061206e696268206d616c6573756164612c2075006c6c616d636f72706572206e69736c2061742c2070656c6c656e74657371750065206c6f72656d2e2050686173656c6c7573206c6f72656d20697073756d2c0020756c6c616d636f727065722075742076756c70757461746520616c6971750065742c207661726975732065676574206c6f72656d2e0a0a4d6175726973200068656e6472657269742074696e636964756e74207175616d20616320696e7400657264756d2e20496e206120697073756d206e6f6e207175616d206d617869006d75732066696e696275732e20536564206f64696f2065782c206c6163696e00696120766974616520697073756d2073616769747469732c20766568696375006c6120656765737461732072697375732e204e756c6c616d20616320656c65006966656e6420646f6c6f722c20657520706f72747469746f722074656c6c7500732e204d616563656e617320746f72746f722076656c69742c20636f6e6469006d656e74756d20696420656e696d2076656c2c20657569736d6f64206f726e006172652072697375732e20416c697175616d206964206c6f72656d20696e7400657264756d2c20616c697175616d20707572757320696e2c20706861726574007261206a7573746f2e205574207669746165206c656f206469616d2e204e75006c6c6120656c656d656e74756d206e756e63206d657475732c206e65632076006172697573206f64696f2066696e69627573206e65632e20457469616d207100756973206e69736c20696e74657264756d2c20766f6c757470617420646f6c006f722065742c2072686f6e637573206e6962682e204d616563656e6173206e006f6e2072757472756d2061756775652c20657520656c656966656e64206d69002e20446f6e6563206c6f626f7274697320616e7465207669746165206175670075652070686172657472612c206174206c6163696e696120746f72746f7220007072657469756d2e0a0a4d616563656e61732061742074656d706f72206d6100676e612c20696e20737573636970697420656e696d2e204e756c6c6120656c00656d656e74756d2072757472756d2065782c206567657420736f64616c657300206e756c6c6120636f6e76616c6c69732076697461652e20566976616d757300206469676e697373696d2c2065726f7320657520656c656d656e74756d2073006f6c6c696369747564696e2c206c6f72656d20647569206c7563747573207300617069656e2c206163206d617474697320646f6c6f7220656e696d2073757300636970697420656c69742e204e756c6c61206567657420696d7065726469650074206d657475732e2043757261626974757220636f6e64696d656e74756d200061207075727573207363656c6572697371756520756c7472696365732e2041006c697175616d206c696265726f206d692c20766573746962756c756d206574002074656d706f722065752c2070686172657472612073697420616d65742065006c69742e20557420696420616c697175616d206c696265726f2e0a0a5365640020636f6e7365637465747572206c65637475732066696e69627573206c656300747573206f726e61726520706f7274612e20447569732073656420636f6e670075652073617069656e2c20757420696d7065726469657420656e696d2e205300656420656c656d656e74756d20696163756c6973206c6967756c612c206e6f006e2076656e656e617469732073617069656e206c75637475732069642e2053006564206566666963697475722c20616e7465207669746165206d6f6c657374006965206566666963697475722c20656c697420697073756d20636f6e64696d00656e74756d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f0064696f207669746165206c616375732e2053757370656e64697373652065670065737461732073656d206f64696f2c20696e20766573746962756c756d206e0069736c20706f72747469746f722076656c2e20496e2074696e636964756e74002c206d657475732061206c6f626f7274697320756c7472696365732c2069700073756d206d6574757320766573746962756c756d206e756c6c612c2061742000696d7065726469657420746f72746f72206e6571756520736564206d692e20004d617572697320617420616e746520616e74652e20566573746962756c756d0020637572737573207665686963756c6120756c7472696365732e204d6f72620069206c7563747573206120657374206e656320696d706572646965742e20550074206e6f6e2075726e61206672696e67696c6c612c2065676573746173206d00657475732065752c2064696374756d20656c69742e20496e2064696374756d00207075727573206964206c656374757320616c69717565742074656d706f72002e20416c697175616d206572617420766f6c75747061742e204e616d206175006775652066656c69732c20696d70657264696574206174206d61676e61206e0065632c2070656c6c656e746573717565207661726975732074656c6c75732e000a0a4d616563656e617320656765742065782070656c6c656e746573717565002c20656c656d656e74756d206469616d2061742c20656c656966656e642064006f6c6f722e204e756c6c616d20626962656e64756d2065726f73206e65632000646f6c6f7220646170696275732c206174207361676974746973206573742000636f6e64696d656e74756d2e205072616573656e74206e6f6e2068656e647200657269742065726f732e204d616563656e617320636f6e736571756174206d006173736120766974616520647569207665686963756c612c20757420756c740072696365732072697375732073656d7065722e2053757370656e646973736500206461706962757320616e746520646f6c6f722c206120626962656e64756d002076656c69742074726973746971756520696e2e204d616563656e6173206e00656320696163756c697320656e696d2e20566573746962756c756d2073656400206f64696f2064696374756d2c20766573746962756c756d206f64696f2065006765742c20656c656966656e64206d657475732e204d617572697320616320006c696265726f20736564206c656f2070756c76696e617220636f6e76616c6c0069732e2044756973207665686963756c61206f72636920656c69742e2056650073746962756c756d206566666963697475722065676573746173206578206100206f726e6172652e2051756973717565206f726e617265206e6962682063750072737573206d6f6c65737469652070656c6c656e7465737175652e0a0a446f006e65632074696e636964756e7420666575676961742073757363697069742e0020566573746962756c756d20756c6c616d636f7270657220646f6c6f72206e006f6e206c6967756c6120766573746962756c756d2c20612070756c76696e610072206e756e6320636f6e7365717561742e20416c697175616d2070756c7669006e6172207661726975732074656c6c757320657520617563746f722e204d6100757269732076697665727261207665686963756c612065782c2076697461650020616c697175616d20617263752064696374756d2069642e205175697371750065207068617265747261207669746165206d61676e6120696e206f726e617200652e20566573746962756c756d207072657469756d207363656c6572697371007565206f64696f20696420636f6e73656374657475722e204e756c6c61207300656420656e696d207574207175616d20636f6e736563746574757220747269007374697175652e0a0a4e756c6c616d206f64696f206d61757269732c20666500756769617420657520666575676961742075742c20706f737565726520766900746165206d61676e612e205365642076697461652073656d70657220747572007069732c2073697420616d6574207363656c65726973717565206e756c6c61002e20517569737175652074656d707573206e6f6e206d692073656420706f7200747469746f722e2050726f696e206c656f2065782c20706f73756572652065007520656765737461732076656c2c206d6f6c657374696520736564206d65740075732e204e616d20747269737469717565206c616375732065742069707375006d206d6178696d757320756c747269636965732e204e756c6c616d20706f7300756572652073697420616d65742073617069656e206d6f6c65737469652075006c6c616d636f727065722e204d6f72626920656765737461732c20657261740020616320626c616e6469742064696374756d2c2073617069656e206e69736c002066696e69627573206e6973692c2073656420656666696369747572206c6500637475732073656d20657520697073756d2e2050686173656c6c7573206c65006f2061756775652c2076756c70757461746520706c616365726174206175670075652065752c2074656d706f722074696e636964756e74206c6f72656d2e200046757363652073697420616d65742073656d70657220746f72746f722e0a0a0053757370656e646973736520706f74656e74692e204d616563656e6173206900642064617069627573207475727069732c206e6f6e2076756c707574617465002065782e204e756c6c616d2072757472756d206c6967756c61206e65632072006973757320737573636970697420766f6c75747061742e20416c697175616d00206c7563747573206e657175652073697420616d65742061726375207472690073746971756520766f6c75747061742e205365642076697461652066656c690073206c6f72656d2e20416c697175616d20706c61636572617420656c656d65006e74756d2073617069656e2c2076697461652076756c7075746174652072690073757320766f6c757470617420696e2e204d616563656e6173207669746165002064756920657261742e2050686173656c6c7573206672696e67696c6c61200073617069656e2073656420647569207665686963756c612c207661726975730020636f6e736563746574757220616e746520736f6c6c696369747564696e2e00204372617320696163756c69732c2073617069656e20696e74657264756d2000696d70657264696574206566666963697475722c20647569206d6175726973002070756c76696e617220697073756d2c2061742076656e656e61746973206e0069736c206f64696f2071756973207175616d2e204e756e63206566666963690074757220636f6e73656374657475722073656d7065722e204e756c6c616d2000706f7375657265206e756c6c612072686f6e6375732070756c76696e61722000756c747269636965732e204e756e632074656c6c757320617263752c206865006e64726572697420736f6c6c696369747564696e206469616d207669746165002c2068656e6472657269742066696e696275732065782e0a0a536564206c6f00626f72746973206d6174746973206c6967756c612c20766974616520636f6e0076616c6c6973206c656f2064617069627573206e6f6e2e204d616563656e610073207669746165206c61637573206575206e69736c20617563746f7220656c00656d656e74756d206e6563207669746165206c65637475732e204d61656365006e6173207669746165206f726369207669746165206d6920756c6c616d636f007270657220706f72747469746f72206964206c6f626f72746973206e69736c002e20446f6e6563206964206d617572697320697073756d2e20416c69717561006d206572617420766f6c75747061742e20566976616d7573206c6f626f7274006973206e696268207574206573742076756c7075746174652066657567696100742e20496e7465676572206c696265726f207175616d2c20756c74726963650073206174206f7263692061742c20636f6e677565206665726d656e74756d20006d617373612e20457469616d2069642065726f7320696163756c69732c2063006f6e64696d656e74756d206f7263692074696e636964756e742c206d617474006973206d657475732e204d616563656e617320756c747269636573207369740020616d657420646f6c6f722069642070656c6c656e7465737175652e2056650073746962756c756d20706f727461206d6178696d7573206e69736c2c20696e002066696e6962757320746f72746f7220766f6c75747061742075742e2055740020677261766964612c20646f6c6f7220756c7472696365732068656e6472650072697420666575676961742c20656e696d2073656d20696e74657264756d20006c6967756c612c20616320656666696369747572206572617420656c697420006964206c6f72656d2e20496e2073697420616d657420756c6c616d636f7270006572206c6f72656d2e0a0a50686173656c6c7573206c6967756c612075726e00612c20636f6e736571756174206574206c756374757320612c206f726e617200652065742061756775652e20566573746962756c756d20657420616e746520006174206c6163757320626962656e64756d20696d706572646965742e2045740069616d2074757270697320617263752c2063757273757320766974616520760069766572726120612c2068656e64726572697420766974616520617263752e002050726f696e206f726e617265206d6175726973207574206d61676e61206d006f6c6573746965206d61747469732e20446f6e65632074656d706f72206c6500637475732071756973206d617373612076756c70757461746520696e7465720064756d2e2050726f696e206575206c6967756c61206469616d2e204d61656300656e6173206461706962757320747572706973206c65637475732c2075742000666163696c6973697320656c6974206469676e697373696d2075742e204e75006e6320626c616e646974206f726369206120616e746520666163696c69736900732c20617420636f6e76616c6c69732066656c697320666163696c69736973002e20437572616269747572207375736369706974206d692061206c69626572006f20706f73756572652c2071756973206f726e617265206a7573746f2076690076657272612e2050656c6c656e746573717565206861626974616e74206d6f00726269207472697374697175652073656e6563747573206574206e6574757300206574206d616c6573756164612066616d6573206163207475727069732065006765737461732e204e756c6c612070756c76696e6172207363656c6572697300717565206d61676e612c2065676574206c6f626f72746973206e6962682063006f6d6d6f646f2061742e20447569732065676574207661726975732066656c0069732c20636f6e64696d656e74756d20706c616365726174206c6563747573002e20416c697175616d20617563746f722074656d706f722075726e61206575002070756c76696e61722e204d6f726269206375727375732074656d706f7220006e657175652c206e6f6e20626c616e64697420646f6c6f7220666163696c690073697320656765742e2053656420736564206c6f626f727469732073656d2e000a0a4d617572697320756c7472696369657320656c69742075726e612c207600656c20616c697175657420707572757320617563746f722076697461652e20005072616573656e742076697665727261206f64696f2074656c6c75732c20710075697320706f7375657265206e756c6c6120616c69717565742061742e204c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e20437572616269007475722065676574206d65747573206174206c6967756c6120656c65696665006e6420706861726574726120696e206d616c657375616461206475692e20440075697320636f6e7365637465747572206469616d2075742066657567696174002072757472756d2e20566976616d757320657569736d6f64206e69736c207600656c206d6178696d75732073616769747469732e20496e20636f6d6d6f646f002073697420616d6574206c6f72656d2065742074696e636964756e742e205500742070656c6c656e746573717565206e756c6c61206e6f6e206d61757269730020636f6e64696d656e74756d2c2069642076756c707574617465206f64696f0020626c616e6469742e2053757370656e6469737365206e6f6e20707265746900756d206d61757269732c206e65632074696e636964756e742073617069656e002e0a0a4675736365206461706962757320657569736d6f6420747572706973002c20757420656c656d656e74756d20656e696d20657569736d6f64206e6f6e002e204e616d2061206e6962682074656c6c75732e2050656c6c656e7465737100756520696163756c697320746f72746f722073656420706f72747469746f720020636f6e64696d656e74756d2e204375726162697475722066617563696275007320747572706973206d6178696d75732c2076656e656e6174697320616e740065207365642c206d6f6c6c69732072697375732e205365642074656d70757300206d61676e612065676574206e756e6320706f72747469746f722c206174200072757472756d207175616d20636f6d6d6f646f2e20496e746567657220626c00616e646974207661726975732074656c6c75732073697420616d6574207275007472756d2e2050726f696e206d6f6c6c697320747269737469717565206e6500717565207365642074656d7075732e204475697320706c6163657261742c20006f7263692069642064696374756d20766573746962756c756d2c206c696775006c6120646f6c6f7220766f6c7574706174206c656f2c2076697461652066610075636962757320656e696d206e756c6c6120717569732065782e20437261730020666175636962757320657374206573742c2073697420616d65742061636300756d73616e206c6163757320696d706572646965742069642e204e616d206d0061747469732c206e756e6320736564206469676e697373696d20706c616365007261742c206d617373612075726e6120696163756c69732076656c69742c200071756973206c7563747573206469616d206a7573746f206575206e6973692e0020416c697175616d206572617420766f6c75747061742e0a0a50656c6c656e00746573717565206e6571756520617263752c20636f6e677565206e6f6e2061007567756520717569732c2074726973746971756520696e74657264756d206e00756e632e2050726f696e20646f6c6f7220746f72746f722c206461706962750073207365642070656c6c656e74657371756520612c2072757472756d206567006574206e6973692e20437261732065742074656d7075732074656c6c75732e00204e756c6c6120706f72747469746f722c206e69736920657520617563746f0072207661726975732c206572617420746f72746f722072757472756d20747500727069732c206e6f6e2068656e64726572697420616e7465206e6571756520007574206573742e20416c697175616d2076756c7075746174652076656c69740020766974616520657569736d6f6420656765737461732e20496e7465676572002072757472756d206d6f6c6c697320617263752c20757420756c7472696369006573206a7573746f206d6f6c6c697320656765742e20457469616d206174200066696e6962757320656e696d2c206574206d6174746973206d61757269732e00204d616563656e617320696e20616c69717565742061756775652e204e616d0020756c74726963657320656c656d656e74756d20617263752076656c20616c00697175616d2e20566573746962756c756d20696e206c6967756c6120747269007374697175652c206661756369627573206f64696f20656765742c206c6f62006f72746973206a7573746f2e204d6f726269206575206e756e63207369742000616d657420726973757320636f6e73657175617420616c697175657420736500642061632065782e20496e2068656e64726572697420756c7472696369657300206c6967756c612c2071756973207375736369706974206c6563747573206400696374756d2065752e20536564206c616f7265657420636f6e67756520756c007472696365732e2050686173656c6c7573207375736369706974206d6173730061206120666163696c6973697320696d706572646965742e0a0a44756973200074696e636964756e742065726f732071756973206772617669646120766172006975732e2053757370656e6469737365206e6f6e206475692070757275732e0020496e74657264756d206574206d616c6573756164612066616d65732061630020616e746520697073756d207072696d697320696e2066617563696275732e0020446f6e65632061742070756c76696e61722066656c69732e20446f6e656300206e656320616c697175616d2065726f732c2064696374756d20626962656e0064756d20617263752e20496e206e656320646f6c6f722066696e696275732c00207072657469756d206c6967756c612065742c20636f6e736571756174206500782e20496e206861632068616269746173736520706c61746561206469637400756d73742e20457469616d2074656c6c757320656e696d2c20696e7465726400756d2073656d70657220697073756d20736f64616c65732c206772617669640061206672696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e690061206a7573746f20736f6c6c696369747564696e206c616f72656574206d6f006c65737469652e20457469616d20616320766573746962756c756d20717561006d2c20696420657569736d6f6420697073756d2e205574206174206772617600696461206c6f72656d2e2053757370656e646973736520696e74657264756d0020656c656966656e64206c65637475732c2065752073656d7065722070757200757320766f6c757470617420612e0a0a55742076656c20617567756520756c007472696365732c2074696e636964756e74206d6173736120612c20736167690074746973206e69736c2e2050726f696e206567657420616e746520616c69710075616d2c206f726e6172652061756775652070656c6c656e7465737175652c0020646170696275732070757275732e20496e206574206d657475732061726300752e2050656c6c656e74657371756520616c697175616d20626c616e6469740020617263752071756973207472697374697175652e204d617572697320746f0072746f72206d617373612c206d6178696d75732071756973207661726975730020612c20706f72747469746f7220636f6e73656374657475722073656d2e200050726f696e207665686963756c6120707572757320657420696163756c69730020636f6e73656374657475722e20557420736f6c6c696369747564696e206600696e6962757320657820696e20656c656d656e74756d2e204f7263692076610072697573206e61746f7175652070656e617469627573206574206d61676e690073206469732070617274757269656e74206d6f6e7465732c206e6173636574007572207269646963756c7573206d75732e205072616573656e74206e65632000696d70657264696574206d61676e612e205574206d616c65737561646120690064207075727573206e656320766573746962756c756d2e2053757370656e64006973736520616363756d73616e2065726174206c656f2c20696e20666175630069627573206469616d20696163756c69732073697420616d65742e20447569007320736f6c6c696369747564696e206c6563747573207175697320656e696d00206c6163696e696120657569736d6f642076656c2075742061756775652e0a000a416c697175616d20756c7472696369657320636f6e76616c6c6973207465006c6c75732c206964206567657374617320656c69742073616769747469732000696e2e204372617320706f72747469746f72206e6973692065676574207361007069656e20636f6e76616c6c697320706f73756572652e204d6175726973200067726176696461206e65717565207669746165206c696265726f20637572730075732c20696420636f6e736571756174206e657175652072686f6e6375732e0020496e746567657220616c69717565742065676574206e696268206163207000686172657472612e204e756c6c616d20696163756c6973206e69736c206665006c69732c207175697320696d70657264696574206e756c6c6120756c74726900636573207365642e205175697371756520747269737469717565206c61637500732061742072686f6e63757320706f7274612e204e616d20616320636f6e6400696d656e74756d2075726e612e20536564206e656320706f72747469746f7200206e6962682e205365642067726176696461206d61676e612069642070757200757320706f737565726520766573746962756c756d206e6f6e20736564206e006973692e20566573746962756c756d2061726375207475727069732c2069610063756c69732076656c20636f6e7365717561742069642c206c6f626f72746900732073697420616d65742065782e205072616573656e742071756973207465006d706f722061756775652e204e756c6c61206567657420656e696d20656c65006966656e642c2074696e636964756e74206c696265726f2073697420616d6500742c206d6174746973206e6973692e20446f6e65632064756920657261742c002070756c76696e61722076656c207075727573206e65632c20666163696c69007369732066696e69627573206c6f72656d2e204e756c6c616d20756c7472690063657320707572757320766573746962756c756d20636f6d6d6f646f20616c00697175616d2e0a0a4f72636920766172697573206e61746f7175652070656e00617469627573206574206d61676e6973206469732070617274757269656e7400206d6f6e7465732c206e61736365747572207269646963756c7573206d7573002e204e756e6320626c616e646974206e756c6c612072697375732c2076656c0020736f64616c6573206c6f72656d206f726e6172652061632e20496e746567006572206e6f6e20646f6c6f7220626962656e64756d2c206f726e6172652074006f72746f7220656765742c20756c7472696369657320697073756d2e204165006e65616e2066696e69627573206469676e697373696d206f726e6172652e20004d61757269732074656d7075732c206572617420617420626962656e64756d0020617563746f722c206c656f20656c6974206c6163696e6961206f64696f2c002061742074656d7075732061726375206475692071756973206573742e20500072616573656e74206672696e67696c6c61206c6f72656d206d616c6573756100646120706f72747469746f7220696d706572646965742e20496e7465726475006d206574206d616c6573756164612066616d657320616320616e74652069700073756d207072696d697320696e2066617563696275732e204d6f7262692076006974616520666163696c69736973206c6f72656d2c20766974616520636f6e0073657175617420697073756d2e20457469616d20696420656c656d656e7475006d20657261742e204e616d20646f6c6f72206c656f2c2074656d706f722061006320657820717569732c206469676e697373696d206665726d656e74756d2000616e74652e0a0a446f6e65632061206e756c6c612072697375732e204d6175007269732066617563696275732c206e756e63206163206d6178696d7573207600656e656e617469732c206d61676e612076656c6974207072657469756d2061006e74652c206e6f6e206665726d656e74756d20656c6974206d617572697320006e6f6e206e756e632e20446f6e65632068656e6472657269742075726e61200061742074656c6c757320636f6e76616c6c69732c2061632066617563696275007320656c6974206c6f626f727469732e204e756c6c616d20626962656e6475006d20656c656966656e64206d61676e612073697420616d657420696e7465720064756d2e20496e20696e20736f64616c657320746f72746f722c206e6f6e20006c6f626f72746973206d692e205072616573656e742076656c2073656d206100206f64696f2076656e656e6174697320666163696c697369732e2056657374006962756c756d206163206d6f6c657374696520646f6c6f722c206174206669006e69627573206e6973692e0a0a566573746962756c756d20616e74652069700073756d207072696d697320696e206661756369627573206f726369206c75630074757320657420756c74726963657320706f737565726520637562696c6961002063757261653b2046757363652061632074656d70757320617263752c2076006974616520696163756c6973206e657175652e2055742061206e69736c207500742076656c697420636f6e73657175617420636f6e64696d656e74756d207600697461652065676574206e6962682e2044756973206574206d61676e612061006c69717565742c20636f6e76616c6c697320656c69742069642c20756c6c61006d636f72706572206d692e20566976616d757320696d70657264696574206600656c6973207175697320636f6e7365717561742072757472756d2e204d6f7200626920757420617263752073697420616d657420617567756520636f6e677500652074696e636964756e742e2053757370656e64697373652061206d617474006973206f7263692e204e756e6320656765737461732c2076656c69742073650064206469676e697373696d2073656d7065722c20656c6974206d61757269730020626962656e64756d206e657175652c206567657420616c697175616d206e00697369206e65717565206120616e74652e204e616d2066657567696174206e006571756520646f6c6f722e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20557420696e20636f6e736563746574757220646f6c6f722e002051756973717565206e6f6e20636f6e677565206e657175652e0a0a4e756c006c61207363656c657269737175652c206e65717565206567657420636f6e7600616c6c697320626962656e64756d2c206c6f72656d206d65747573207068610072657472612070757275732c2073656420626c616e6469742065726174206100726375206575206e6973692e204d617572697320706c616365726174206d6100737361206575206e6571756520766f6c75747061742c2073697420616d6574002076697665727261207269737573207363656c657269737175652e20496e200076656c20766573746962756c756d206e756c6c612e20416c697175616d207200686f6e6375732061632061756775652076656c2076756c7075746174652e20004d6175726973207669746165206469616d20696d706572646965742c20766f006c7574706174206e6962682065752c206661756369627573206d657475732e0020457469616d2070656c6c656e74657371756520747572706973206964206e0069626820636f6e73657175617420736f6c6c696369747564696e2e204e756e00632065676574206a7573746f2070756c76696e6172206d65747573207275740072756d206c75637475732073697420616d65742061206d657475732e204e75006c6c6120666163696c6973692e2053757370656e646973736520657520617500677565206c65637475732e2053757370656e646973736520736f6c6c69636900747564696e20657569736d6f64207661726975732e2050686173656c6c75730020616e746520657261742c20666175636962757320696420746f72746f7220006e65632c207363656c6572697371756520766172697573206e756e632e0a0a00457469616d206672696e67696c6c6120766f6c7574706174206d692c20706f00737565726520766573746962756c756d206c6967756c6120756c7472696365007320696e2e20446f6e6563207665686963756c612074757270697320717569007320756c74726963696573207661726975732e20446f6e65632073656d7065007220616e746520657261742c20616320666575676961742074656c6c75732000626962656e64756d2069642e20446f6e656320697073756d206e69736c2c200070756c76696e6172206e6563207175616d20696e2c20736f6c6c69636974750064696e20696e74657264756d20656e696d2e20566976616d7573206c616f72006565742074656c6c75732065676574206f72636920636f6e64696d656e7475006d207363656c657269737175652e2050726f696e20657420666175636962750073206f64696f2c206163206566666963697475722061756775652e2055742000696e74657264756d20747269737469717565206475692074656d7075732070006f7274612e20416c697175616d206672696e67696c6c6120707572757320760069746165206e6962682074656d706f7220626962656e64756d2e205175697300717565206574207361676974746973206f7263692c2061742074656d706f72002076656c69742e205365642066696e696275732073617069656e20657420740075727069732073656d7065722c206e6f6e206d6f6c6573746965206e756e6300206c75637475732e20536564206a7573746f206e6973692c20736f6c6c69630069747564696e20696e20697073756d20696e2c206665726d656e74756d20700072657469756d206f64696f2e204e756c6c6120757420766f6c7574706174200073656d2e0a0a436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e204e756c6c61206e6f6e206f726369206d692e2056657374696275006c756d207361676974746973206f72636920657520636f6e64696d656e7475006d20636f6e6775652e20446f6e656320736564206d61676e612070656c6c65006e7465737175652c20706c61636572617420697073756d207365642c20616c00697175616d2073656d2e2043757261626974757220696d706572646965742000617567756520657420656c697420706c6163657261742c2061742070756c7600696e617220617263752066617563696275732e20566573746962756c756d2000666575676961742c20697073756d20617420756c747269636573206d6f6c6500737469652c206e65717565206f64696f20656c656966656e642076656c6974002c2061742065676573746173206f72636920647569206574206573742e2049006e7465676572207574206a7573746f206c65637475732e204e756c6c616d20006665756769617420696e74657264756d206f726369206e656320617563746f00722e0a0a446f6e656320616c697175657420616363756d73616e206d61737300612c20766974616520666163696c697369732072697375732e20467573636500207072657469756d206e756e63206e6f6e20636f6e73657175617420656c65006d656e74756d2e204d616563656e617320636f6e64696d656e74756d20736300656c6572697371756520706f72747469746f722e204f7263692076617269750073206e61746f7175652070656e617469627573206574206d61676e697320640069732070617274757269656e74206d6f6e7465732c206e6173636574757220007269646963756c7573206d75732e204d6175726973206e6563207075727573002066617563696275732c2074656d707573206469616d206e65632c20756c74007269636573206f7263692e2041656e65616e2066617563696275732c207361007069656e20757420706f72747469746f7220616c69717565742c206e756e6300206572617420636f6e6775652061756775652c2071756973206469676e69730073696d2073656d20697073756d206574206469616d2e2053757370656e646900737365206772617669646120657569736d6f6420697073756d2c206120696d0070657264696574206e756c6c6120636f6e7365717561742061632e2050726f00696e207175697320636f6e73657175617420697073756d2c20696e20737573006369706974206e657175652e204e616d207669746165207669766572726120006c656f2e2041656e65616e20756c74726963657320706c6163657261742062006c616e6469742e20496e7465676572206e6571756520617263752c2066616300696c697369732073697420616d6574206f726369207365642c2076657374690062756c756d206672696e67696c6c6120746f72746f722e2050656c6c656e740065737175652066657567696174206575206c6967756c612065676574206c6f00626f727469732e20536564206575206d6f6c6c69732065782c20696e206461007069627573206c616375732e20467573636520616c697175616d2c206e657100756520636f6e73657175617420666163696c6973697320706c616365726174002c20697073756d206f72636920696163756c6973206a7573746f2c20696d700065726469657420706f7375657265206d61676e61206f64696f206e6563207500726e612e20437572616269747572206d6f6c6c69732c20657820696e2066610063696c6973697320766f6c75747061742c206e697369206a7573746f20656c00656966656e64206c696265726f2c20612070656c6c656e7465737175652065006e696d206d61676e612071756973206e6962682e204d617572697320756c7400726963696573206469616d2065676574206c616375732070756c76696e6172002c20657420636f6e64696d656e74756d206e6962682073656d7065722e0a0a00566976616d757320746f72746f72207175616d2c20616c697175657420696e00206e756e632075742c206f726e61726520756c74726963696573206e65717500652e2050656c6c656e74657371756520637572737573206163206a7573746f0020766974616520756c747269636965732e20446f6e65632065676574206e6900736c2071756973206f726369206772617669646120766f6c75747061742065007420696420656e696d2e2053656420706f72747469746f72206c616375732000717569732073656d20756c74726963657320666163696c6973697320757420006567657420656e696d2e20416c697175616d20696163756c6973206572617400206e6563206d617373612072686f6e6375732068656e6472657269742e2041006c697175616d206f726e6172652070686172657472612075726e612065752000617563746f722e20566976616d7573206964206469616d206120617567756500206567657374617320636f6e6775652e205072616573656e742068656e647200657269742073617069656e20696e206f72636920636f6e6775652c20656765007420636f6e6775652073617069656e20696d706572646965742e205365642000617563746f7220657374206163206c7563747573206c6163696e69612e2049006e7465676572206e65717565206e657175652c20656c656966656e64207665006c206c656f2069642c20626962656e64756d20756c6c616d636f72706572200073656d2e20566573746962756c756d2076656c20666163696c6973697320650073742e20536564207175697320766f6c7574706174207475727069732e0a0a004e616d206d6174746973206d6f6c6573746965206d61676e612c2076697461006520636f6e736571756174206d657475732e204e616d206d6178696d75732000657569736d6f6420656c6974206e6563206f726e6172652e204e756c6c6120006d6f6c6c697320696420707572757320717569732074656d706f722e205065006c6c656e7465737175652072686f6e63757320656765737461732066657567006961742e204475697320756c74726963657320656c6974207574206c6f7265006d2070756c76696e617220736f6c6c696369747564696e2e2043757261626900747572206672696e67696c6c612076756c7075746174652076656e656e61740069732e204d61757269732074656d706f7220617563746f722075726e612e0a000a496e206861632068616269746173736520706c617465612064696374756d0073742e204d616563656e617320617563746f72206d61747469732062696265006e64756d2e20566573746962756c756d2074656d7075732072686f6e63757300206c65637475732c2069642072686f6e637573206e69736c206d6178696d7500732061742e204475697320766172697573206672696e67696c6c6120617567007565206e656320666163696c697369732e204e756c6c6120696163756c69730020612070757275732065676574206665726d656e74756d2e20457469616d20006e6563207361676974746973206f7263692e205072616573656e74206d6174007469732066656c69732072697375732e204e616d206567657420656c656d65006e74756d206c6967756c612e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e2050686173656c6c75732065676573746173207000757275732070656c6c656e7465737175652c2070656c6c656e746573717565002076656c6974206e6f6e2c206772617669646120656c69742e0a0a53656420006e6f6e2074656d7075732070757275732e2053757370656e6469737365207000756c76696e6172206d65747573206e657175652c206e6f6e207472697374690071756520697073756d20706f727461206e6f6e2e205574206567657420747500727069732074696e636964756e742c2074656d706f722073656d2071756973002c2076656e656e61746973206d61676e612e20566573746962756c756d20690064206d6178696d75732072697375732e204475697320616c69717565742070006f73756572652066656c697320696e20706c6163657261742e2051756973710075652076656c6974206f64696f2c20656666696369747572206174206d617300736120612c20747269737469717565206f726e61726520646f6c6f722e204e00756c6c616d206567657374617320706c61636572617420647569207574207300656d7065722e20416c697175616d20717569732073617069656e206d65747500732e204475697320656c656d656e74756d2c2065726174206e656320626c61006e6469742072686f6e6375732c2065726f7320656e696d207363656c65726900737175652061756775652c206e656320766976657272612065726f73206c65006f206575206c656f2e204d6f7262692073656420666163696c69736973206a007573746f2e20566976616d75732073697420616d6574206d61676e61206865006e647265726974206c656f206772617669646120617563746f722e0a0a4e75006e632063757273757320616c6971756574206f64696f2e204e756e632069610063756c69732065742074757270697320617420756c747269636965732e204e00616d2076756c70757461746520656e696d2065676574207075727573207465006d707573206f726e6172652e204e756c6c616d20636f6e736571756174206d006f6c6573746965206469616d2c20766974616520756c747269636573206e6900626820706f72747469746f722065742e20566573746962756c756d20766f6c007574706174207574206c6f72656d20656765742070656c6c656e746573717500652e204e616d2064617069627573206c696265726f206d692e2050656c6c65006e7465737175652074696e636964756e74206e696268206e657175652c20610020696e74657264756d206c6f72656d20636f6e6775652076656e656e61746900732e2050686173656c6c757320696e2073656d206574206d617373612066610075636962757320616363756d73616e2074696e636964756e742076656c206e006962682e0a0a4e756c6c61206d616c657375616461206e69736c206e69736c002c206575206d6f6c657374696520697073756d206d6f6c6c69732065676574002e20416c697175616d2076756c70757461746520707572757320736564206c006967756c6120736167697474697320616c69717565742e20496e20616c69710075616d206469616d20677261766964612072757472756d2070756c76696e6100722e20496e206d616c6573756164612075726e612065676574206f726e6172006520656765737461732e20566573746962756c756d20766974616520736365006c65726973717565206573742c206567657420766573746962756c756d206f007263692e2050656c6c656e746573717565206672696e67696c6c61206d616c0065737561646120706f73756572652e204e756c6c6120696e74657264756d20006c656f207669746165207072657469756d20706f73756572652e204e616d20006d6f6c6c69732065726f73207365642074656c6c7573206d6174746973207300616769747469732e0a0a53757370656e646973736520636f6e64696d656e7400756d206c6563747573206574206c6f72656d20657569736d6f6420637572730075732e204d6175726973206172637520617263752c2072757472756d20636f006e73657175617420707572757320696e2c206567657374617320696163756c006973206c696265726f2e204d6f726269207068617265747261206d6178696d007573206d617373612c206567657420626c616e64697420747572706973207000756c76696e61722065742e204d6175726973206e656320646f6c6f72207665006e656e617469732c2070656c6c656e746573717565206d61676e612069642c0020617563746f722075726e612e204d616563656e617320766976657272612000706f72747469746f72206e6973692c2076656c20756c74726963696573206500726174206375727375732061742e20467573636520636f6e6775652074656c006c75732076697461652073617069656e20747269737469717565206665726d00656e74756d2e20446f6e656320696d706572646965742073656d206e6f6e20006d617572697320756c7472696365732076656e656e617469732e20437261730020756c747269636573206c6f72656d206c656f2e2053656420736564207665006e656e61746973206e657175652c2076697461652065676573746173206665006c69732e205072616573656e7420617420616e746520706f7274612c20636f006e64696d656e74756d206c65637475732076697461652c20706f7274746974006f72206e657175652e204e616d2074656c6c7573206c616375732c20747269007374697175652074656d706f72206e756c6c61206e65632c20706c6163657200617420626962656e64756d2061756775652e204e756c6c616d20657569736d006f642076697665727261206f7263692c206575206772617669646120656e69006d20636f6e64696d656e74756d20626962656e64756d2e2053757370656e6400697373652065676574206c6f72656d20766974616520697073756d20706c610063657261742070656c6c656e74657371756520696420636f6d6d6f646f206f0064696f2e204675736365206d61747469732075726e61207574206475692063006f6d6d6f646f2c206e656320636f6d6d6f646f20647569207068617265747200612e0a0a496e206861632068616269746173736520706c61746561206469630074756d73742e204e616d206a7573746f206e6962682c207665686963756c61002061206c6967756c612065752c206d617474697320656c656966656e64206c006967756c612e205175697371756520656765742074757270697320612061750067756520747269737469717565206665726d656e74756d2e204e756c6c616d00207669746165206c61637573206d6f6c65737469652c207363656c65726973007175652061756775652061742c20656c656966656e64206e69736c2e204e75006c6c61206d61676e612065726f732c20636f6e76616c6c697320736564206f0064696f207363656c657269737175652c206c6f626f7274697320636f6e7661006c6c6973206e6962682e204e616d206174207361676974746973206175677500652c20657520766172697573206c6967756c612e204e756c6c616d20706f730075657265206d6178696d7573206e697369206e656320616c69717565742e2000457469616d207363656c657269737175652071756973206469616d20656765007420656765737461732e205072616573656e7420756c7472696369657320730063656c65726973717565206d69206e656320626962656e64756d2e2056657300746962756c756d20616c697175616d2074656c6c75732076656c206a757374006f206c616f726565742c207574207072657469756d2073656d206f726e617200652e204e616d20616e7465206e6962682c2066696e69627573206e6563207300617069656e20612c2076656e656e6174697320636f6e677565207269737573002e20496e2076656c206e65717565206120656e696d20636f6e7365637465740075722070656c6c656e7465737175652e20566976616d757320636f6e76616c006c697320657374207574206e756c6c6120736167697474697320706f7375650072652e2050656c6c656e74657371756520626962656e64756d20736f64616c00657320697073756d2065742068656e6472657269742e0a0a536564207269730075732066656c69732c20736f6c6c696369747564696e206575206d6f6c6573007469652065742c20657569736d6f6420656765742065782e20457469616d200065676574206e756c6c61206e6962682e2043726173206772617669646120610020746f72746f722076697665727261207661726975732e2050686173656c6c0075732066696e696275732c2073617069656e20657420616c697175616d2075006c7472696365732c206d61757269732065726f7320706f72747469746f72200065726f732c20616320636f6e677565206c656f206573742065676574206d6100757269732e20536564206e756e632076656c69742c2065676573746173207300656420656c69742065752c20657569736d6f64206d6178696d7573207361700069656e2e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b2000566573746962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071007569732076756c7075746174652061742c20736f6c6c696369747564696e200073697420616d6574206573742e205365642070756c76696e61722c2076656c00697420736564206469676e697373696d20766976657272612c206d617373610020646f6c6f722073656d706572206c6f72656d2c206e6f6e206d6f6c657374006965206d6175726973206f64696f2065742070757275732e204d616563656e006173206c6f626f7274697320696e74657264756d206e756e63207574206d6f006c65737469652e20536564206d6f6c6c697320636f6d6d6f646f2076656e65006e617469732e20496e74657264756d206574206d616c657375616461206661006d657320616320616e746520697073756d207072696d697320696e206661750063696275732e2055742073656420617263752076656c69742e204d617572690073206175677565206e756c6c612c206f726e617265206e656320616c697175006574207365642c20636f6d6d6f646f20696e206475692e0a0a496e74656765007220736f6c6c696369747564696e2075726e612065676574206e756c6c61200070686172657472612c206e6f6e20766172697573206e657175652070756c7600696e61722e204e756c6c61207574206c656374757320736564206d61757269007320756c6c616d636f7270657220706f7274612e2051756973717565206e650063206469616d207472697374697175652c2064617069627573206c65637475007320612c20616c697175616d206e6962682e2043757261626974757220616c006971756574206d6f6c6c69732073617069656e207574206d6f6c6573746965002e2050686173656c6c7573207361676974746973206e69736c20766974616500206d6178696d75732066617563696275732e20446f6e6563206d6178696d750073206120647569206575207661726975732e20457469616d2072686f6e6375007320746f72746f722076656c206e756e63206665726d656e74756d2070756c0076696e617220736564206e656320657261742e20416c697175616d20757420006c656f206e6f6e206e69736920646170696275732076756c7075746174652e0020496e746567657220616363756d73616e20636f6e6775652072686f6e637500732e2055742076756c707574617465206f64696f20656c69742c20707265740069756d2073656d7065722065726174207375736369706974206e65632e205300757370656e6469737365206d6174746973207475727069732076656c206572006f732070756c76696e617220756c7472696365732072757472756d207369740020616d657420616e74652e204475697320656c656966656e64206d6178696d00757320617567756520696e207363656c657269737175652e20446f6e656320006e6f6e20746f72746f722073697420616d657420657261742066617563696200757320616c69717565742e205365642074656d70757320747269737469717500652072697375732c207072657469756d20747269737469717565206475692000636f6e76616c6c69732065752e0a0a50686173656c6c757320616c69717561006d20747572706973206174206c656f20706f73756572652c207365642061630063756d73616e206e69736c2074656d7075732e204d616563656e6173207669007461652073617069656e206a7573746f2e2050686173656c6c75732074656d00707573206672696e67696c6c612070656c6c656e7465737175652e2050656c006c656e74657371756520617420646f6c6f72206964206d6175726973206c61006f7265657420637572737573206e6f6e2071756973206d657475732e204475006973206163206d69206e6f6e2074656c6c7573206461706962757320706f7200747469746f72206e6f6e206574206c6967756c612e20457469616d20736f6400616c65732069642074757270697320696e20756c747269636965732e205365006420616e7465206c616375732c2068656e64726572697420757420706f7274007469746f722075742c206665726d656e74756d207669746165206c656f2e0a000a4372617320706861726574726120616e746520616e74652c2076756c7075007461746520666575676961742072697375732066617563696275732065676500742e2050726f696e2073697420616d65742074656c6c75732072686f6e637500732c207665686963756c61206469616d206e6f6e2c206567657374617320650073742e2043726173207669746165206c696265726f206e657175652e20446f006e656320697073756d2066656c69732c20696e74657264756d2076656c20650067657374617320656765742c20616c6971756574206e65632065726f732e2000446f6e6563206e697369206d617373612c20766573746962756c756d207665006c20656e696d2065742c206461706962757320636f6e67756520697073756d002e205072616573656e7420647569206573742c20636f6e67756520766974610065206d6f6c657374696520717569732c206d616c657375616461206567657400206469616d2e20457469616d206e6f6e2076697665727261206f7263692e2000566573746962756c756d206d6f6c6c69732065726f73206174206c65637475007320706f72747469746f7220756c6c616d636f727065722e20496e2066657500676961742066656c6973206e656320657820756c7472696365732c2073656400206665726d656e74756d206a7573746f2066696e696275732e204475697320006e6f6e20706f7375657265206e657175652c20657420636f6e73657175617400206f7263692e20416c697175616d206575206a7573746f20756c747269636500732c2076656e656e6174697320746f72746f722061632c2072757472756d2000656e696d2e0a0a496e7465676572206469676e697373696d207175616d20650075206d61757269732066696e6962757320666163696c697369732e204d617500726973206c6163696e6961206a7573746f206c65637475732c2076656c206c007563747573207175616d20766f6c757470617420766f6c75747061742e20550074206e6f6e206f726369206e756c6c612e2041656e65616e20617563746f72002073617069656e206120726973757320656c656d656e74756d206d616c657300756164612e204e616d2065676574206c6563747573206c696265726f2e2041006c697175616d20697073756d206d617373612c20736f6c6c69636974756469006e20616320696163756c697320612c206d6178696d757320657520747572700069732e204d616563656e61732076656c206e756e632076656c2065726f732000766f6c7574706174207472697374697175652076697461652061742065782e002043757261626974757220657420656e696d206d6f6c6c69732c20707265740069756d20646f6c6f7220717569732c2068656e647265726974206c61637573002e20496e2074656d70757320657569736d6f6420646f6c6f722c206964206400696374756d206d657475732072757472756d20717569732e0a0a43757261620069747572207072657469756d206c6f626f72746973207363656c65726973710075652e204d61757269732076656c206d69206120697073756d20766568696300756c61207363656c657269737175652e204e756c6c6120666163696c697369002e20446f6e656320636f6e736571756174206f64696f206120657261742075006c6c616d636f7270657220666163696c697369732e2044756973206d617373006120656e696d2c20756c74726963696573206e6f6e2075726e612071756973002c20657569736d6f64207072657469756d20746f72746f722e20457469616d002068656e647265726974206c656374757320766974616520656c656d656e7400756d2076756c7075746174652e20496e74657264756d206574206d616c657300756164612066616d657320616320616e746520697073756d207072696d69730020696e2066617563696275732e20536564206f64696f206d61676e612c2063006f6e73656374657475722073697420616d657420706f727461207669746165002c20766976657272612061206d61676e612e20437261732065752069707375006d20656c656966656e64206f64696f20766976657272612072757472756d20006574206e6f6e206c6f72656d2e20517569737175652071756973206c656f2000757420726973757320756c6c616d636f72706572207375736369706974207600656c206e6563206469616d2e20467573636520646170696275732065726f7300206e6f6e206e69736c2066617563696275732c20657420656666696369747500722073656d20706c6163657261742e20566573746962756c756d20616e74650020697073756d207072696d697320696e206661756369627573206f72636920006c756374757320657420756c74726963657320706f73756572652063756269006c69612063757261653b20416c697175616d2069642073656d206163206c6f0072656d20706f72747469746f72206c616f7265657420616320717569732065006c69742e0a0a446f6e65632076656c20646f6c6f72206d6178696d75732c20006d6f6c6c6973206d61676e612073697420616d65742c207068617265747261002076656c69742e2041656e65616e2070656c6c656e74657371756520737573006369706974206c6563747573206174207665686963756c612e20446f6e656300206e6563206661756369627573206469616d2e204e616d20656765742064750069206575206d6175726973206461706962757320616c697175616d206469630074756d206575206d61757269732e20446f6e6563206c6563747573206d65740075732c206d6f6c657374696520636f6e73657175617420756c747269636965007320656765742c206c616f72656574206e6563206475692e20446f6e656320006575206c656374757320717569732076656c697420656c656d656e74756d2000657569736d6f642e204d616563656e617320626962656e64756d206c61637500732073697420616d657420736f6c6c696369747564696e206c6163696e6961002e0a0a5175697371756520737573636970697420706f73756572652070757200757320636f6e64696d656e74756d20706f7274612e20457469616d2068656e00647265726974207574206c696265726f20696e2072757472756d2e204e756c006c616d20756c74726963696573206c696265726f20657420647569206c6f62006f72746973206672696e67696c6c612e20496e746567657220757420656c690074206d61676e612e2051756973717565207665686963756c61206d6f6c6c690073206c656f2c206964207665686963756c61206d61676e6120616c6971756500742075742e20457469616d206e6f6e20706f72747469746f72206e69736c2c002073697420616d65742076756c707574617465206469616d2e2050726f696e00206e6571756520657261742c20737573636970697420656765742066656c69007320696e2c20677261766964612066696e69627573207175616d2e205068610073656c6c7573206d617474697320746f72746f722072697375732c2075742000656c656d656e74756d206d6574757320737573636970697420626962656e6400756d2e0a0a4e756c6c616d207175616d2065782c20706f72746120696e2070007572757320696e2c206d6f6c65737469652074726973746971756520646f6c006f722e20457469616d207472697374697175652072697375732076656c206c0061637573206672696e67696c6c612c206174206c75637475732075726e612000616c697175616d2e20416c697175616d2065752066656c69732066657567690061742c20696163756c6973206c6f72656d2073697420616d65742c2070756c0076696e617220697073756d2e204e616d2076697461652074696e636964756e0074206d61676e612e204d617572697320756c6c616d636f727065722c206d650074757320636f6e64696d656e74756d20736f64616c657320756c6c616d636f00727065722c2073656d2074656c6c757320636f6e7365637465747572206c6500637475732c2061742074656d7075732073617069656e206d6175726973207600656e656e61746973206d61757269732e2041656e65616e2076657374696275006c756d20646f6c6f722065782c2076656c2076697665727261206e69626820006d6178696d7573207365642e20457469616d20636f6d6d6f646f206d616c65007375616461206f7263692e204e616d20616363756d73616e206469616d206e006563206e756e6320766f6c7574706174206566666963697475722e20467573006365207072657469756d20697073756d206c656f2c207175697320696e7465007264756d206172637520736f6c6c696369747564696e20656765742e205065006c6c656e746573717565206d617474697320617420697073756d206567657400207072657469756d2e0a0a536564206c656f206d692c207068617265747261002073697420616d657420696d706572646965742065752c2074696e63696475006e7420657420746f72746f722e2055742071756973207072657469756d206d0061676e612c20657520616c697175657420697073756d2e2050726f696e2061006320756c74726963657320697073756d2c2076656c206d6f6c6573746965200073617069656e2e20457469616d20736f64616c6573206e6571756520616320006f726e6172652070686172657472612e204d6f7262692071756973206175670075652073697420616d65742075726e6120706c6163657261742070756c7669006e61722e204375726162697475722076617269757320666163696c69736973002072697375732c206964207375736369706974207175616d20696d7065726400696574206d616c6573756164612e20416c697175616d20646170696275732c0020697073756d2076656c20636f6e64696d656e74756d206d61747469732c20006c6967756c6120657374206375727375732074656c6c75732c20657520696e0074657264756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6100207175616d206e6973692c20706f737565726520657420616363756d73616e0020696e74657264756d2c2076756c707574617465206e6f6e2070757275732e00204e756e632076617269757320696d706572646965742066656c6973206e65006320696e74657264756d2e2050726f696e2076656e656e617469732061206c006967756c6120657420636f6e73656374657475722e2050686173656c6c757300206e65632065726f73206d6f6c6c69732c20756c7472696369657320656c690074206e6f6e2c206c6163696e6961206d692e2053757370656e646973736520006c6967756c6120617263752c206665726d656e74756d20617420617563746f007220717569732c20656c656966656e64207669746165206e69736c2e0a0a53006564206665726d656e74756d20707572757320696e206f64696f2070756c7600696e61722c20766573746962756c756d20656c656966656e64206573742063006f6d6d6f646f2e2046757363652076617269757320736564207475727069730020696e20666575676961742e20557420616320666163696c69736973206f6400696f2e20557420766f6c757470617420697073756d20646f6c6f722c20696e0020657569736d6f6420646f6c6f7220696e74657264756d2069642e20536564002073617069656e206573742c20696d70657264696574206575206f726e6172006520656765742c2074656d70757320656765742066656c69732e205068617300656c6c75732070656c6c656e7465737175652c206e756c6c61207369742061006d65742066696e6962757320677261766964612c207175616d206e69736c200064696374756d206a7573746f2c2073697420616d6574206672696e67696c6c0061206469616d206c616375732065676574206573742e20566573746962756c00756d20626c616e646974206d617572697320696e20616e7465206d6178696d00757320766f6c75747061742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e20566573746962756c756d2066656c6973200072697375732c2073616769747469732076656c20636f6d6d6f646f20736564002c20706f72746120617563746f722073656d2e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d616563656e6173206e65006320706f72747469746f722066656c69732e20446f6e656320656c656d656e0074756d2073656d206e756c6c612e0a0a416c697175616d20656c656d656e7400756d206575206c6f72656d206964206c75637475732e204e756e6320617420006e696268206573742e205072616573656e7420666175636962757320766172006975732065726174206e656320706f73756572652e204e756c6c616d20717500616d206c616375732c20766f6c7574706174206e6563206c616f7265657420006e6f6e2c20706f7375657265206163206c6967756c612e2050726f696e2071007569732065676573746173206e69736c2c20736564206c7563747573206665006c69732e204e756c6c61207072657469756d207175616d206e65632066696e006962757320656c656966656e642e20457469616d206d617572697320656e69006d2c2072686f6e6375732076656c206d616c657375616461207365642c2063006f6e64696d656e74756d2076697665727261206c696265726f2e20416c69710075616d207175616d2073656d2c2072757472756d2061742073617069656e20006e65632c206c616f7265657420666163696c69736973207475727069732e20004e616d206e65632074656d707573206573742e204d616563656e617320766100726975732c206e69626820617420636f6e73656374657475722074656d707500732c206e756e63206c6f72656d206672696e67696c6c6120617263752c2069006d706572646965742072757472756d206e69736c206475692061206175677500652e205072616573656e7420706c6163657261742073617069656e2073656400206d69206d6f6c6c697320666163696c697369732061206e6563207075727500732e205072616573656e7420736f6c6c696369747564696e2066656c697320006d617373612c2076656c206d6174746973206c656f2068656e647265726974002061632e2053757370656e646973736520657569736d6f642064696374756d002074696e636964756e742e0a0a416c697175616d2064617069627573206c6f0072656d20657520736f64616c65732066617563696275732e204e756c6c612000747269737469717565206f64696f2065742072697375732064696374756d2c0020756c74726963696573206c6f626f72746973206c6967756c61207361676900747469732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e204e756e632074656d7075732076656c206572617420766974610065206c6163696e69612e204e756c6c6120696e20656765737461732065726f00732e204e756c6c616d2076656c20646f6c6f722076656c2076656c69742070006c6163657261742076756c70757461746520696e20736564206c616375732e0020416c697175616d206c6f626f7274697320616e746520696e2074656c6c75007320696163756c69732c206120636f6d6d6f646f207175616d20616363756d0073616e2e2050726f696e2066657567696174206c6967756c61206964206e75006e632076756c70757461746520646170696275732e20457469616d20707265007469756d207669746165206475692073697420616d657420616c697175616d002e2041656e65616e206c6f626f727469732072757472756d206e6973692c2000612074656d7075732065726f7320666163696c697369732069642e204d617500726973206e6f6e2061726375206174206e6973692076697665727261206375007273757320657520616320646f6c6f722e0a0a4e756e6320696e206f64696f00206d692e204e616d206d617474697320736564206c6967756c61207369742000616d65742074656d706f722e20496e74656765722064696374756d207269730075732066617563696275732c2076656e656e6174697320616e74652065752c0020756c747269636573206d61757269732e20446f6e6563206e656320636f6e0064696d656e74756d2065782e2053656420666163696c69736973206f64696f00206475692c207669746165206672696e67696c6c61206d61757269732061750063746f72206e6f6e2e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e2053757370656e646973736520717569732074656c6c007573206c616f726565742c20756c7472696365732073656d206e65632c20730063656c6572697371756520656c69742e20536564207363656c65726973717500652065737420766f6c75747061742c20636f6e64696d656e74756d20616e74006520612c2076656e656e61746973206d617373612e204d6f726269206e65630020617563746f72206c65637475732c206163207072657469756d206e696268002e204675736365207363656c65726973717565206d61737361206e6f6e206300757273757320706f7274612e20566573746962756c756d206d65747573207000757275732c20636f6e736571756174206964206672696e67696c6c6120612c002074656d707573207068617265747261206c65637475732e2056657374696200756c756d20736f64616c6573206c6f626f7274697320756c7472696365732e000a0a4e616d2073697420616d657420626c616e646974206573742e204675730063652073697420616d65742074696e636964756e7420646f6c6f722e20446f006e65632076656c206e697369206c616375732e204d617572697320706f7375006572652075726e6120616320656c656966656e6420616c69717565742e205300757370656e6469737365206661756369627573206665726d656e74756d206c00696265726f2c20616320617563746f72206d617373612068656e647265726900742074656d706f722e20467573636520706f72747469746f72206172637520006163206c656374757320626962656e64756d20636f6d6d6f646f2e205365640020617563746f72206575206f64696f2076656c20616c69717565742e20436c0061737320617074656e742074616369746920736f63696f737175206164206c0069746f726120746f727175656e742070657220636f6e75626961206e6f73740072612c2070657220696e636570746f732068696d656e61656f732e2056697600616d7573206574206c756374757320656e696d2e20566573746962756c756d002074656d706f7220616e746520736564206d61747469732064696374756d2e002051756973717565207068617265747261206172637520656765742075726e006120756c74726963657320617563746f722e204d6f72626920656c65696665006e6420636f6e736571756174206d692069642068656e6472657269742e20460075736365206d617474697320616e746520636f6e64696d656e74756d20706f00737565726520736f64616c65732e20437572616269747572206c6f626f72740069732075726e612073697420616d6574206d61747469732065676573746173002e204d6175726973206665756769617420656c69742074656c6c75732c2075006c7472696369657320696d70657264696574206469616d2074656d707573200076656c2e0a0a566573746962756c756d206672696e67696c6c6120747269730074697175652075726e6120657520706f7274612e2050726f696e206665756700696174206e69736c207475727069732c207574206c6f626f727469732072690073757320696d706572646965742061742e2050686173656c6c7573207369740020616d657420616c69717565742066656c69732c20766974616520706f737500657265206d692e20416c697175616d2073616769747469732076617269757300206e696268206e6563206f726e6172652e2050656c6c656e746573717565200074696e636964756e742076697461652065737420657520616c697175616d2e00204475697320696163756c697320757420617263752073656420656c656d65006e74756d2e20467573636520616363756d73616e2c20646f6c6f72206e6f6e002074656d70757320616363756d73616e2c20646f6c6f72207175616d2061750063746f72206e657175652c2071756973206f726e61726520616e7465206c65006f2069642070757275732e2050686173656c6c75732073656420656c65696600656e6420656c69742e204372617320657520706f737565726520616e74652e0020496e20616e7465206c6f72656d2c2070686172657472612073697420616d00657420766573746962756c756d207365642c2072686f6e637573206964206a007573746f2e2055742074656d707573206469676e697373696d20766568696300756c612e204d616563656e6173206d61757269732076656c69742c2065676500737461732073697420616d6574207661726975732076697461652c2066616300696c697369732073697420616d6574206c6967756c612e0a0a4d6175726973002067726176696461206c656f2073697420616d6574206f7263692076656e65006e617469732c207574206d6178696d75732073617069656e20636f6e736571007561742e204d6f726269206e6563206f7263692065782e20566976616d757300207665686963756c61206469676e697373696d20707572757320736564207400696e636964756e742e20467573636520657569736d6f64206e6f6e20656e69006d20657420636f6d6d6f646f2e205072616573656e7420766f6c757470617400206d6f6c6573746965206f726e6172652e20566976616d757320636f6e6469006d656e74756d2076656c697420656c656d656e74756d2c207072657469756d00207475727069732065752c20626c616e6469742072697375732e204675736300652070656c6c656e746573717565206d6178696d7573206e697369206163200073656d7065722e20416c697175616d20757420657569736d6f642076656c6900742c2073656420656c656d656e74756d206c6f72656d2e204d616563656e610073206964207269737573206e6f6e206d61737361206772617669646120636f006d6d6f646f2e204e756c6c616d20696e20707572757320696420656c69742000666163696c6973697320636f6e6775652e2041656e65616e20636f6e677565002076756c707574617465206c616f726565742e20416c697175616d20656765007420656c69742074656c6c75732e205175697371756520737573636970697400207175616d206163206d6173736120626962656e64756d2065676573746173002e20416c697175616d2071756973206578206e6f6e2076656c697420736365006c6572697371756520756c6c616d636f727065722069642065676574206d6100676e612e2041656e65616e20612073656d206e6f6e2065726174206c6f626f007274697320636f6e6775652e0a0a43726173206e6f6e20647569206f64696f002e205175697371756520766f6c7574706174207363656c657269737175652000697073756d206174207661726975732e20536564206f726e6172652073656d00207365642076656e656e6174697320636f6e7365717561742e204475697320006f726e6172652076656e656e61746973206d6f6c6c69732e2053656420657800206e657175652c2065666669636974757220626962656e64756d20706c616300657261742065742c20736f6c6c696369747564696e2076656c206f7263692e0020496e7465676572206e696268206e657175652c20666163696c6973697320006e6f6e206d61757269732076656c2c20636f6e73656374657475722074726900737469717565206e756c6c612e204e756e632073697420616d657420706861007265747261206c656f2e204e756c6c616d206c656f206f7263692c20696d70006572646965742073697420616d657420696e74657264756d20717569732c2000696163756c6973206575206e69736c2e20416c697175616d2073656420747200697374697175652073656d2c206e6563206c6f626f7274697320746f72746f00722e204d616563656e617320736f64616c6573207075727573206e65632061006c697175616d20706f72747469746f722e20447569732075742066656c69730020657261742e0a0a437261732061206d6173736120696d706572646965742c0020616363756d73616e2072697375732069642c207375736369706974206e75006e632e20446f6e65632073656d70657220656e696d206575206d61676e612000636f6e7365717561742074696e636964756e742e2053757370656e64697373006520636f6e736571756174206c6563747573207669746165206d657475732000616c6971756574206c616f726565742e20436c61737320617074656e74207400616369746920736f63696f737175206164206c69746f726120746f72717565006e742070657220636f6e75626961206e6f737472612c2070657220696e63650070746f732068696d656e61656f732e20446f6e656320696e74657264756d20006469616d206174206e69626820616363756d73616e2c20657420617563746f0072206d61737361206c6163696e69612e20467573636520696420657820766900746165207269737573206c616f7265657420706f72746120636f6e64696d65006e74756d206567657420656e696d2e2050686173656c6c7573206c656374750073206f64696f2c20666163696c6973697320612074656d707573207365642c0020736f64616c6573206575206475692e204e616d20696e206d616c65737561006461206f64696f2e205175697371756520706c61636572617420697073756d002076656e656e617469732072697375732074656d707573206661756369627500732e2050656c6c656e74657371756520656c656d656e74756d20646f6c6f72002071756973206672696e67696c6c612074656d7075732e20457469616d207400696e636964756e7420766172697573206c6f72656d20696e206f726e617265002e204e616d206120656c656d656e74756d206f7263692e2050686173656c6c0075732067726176696461206e69736c20657520656c697420756c74726963690065732c20657420626962656e64756d2074656c6c75732066696e696275732e000a0a4372617320626c616e6469742070756c76696e6172206d657475732c2000616320696e74657264756d2066656c6973206d6178696d757320626962656e0064756d2e2041656e65616e20626962656e64756d20696d706572646965742000636f6e64696d656e74756d2e204e616d206e6f6e206c61637573206c696775006c612e20517569737175652073656420766573746962756c756d207361706900656e2e20536564207665686963756c612074696e636964756e74206c656f200071756973206c6163696e69612e20536564206c61637573206c6f72656d2c2000756c747269636573206e6563206c6f72656d207365642c20706c6163657261007420766f6c7574706174206d657475732e205365642075742073656d207369007420616d657420746f72746f7220756c747269636573207375736369706974002076656c206174207475727069732e0a0a5574207669746165206175677565002073697420616d657420656c69742070756c76696e61722068656e64726572006974206e65632061206c6967756c612e20446f6e656320706f727461206e6900736920636f6d6d6f646f20616e7465207665686963756c612073656d706572002e2055742066696e696275732c20707572757320757420666175636962757300206d6f6c6c69732c2066656c6973206e65717565206d616c65737561646120006e6962682c2061632076656e656e61746973206e756c6c612076656c69742000612066656c69732e204d617572697320677261766964612c206c6967756c6100206964206c6163696e696120766976657272612c206a7573746f206c69626500726f20766172697573206c6967756c612c2073697420616d657420706f72740061206c6f72656d206c696265726f2061206d657475732e20416c697175616d0020756c6c616d636f72706572206d61757269732073617069656e2c2061206700726176696461207075727573207363656c6572697371756520717569732e20004e756c6c616d2072757472756d20746f72746f722073697420616d6574206f0064696f20656666696369747572207072657469756d2e2044756973206c616f0072656574206566666963697475722076656c69742c20612073656d706572200066656c69732e2050726f696e206e696268206c616375732c20637572737573002073697420616d6574206c656374757320717569732c2065666669636974750072207665686963756c61206475692e20446f6e65632061726375206c656f2c002072757472756d2075742063757273757320696e2c207363656c6572697371007565206574206c616375732e204d616563656e61732074696e636964756e740020617263752061206e6571756520666575676961742c2076656c206469637400756d206e69736c2073656d7065722e20446f6e6563206e756e632076656c6900742c20636f6d6d6f646f20696420746f72746f722076697461652c20616c690071756574206661756369627573206c6f72656d2e2041656e65616e2076617200697573206d61747469732073617069656e2065676574206d6f6c6c69732e2000446f6e65632076697461652075726e6120756c6c616d636f727065722c20640069676e697373696d20656e696d2076697461652c20766573746962756c756d00206d657475732e2050686173656c6c757320636f6e7365637465747572206500726f7320696d706572646965742c20677261766964612065726f732069642c00206d6f6c6c69732076656c69742e0a0a5574206163206c6163757320636f6e0076616c6c69732c207665686963756c61206e6571756520717569732c2065660066696369747572206f7263692e205574206d69206c616375732c206566666900636974757220657420736f6c6c696369747564696e2075742c206661756369006275732073697420616d657420616e74652e2053656420636f6e64696d656e0074756d206567657420656c697420617420677261766964612e20457469616d00206e6563206e69736c2073656420656e696d20706f72746120706c616365720061742e205072616573656e74206672696e67696c6c6120736167697474697300206c656f2c2076656c2074656d706f72206f64696f206d6f6c6c69732076690076657272612e20566573746962756c756d2066696e69627573206a7573746f002072697375732c2065752073656d706572206475692066696e69627573206100632e204d617572697320706c616365726174206c6563747573206e6973692c00206e6f6e20766573746962756c756d20746f72746f72206d6174746973206100632e204e756c6c61206e656320626962656e64756d207175616d2e0a0a53650064206574206469616d2065676574206c696265726f2070756c76696e617220006672696e67696c6c6120756c74726963696573206964207475727069732e20005072616573656e7420657520656e696d206672696e67696c6c612c20706c61006365726174206172637520696e2c20766573746962756c756d206e65717565002e20457469616d207665686963756c6120657261742064696374756d206e6900626820657569736d6f6420736f6c6c696369747564696e2e20507261657365006e74206e65632074757270697320616c69717565742c206c6f626f7274697300206c656f20717569732c207665686963756c61207175616d2e205068617365006c6c75732073656420626962656e64756d206e6973692e204d616563656e61007320696420646f6c6f72206567657420616e746520626c616e6469742064610070696275732e20446f6e656320656c656d656e74756d20736564206e696268002065752073616769747469732e20467573636520636f6e6775652073656d20006c6f72656d2c206e6f6e206672696e67696c6c61206f64696f20617563746f007220612e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b20004d616563656e61732073656420636f6e7365637465747572206a7573746f2e0020536564206566666963697475722061207175616d2073697420616d657420006d6178696d75732e0a0a416c697175616d20636f6d6d6f646f20616e746520006574206d6f6c657374696520706f72747469746f722e204d616563656e61730020766f6c7574706174206e69736c207363656c657269737175652c206c6f62006f72746973206d61757269732061632c2064696374756d206d617373612e200050686173656c6c7573206d616c657375616461206c6163696e6961206f6469006f2069642066696e696275732e204d616563656e61732061206d61676e6120006f64696f2e20467573636520697073756d2075726e612c2073616769747469007320666175636962757320616e7465207365642c20756c747269636573206400617069627573206d61757269732e2053757370656e6469737365207574206f0064696f20717569732073656d206461706962757320616c697175616d20696e0020696420646f6c6f722e205574206d61747469732071756973206f64696f20007669746165206c6f626f727469732e20416c697175616d20616320746f7274006f72206163206d657475732073656d70657220766976657272612e20416c69007175616d206e65632064696374756d206d617373612c2076656c2073757363006970697420656c69742e2044756973207365642073656d206575206e6962680020636f6e736563746574757220696163756c69732076656c207574206175670075652e2044756973207669746165206c75637475732075726e612e204e616d00206e756c6c61206e6962682c20626c616e6469742073697420616d6574207300656d7065722076697461652c206d6f6c6c6973206c6f626f72746973206e75006e632e2053656420757420666175636962757320746f72746f722c20656765007420696163756c6973206f7263692e20496e206120626c616e64697420647500692c206174207068617265747261206d657475732e20457469616d2068656e00647265726974206c696265726f207669746165206c656374757320737573630069706974206f726e6172652e2051756973717565206d6174746973206c6163007573206174207068617265747261207661726975732e0a0a4d616563656e61007320666163696c6973697320656c697420756c74726963657320707265746900756d206c6f626f727469732e2046757363652076656c20766573746962756c00756d20657261742e20457469616d206175677565206d617373612c20666575006769617420766974616520657261742061632c206c6f626f7274697320766f006c7574706174206d61676e612e20446f6e6563206d616c6573756164612073006564206c6967756c6120717569732066696e696275732e204e756c6c616d20006566666963697475722076697665727261206475692c206e6f6e2076657374006962756c756d20746f72746f7220696e74657264756d2076656c2e2050726f00696e20616e7465206573742c20626c616e64697420696e207363656c65726900737175652073697420616d65742c20756c74726963696573206e6563206572006f732e205365642065726174206e69736c2c2067726176696461206574207400656d706f722065742c206665726d656e74756d2073697420616d6574206578002e2053656420656666696369747572206d6920766974616520657569736d6f0064206672696e67696c6c612e2053757370656e646973736520656765742061007563746f72206e6962682e20446f6e6563206e656320706861726574726120006f64696f2c2068656e64726572697420636f6e64696d656e74756d20646f6c006f722e0a0a4d6f72626920696d706572646965742c206469616d206e6563200076756c7075746174652072757472756d2c20746f72746f72206c6f72656d2000696e74657264756d20616e74652c207669746165206375727375732074757200706973206f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265006574207669746165206d61676e612073697420616d657420617563746f722e00204372617320617563746f72206e69736c2071756973207661726975732063006f6d6d6f646f2e204d6175726973206174206c6163696e6961206e756c6c61002e20566573746962756c756d20666575676961742073656d206174206d61730073612066617563696275732064696374756d2e2046757363652076656c207300617069656e2073697420616d6574206a7573746f2073757363697069742061006363756d73616e2075742076656c206f7263692e204e756c6c612066616369006c6973692e204e756c6c616d20736f6c6c696369747564696e20737573636900706974206e6973692c20657520616363756d73616e206d6574757320636f6e00736563746574757220766573746962756c756d2e2051756973717565207465006c6c7573206d657475732c2073656d7065722074656d707573206d657475730020717569732c2064696374756d20656c656d656e74756d2066656c69732e200053757370656e646973736520636f6e76616c6c697320707572757320616320006c61637573207072657469756d2c20616320616c697175657420657374206600696e696275732e2050656c6c656e74657371756520626962656e64756d20700075727573206d61676e612c2073697420616d657420637572737573206e65710075652066657567696174206e6f6e2e2043757261626974757220696e206d610078696d7573206a7573746f2e2041656e65616e20696163756c6973206c616300696e69612072686f6e6375732e0a0a536564206672696e67696c6c61207365006d206163206d61737361206d616c6573756164612c206d617474697320696d0070657264696574207175616d2073757363697069742e2043726173206c616300696e69612061632065782076697461652072757472756d2e20536564206578002066656c69732c20706f727461206e656320617263752061632c2066696e6900627573206c7563747573207475727069732e204475697320697073756d206c00696265726f2c20696e74657264756d20757420696e74657264756d2075742c0020656c656d656e74756d206163206a7573746f2e204d6f7262692074726973007469717565206c6f626f7274697320706c6163657261742e2050656c6c656e007465737175652074696e636964756e742074656d70757320656e696d2061740020636f6e6775652e204e756c6c61206d61747469732074696e636964756e7400206e6973692c2061742072686f6e63757320616e746520656c656966656e64002068656e6472657269742e204e756c6c616d2064696374756d20706861726500747261206475692e20566573746962756c756d206c75637475732065737420007574206175677565207472697374697175652c2073697420616d657420656c00656d656e74756d2074656c6c757320656c656966656e642e20496e746567650072206e6563206f726e617265206a7573746f2c207175697320706f72746120006469616d2e2051756973717565206e6f6e206e697369206e6f6e206c6f7265006d2070756c76696e617220706f73756572652061206567657420656c69742e00205365642065676574206c6163696e69612073656d2e2050686173656c6c750073206e6f6e206e756c6c612074656d7075732c207363656c6572697371756500206c696265726f2076656c2c207068617265747261206e6962682e0a0a5375007370656e6469737365206469676e697373696d20636f6e67756520657374200069642070686172657472612e20447569732076697461652066656c69732069006e206c656374757320666163696c6973697320706861726574726120736564002061632070757275732e2050656c6c656e7465737175652076656e656e617400697320706c616365726174206d61757269732c206120626962656e64756d20006d6175726973206566666963697475722076697461652e204d6f7262692065006666696369747572206d65747573206575207363656c65726973717565206600617563696275732e20566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2041656e65616e20696e74657264756d20666163696c6973697320710075616d20717569732066617563696275732e20566573746962756c756d2061006e746520697073756d207072696d697320696e206661756369627573206f72006369206c756374757320657420756c74726963657320706f73756572652063007562696c69612063757261653b205072616573656e74206c6f626f7274697300206d61676e612071756973206e697369206d616c657375616461206d617869006d75732071756973206e6f6e206c6f72656d2e20437572616269747572206e006f6e206e756c6c612073697420616d657420657261742074696e636964756e007420666163696c6973697320617420657420746f72746f722e204d6f72626900206964206175677565207669766572726120697073756d2070756c76696e610072207363656c657269737175652071756973206e65632076656c69742e204e00616d2076656c206f64696f20636f6d6d6f646f2c20706f72746120617263750020696e2c20666163696c697369732073617069656e2e204e756e63207369740020616d65742076656e656e6174697320657261742c206174206c616f72656500742061756775652e20446f6e656320617563746f722070757275732071756900732074656d706f7220666575676961742e20496e2071756973206c6f72656d002065676574206e756e63206c6163696e696120646170696275732e20446f6e00656320696163756c6973206573742076656c2072686f6e63757320616c69710075616d2e0a0a4d6f726269206d61676e61206f64696f2c2076656e656e61740069732076697461652073656d2069642c20646170696275732074656d70757300206e756e632e204d6f7262692066617563696275732074656d706f72206d610078696d75732e205175697371756520657520696d70657264696574206d6167006e612c20696420616c697175616d2075726e612e20446f6e6563207574206c00696265726f206475692e20457469616d206d6174746973206e756c6c6120710075697320617567756520696e74657264756d2c2061206d6f6c657374696520006f726369207472697374697175652e20446f6e6563206e656320756c6c616d00636f72706572206e6962682c2061742074696e636964756e74207075727573002e204475697320626c616e646974206e69626820756c74726963696573206f0072636920616363756d73616e20736f6c6c696369747564696e2e20446f6e6500632069642061756775652071756973206e65717565206c616f72656574206f00726e6172652e204e756e632072757472756d206a7573746f2075742065676500737461732068656e6472657269742e20437261732074656d70757320696e20006d617572697320612074696e636964756e742e0a0a557420706f7274746974006f722074656d70757320616c697175616d2e204d616563656e617320677261007669646120636f6e736571756174206d692c2065742074726973746971756500206c6f72656d20666575676961742073697420616d65742e20507261657365006e7420736564206d6178696d7573206f64696f2c206567657420636f6e736500637465747572206c616375732e20416c697175616d20647569206e65717565002c207669766572726120636f6e73657175617420636f6e6775652076656c2c0020636f6e736571756174206964206f7263692e2041656e65616e2066696e69006275732065782073656d706572206e69736c206d61747469732c207175697300206c756374757320656e696d206c6163696e69612e2050726f696e20696420006d61737361206d61757269732e20496e74656765722065752061726375206c006163696e6961206c656374757320657569736d6f64206c75637475732e2049006e20766f6c7574706174206e6f6e206d657475732073697420616d65742063006f6e76616c6c69732e204e616d206c6967756c61206d657475732c20666572006d656e74756d2065752074656c6c75732069642c20656c656966656e642076006172697573206e657175652e204675736365206175677565206c6f72656d2c0020706861726574726120612073656d2076656c2c20636f6e64696d656e7475006d206d617474697320646f6c6f722e2046757363652073656d706572206e6900736c20696e2075726e612073757363697069742c206567657420707265746900756d206a7573746f20736f6c6c696369747564696e2e0a0a496e7465676572002076697461652072686f6e637573206573742c207175697320626962656e6400756d2072697375732e20457469616d206d616c657375616461206175677565002065752074656d70757320636f6e76616c6c69732e205175697371756520710075697320656c697420666575676961742c20756c6c616d636f72706572206e0069626820696e2c206c7563747573206d617373612e2050686173656c6c75730020636f6e76616c6c69732073617069656e2076656c206c616375732074696e00636964756e742c206e656320657569736d6f64206573742070656c6c656e740065737175652e20416c697175616d20706f727461206a7573746f206120756c00747269636965732068656e6472657269742e204d6175726973206c756374750073206175677565206575206c656374757320646170696275732c2075742070006f72746120656c69742070656c6c656e7465737175652e20496e74656765720020736564206d61676e6120757420646f6c6f722074696e636964756e7420660072696e67696c6c61206964206174206475692e204d6f72626920656c65696600656e642072697375732073697420616d6574206d61676e612074656d707573002c207665686963756c61206c6f626f72746973206f72636920736f6c6c69630069747564696e2e204e616d2065742074656d706f72206d61676e612e204d6f007262692071756973207072657469756d2072697375732c2075742076656e65006e617469732074656c6c75732e204d617572697320706f72746120646f6c6f007220657420636f6e73656374657475722068656e6472657269742e204e616d002070656c6c656e7465737175652065676573746173206f64696f207472697300746971756520677261766964612e2050656c6c656e74657371756520696420006665726d656e74756d206469616d2e20496e20636f6e736563746574757220006d692076656c206c696265726f20657569736d6f642064696374756d2e2044006f6e656320736167697474697320616e7465206d617373612e20507261657300656e74206163206175677565206e657175652e0a0a536564206d6173736120007475727069732c20636f6e76616c6c69732065676574207665686963756c61ba020000002065752c20636f6e64696d656e74756d20736564206d657475732e205365640020636f6e64696d656e74756d20766f6c7574706174206573742c2076656c200070756c76696e6172206e69736920736f6c6c696369747564696e206e6f6e2e0020496e7465676572207574206d61676e6120657420746f72746f72206469630074756d20636f6e64696d656e74756d20696e20706f727461206573742e2049006e2073697420616d65742061756775652065782e204e756e632076657374690062756c756d206964206c616375732076656c2070756c76696e61722e205072006f696e2070756c76696e6172206d6173736120757420616e7465206d617869006d75732c207669746165206c7563747573207175616d20656765737461732e002044756973206d6178696d757320616e74652073697420616d6574206d616c00657375616461206469676e697373696d2e204675736365207574206c656f2000626c616e6469742c20666163696c69736973206d657475732061742c20636f006e736571756174206c696265726f2e20437261732076656e656e6174697320006e69736920656765742075726e61206665726d656e74756d2c206174206669006e69627573207175616d20696163756c69732e20517569737175652076656c00206c6f72656d2065782e2050726f696e206a7573746f2066656c69732c20730063656c6572697371756520736564206f64696f2069642c20666575676961740020736f6c6c696369747564696e207175616d2e20496e74656765722076617200697573206f7263692073697420616d65742076756c7075746174652068656e006472657269742e204d6f726269206d6178696d75732c2065726f73206e6f6e0020636f6e7365717561742066696e696275732c207175616d206e6962682075006c6c616d636f72706572206475692c20616320696e74657264756d2073656d0020616e746520766974616520746f72746f722e204375726162697475722076006974616520706861726574726120656e696d2e20437261732073757363697000697420636f6e677565206c656f2c20696e20736f6c6c696369747564696e20006e697369207472697374697175652061742e20566976616d757320706f7274007469746f7220746f72746f7220636f6e64696d656e74756d2c20696163756c006973206c6967756c612075742c207472697374697175652065726f732e0a0a00496e206575206c756374757320616e74652e204d6f726269206d6178696d7500732075726e61206e6f6e206c6967756c6120706f73756572652c206120766f006c7574706174206f7263692073616769747469732e204e616d20617420656c0069742065676574206d692066696e696275732073656d70657220756c747269006365732073656420616e74652e205072616573656e742065752073656d70650072206f7263692e204e616d2071756973206469616d206e65632065737420650066666963697475722073656d7065722e204d6f7262692073697420616d657400206f64696f2070656c6c656e746573717565206e69736c20626c616e6469740020736f64616c65732e20447569732067726176696461206964206c6f72656d0020657520616c69717565742e205365642065726f73207475727069732c207300757363697069742073697420616d657420736f64616c6573207365642c2066006163696c69736973206574206573742e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e20566976616d75732073656d7065722074656d706f0072207661726975732e20416c697175616d20696420616c697175616d20646900616d2e0a0a416c697175616d20746f72746f72206573742c206c7563747573002065752075726e6120717569732c2074656d7075732068656e6472657269740020617263752e20566573746962756c756d2073697420616d657420656c656d00656e74756d206c656f2e2053757370656e64697373652071756973206e756e006320612073617069656e2068656e64726572697420696d706572646965742e002053656420696e2065676573746173206c696265726f2e20446f6e65632063006f6e6775652073697420616d6574206e6571756520646170696275732065750069736d6f642e204675736365207363656c657269737175652076656c20707500727573206964207363656c657269737175652e2050726f696e2076656c2070006f72747469746f72206e69736c2e0a0a4d6f726269206964206475692065670065742074757270697320696163756c697320636f6e6775652e204e756c6c61006d20617563746f722c206c6967756c61206567657420636f6d6d6f646f20700072657469756d2c206c696265726f206e756c6c6120756c7472696369657320006f64696f2c2075742072757472756d2061726375206172637520696e206e690073692e204d61757269732065676574206c6163757320696e20657820766172006975732073616769747469732073656420696e20656c69742e204d617572690073206d6f6c6573746965206f64696f206574206f7263692070686172657472006120706c6163657261742e20496e746567657220696e20747572706973206500676574206c696265726f20636f6e7365637465747572206c6f626f7274697300206575206e6f6e206c616375732e204d616563656e61732064696374756d20006c656f2074656d707573206c61637573206d617474697320736f64616c6573002e20446f6e6563206a7573746f206f64696f2c2074696e636964756e7420610063206172637520656765742c20666175636962757320706f73756572652064006f6c6f722e205072616573656e742065676574206e756e63206e6563206665006c697320696e74657264756d2072686f6e6375732e20566573746962756c75006d20656c656d656e74756d206461706962757320636f6e7365637465747572002e2053757370656e6469737365206964206e756e63206d61747469732c206c007563747573206e6962682073697420616d65742c20636f6e64696d656e7475006d2065782e20496e7465676572206f726e6172652075726e6120766974616500206e697369206c7563747573206469676e697373696d2e2041656e65616e200074696e636964756e742068656e647265726974207269737573206e6f6e2061006363756d73616e2e204e756c6c6120617420736f64616c6573206e69736c2e0020496e74656765722068656e647265726974207669746165206d61676e61200076697461652073757363697069742e20437261732064617069627573206c65006374757320736564206c656f207363656c657269737175652073656d706572002e204d61757269732061207269737573206e756c6c612e0a0a5365642069610063756c69732c206c656f20757420766573746962756c756d206672696e6769006c6c612c2066656c69732073617069656e20636f6e76616c6c6973206c6563007475732c2076656c206c616f72656574207175616d206f7263692061206d6100757269732e204e756c6c616d20657520616363756d73616e2073617069656e002e2050656c6c656e746573717565206d617474697320736f64616c6573206d0061757269732c20757420636f6e64696d656e74756d206d61676e6120636f6e006775652076656c2e2041656e65616e20706f72747469746f72206e6973692000616320657261742066617563696275732073757363697069742e205068617300656c6c757320656c656d656e74756d2074696e636964756e74207175616d20006e656320636f6e64696d656e74756d2e204375726162697475722066696e6900627573206e756c6c612076656c206c6163696e696120696d70657264696574002e204d616563656e61732066657567696174206d617474697320646f6c6f72002c206e656320616363756d73616e20697073756d2074656d706f722075742e002050686173656c6c757320617563746f7220666163696c69736973207275740072756d2e20536564207669746165206d69206e6f6e206f64696f2070656c6c00656e74657371756520626c616e64697420696e2061206d61676e612e0a0a5300656420696e206469616d20636f6e6775652c20636f6d6d6f646f20746f7274006f7220612c20657569736d6f64206c6967756c612e20496e2061632065666600696369747572206e756e632c2076656c20756c6c616d636f727065722069700073756d2e20416c697175616d2076656c206469616d206665726d656e74756d002c20736f6c6c696369747564696e20617263752065742c20656c656d656e7400756d2073617069656e2e2043726173206c656f206d657475732c2072686f6e006375732071756973206d617373612065752c20677261766964612069616375006c697320657261742e2043757261626974757220756c747269636573207369007420616d657420656e696d20757420617563746f722e2041656e65616e20610074206175677565206163206a7573746f2074656d70757320626962656e6475006d2073656420696d7065726469657420746f72746f722e204e756c6c616d2000736564206d61757269732073617069656e2e20447569732070656c6c656e740065737175652075726e6120696e2066696e69627573206d6f6c65737469652e00205072616573656e74206e6f6e207072657469756d206d61676e612c206e650063206c6163696e696120746f72746f722e2050726f696e2066617563696275007320656c656d656e74756d206c6f72656d2c2072686f6e6375732076756c7000757461746520657820616c69717565742061632e0a0a416c697175616d207400696e636964756e7420617263752073617069656e2c20616c697175657420730075736369706974206c656f20656c656d656e74756d2076697461652e204372006173206d617474697320617263752076656c206f726e617265206665726d65006e74756d2e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65007374696520657261742073656d7065722c20736564206c7563747573206e65007175652076756c7075746174652e2053757370656e6469737365206d616c650073756164612c20646f6c6f722076656c20756c74726963657320696d70657200646965742c206d69206e69626820756c74726963696573207475727069732c00206e6563207072657469756d206c696265726f20697073756d207669746165002072697375732e20416c697175616d20696e20636f6e677565206c61637573002c20666575676961742076756c7075746174652065726f732e20496e206c61006f72656574206e69626820696e2076756c7075746174652076657374696275006c756d2e205574206661756369627573206f726e617265206e756e63207369007420616d657420656c656966656e642e205072616573656e7420706c616365007261742073617069656e2076656c20656c69742074656d706f722062696265006e64756d2e204e756c6c612071756973207665686963756c6120617263752e002053757370656e646973736520736f64616c6573206c656f2061632075726e006120616c69717565742076756c7075746174652e20536564206d6f6c6c6973002c206c6163757320657520656c656966656e6420736f64616c65732c206d6100676e61206172637520766172697573206c656f2c20657520626c616e646974002066656c6973206572617420657420746f72746f722e205072616573656e74002074656d7075732073697420616d6574206d61676e61207669746165206f72006e6172652e20416c697175616d20656c656966656e642076656c206f64696f0020696420636f6e7365717561742e204d6175726973206574206e657175652000717569732073617069656e20706f737565726520756c74726963696573206500752073697420616d65742075726e612e20437261732072686f6e637573206500726f732076656c2073656d2070756c76696e61722066696e69627573206120006e6f6e2072697375732e0a0a536564206c6f626f72746973206f64696f20710075616d2c206e6f6e20637572737573206e756c6c6120616c697175616d206e006f6e2e20446f6e65632061726375206573742c20666163696c697369732069006e20666175636962757320612c2070686172657472612073697420616d657400206e69736c2e205175697371756520696163756c6973206c656f206e6f6e2000656c656d656e74756d20706c6163657261742e205365642076657374696275006c756d206c656f20616e74652c20616320636f6e76616c6c697320647569200073616769747469732069642e20496e20686163206861626974617373652070006c617465612064696374756d73742e20536564206d6f6c657374696520636f006e76616c6c69732066656c69732c20696e2070656c6c656e7465737175652000616e746520696e74657264756d20612e20566976616d757320706c6163657200617420656c656966656e6420616e74652e2050656c6c656e746573717565200073697420616d6574206f64696f207665686963756c612c207361676974746900732065737420656765742c20656c656d656e74756d206c6f72656d2e204d61007572697320656c6974206d61676e612c20636f6e6775652076656c2065726f0073206e65632c20696163756c6973206d616c65737561646120616e74652e2000566976616d757320696e20656666696369747572206f64696f2c20717569730020616c697175616d206e756c6c612e204e756c6c61207574206469676e69730073696d206475692e20496e206567657374617320666163696c69736973206c006f72656d2c206e6f6e20656c656d656e74756d20647569207665686963756c0061206e65632e204e756c6c61206d616c65737561646120706f72747469746f00722065782061206f726e6172652e204e756c6c61206e6f6e2076617269757300206f64696f2e2041656e65616e206e656320696d70657264696574207361700069656e2e20446f6e6563206e69736920617263752c2070756c76696e617220007072657469756d206d616c6573756164612061632c20706f72746120766974006165207175616d2e0a0a437572616269747572206d6f6c65737469652c206d006920696e74657264756d206c7563747573206375727375732c207269737573002073617069656e206c6f626f72746973206c656f2c206174206566666963690074757220617567756520656c6974207365642074656c6c75732e204e756e6300207375736369706974206c7563747573206e69736c2073697420616d65742000626962656e64756d2e20446f6e6563206e6f6e20637572737573207075727500732c206163206661756369627573206a7573746f2e2050726f696e2061756300746f7220766f6c7574706174206e756e632c20696e2074726973746971756500206e69736c20626962656e64756d2061742e2053757370656e6469737365200076656e656e61746973206e756e63206e69736c2c206e6563206772617669640061206c696265726f2074726973746971756520696e2e20517569737175652000706c6163657261742061206e69736c20616320706c6163657261742e204165006e65616e20756c74726963696573206c696265726f20696420697073756d200072686f6e6375732c2073697420616d657420616c697175616d20656e696d20006c75637475732e20447569732076656e656e6174697320646f6c6f72206574002074656c6c757320636f6e736571756174206c6f626f727469732e20446f6e00656320696e206469616d20706f73756572652c206665726d656e74756d207200697375732065742c2070756c76696e6172206e657175652e0a0a496e746567006572206e6563206e6962682065752074656c6c7573207072657469756d2069006e74657264756d206174206574206469616d2e204e756c6c612070656c6c65006e746573717565206f64696f20717569732065726f7320656765737461732000736f64616c65732e2043757261626974757220656765742074656d70757320006469616d2e2050656c6c656e74657371756520756c747269636965732061720063752065782c206120696d70657264696574206a7573746f20706f7375657200652076656c2e2050726f696e2076756c70757461746520736f64616c657320006d617373612061742070686172657472612e20496e7465676572206e6f6e20006d61737361207574206c6967756c6120666575676961742074656d7075732e0020517569737175652073616769747469732076656c206e756e6320757420740072697374697175652e2041656e65616e2075742074656d706f72206a757374006f2e20446f6e656320636f6e677565206e69736c20736564207175616d206d006f6c6573746965206d6f6c6c69732e204e756c6c616d20706c616365726174002c20747572706973206567657420677261766964612072757472756d2c206600656c69732076656c697420616c697175616d2065726f732c20696420656c65006d656e74756d206c6967756c612075726e6120696420657261742e204e756c006c61206e65632072686f6e6375732073656d2e205574206e656320766568690063756c612065782c2076656c2068656e647265726974206e657175652e2055007420706c6163657261742076656c69742076656c2076656c69742068656e640072657269742c207669746165206665726d656e74756d207269737573206d6f006c65737469652e0a0a4d6175726973206f726369206c65637475732c20696d0070657264696574207365642066696e69627573206e65632c20616c69717561006d2076656c206e6962682e20566573746962756c756d206672696e67696c6c006120616363756d73616e206e756e63206574206d6f6c65737469652e205574002065742065726174206a7573746f2e2050656c6c656e74657371756520677200617669646120617263752070757275732e2041656e65616e20696e206e6962006820766974616520617263752064696374756d2074696e636964756e74206900642065752066656c69732e205072616573656e7420657420656c697420696400206d6920636f6e736563746574757220616c697175616d2e2056657374696200756c756d20696e20656e696d2064696374756d2c20626962656e64756d206500726174206e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e0074657371756520636f6e76616c6c6973206f726369206e6973692c206e65630020756c74726963696573206f64696f20706f73756572652073697420616d6500742e0a0a4d616563656e61732073697420616d6574206665726d656e74756d00206e69736c2e20566573746962756c756d20616e746520697073756d20707200696d697320696e206661756369627573206f726369206c75637475732065740020756c74726963657320706f737565726520637562696c6961206375726165003b205072616573656e74206174206e756e6320696e206d61676e6120636f6e00736571756174207363656c657269737175652e204d616563656e617320696e00207175616d207574206a7573746f2074696e636964756e7420617563746f72002e2050686173656c6c757320757420646f6c6f72206d657475732e20496e200073656d706572206d6920736564206c6f72656d207068617265747261207268006f6e6375732e204675736365206567657420657374206c616f726565742c20007361676974746973206c696265726f2073697420616d65742c206665756769006174206e6962682e204d6f72626920646170696275732075726e6120616320007175616d206665726d656e74756d2072686f6e6375732e20446f6e65632063006f6e76616c6c697320657569736d6f64206469676e697373696d2e204375720061626974757220757420747269737469717565206c6967756c612e0a0a536500642072757472756d2074696e636964756e74207472697374697175652e204e00756e63206d69207175616d2c20637572737573206574207665686963756c610020656765742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e00656320617563746f722066696e69627573206f726e6172652e204d6f72626900207665686963756c612c206e69736c2076656c20636f6d6d6f646f20706f7200747469746f722c20646f6c6f72206e756e6320736167697474697320646961006d2c20656765742066617563696275732073617069656e2065782076656c20006d61676e612e204375726162697475722076656c206c6967756c61207369740020616d6574206c6967756c6120646170696275732066696e696275732e2045007469616d2073697420616d6574206c6f72656d206c65637475732e204e756c006c616d206665726d656e74756d206e69736c206c696265726f2c207669746100652074696e636964756e74207075727573206c6163696e696120717569732e00204d6f726269207574206d6f6c657374696520697073756d2c206575206d6f006c6573746965206c6967756c612e2050686173656c6c7573206574206c656300747573206a7573746f2e20566976616d7573206578206d61676e612c20636f006e7365717561742076656c206a7573746f2076656c2c2074656d706f722061006c697175616d20616e74652e205365642066696e6962757320736564206d6100737361207175697320636f6d6d6f646f2e20446f6e656320696e206e69626800206e65632074656c6c757320636f6e677565206469676e697373696d206567006574207669746165206e756c6c612e204475697320656c656966656e642070006c616365726174207269737573206120706c6163657261742e204d617572690073206e6563206c65637475732068656e6472657269742c207361676974746900732076656c697420636f6e64696d656e74756d2c206567657374617320647500692e0a0a4e616d20696163756c69732076656c697420717569732075726e610020706f7274612073616769747469732e2041656e65616e20636f6d6d6f646f00206e69736c206e656320697073756d206c6f626f727469732c20626962656e0064756d2065666669636974757220656e696d20636f6e64696d656e74756d2e002050726f696e206172637520656c69742c206665726d656e74756d2075742000656765737461732061742c206c616f726565742076656c206e69736c2e2049006e746567657220626962656e64756d20747572706973207574206469616d20006665726d656e74756d2c2065752074656d707573206c656f206672696e6769006c6c612e204d616563656e61732076656c697420617263752c20636f6e6469006d656e74756d20696d7065726469657420657261742065742c206661756369006275732076756c707574617465206c65637475732e2043757261626974757200206d6574757320656e696d2c206672696e67696c6c6120757420666163696c00697369732061632c20616363756d73616e20696e20697073756d2e204e756c006c616d207665686963756c61206c6163696e6961206d617373612c2076656c00206661756369627573206f64696f20636f6e64696d656e74756d2061742e20004d617572697320706f72747469746f722065726f73206d61676e612c20757400206d6178696d75732074656c6c7573206665726d656e74756d2069642e2056006976616d7573207574206c6563747573206f726e6172652c20706f7274746900746f72206469616d20656765742c20756c6c616d636f72706572206e696268002e20447569732076656e656e617469732074656d706f7220657261742c207500742076617269757320657374206c6f626f727469732076656c2e205068617300656c6c757320736564206578206c65637475732e205365642076656c207361007069656e20616c697175616d2c20696e74657264756d206475692069642c2000656c656966656e64206f7263692e0a0a5072616573656e74206174206c6f62006f72746973206d657475732e204e616d2074656d707573207175616d20647500692c206e6563206c7563747573206d617373612074696e636964756e742061002e2050656c6c656e74657371756520616363756d73616e2076656c697420750074206175677565206d617474697320636f6e76616c6c69732e205574206567006573746173206f64696f20656e696d2c206163207669766572726120616e74006520636f6e76616c6c69732075742e2041656e65616e20696e2064756920610074207175616d206665726d656e74756d2072757472756d2e20566976616d750073206567657420636f6e76616c6c6973206c65637475732e20457469616d2000657569736d6f64206672696e67696c6c6120746f72746f722c206e65632069006e74657264756d206a7573746f206d61747469732065752e204e756c6c616d00206d6178696d7573206e696268206469616d2c206575206c6f626f7274697300206a7573746f207072657469756d2076697461652e2051756973717565207400696e636964756e7420646f6c6f722061742075726e6120636f6e64696d656e0074756d2c207669746165206d616c6573756164612065737420706f7274746900746f722e2050656c6c656e746573717565207669746165206475692065782e0020566976616d757320766f6c757470617420697073756d207574207475727000697320656c656d656e74756d20706f7274612e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d617572697320736564200066656c6973206e756c6c612e205072616573656e742076656c207269737573002076656c69742e0a0a446f6e656320706f727461206174206469616d207365006d70657220616c69717565742e2041656e65616e20637572737573206c6f7200656d206e6f6e2076617269757320636f6d6d6f646f2e20536564206e65717500652065726f732c20656666696369747572206e6563206469616d20696e2c20007472697374697175652076697665727261206469616d2e2053757370656e64006973736520746f72746f72206475692c20657569736d6f64206e6563206e75006c6c612061632c20616c697175657420756c74726963696573206c6f72656d002e2050686173656c6c757320636f6e7365637465747572206575206573742000616320656765737461732e204e756e6320757420656c697420696e2070757200757320616363756d73616e20657569736d6f642e2043726173206c656f206f007263692c20677261766964612076656c20626962656e64756d20656765742c0020636f6e76616c6c697320696e2072697375732e2046757363652065676574002073656d7065722073617069656e2e0a0a536564206d6f6c65737469652070006c616365726174206c6967756c61206e656320766976657272612e20496e2000617420656666696369747572206d61676e612e204e616d2066696e6962757300206c6f72656d20657420726973757320756c747269636965732c2076656c2000637572737573206e65717565207363656c657269737175652e20496e7465720064756d206574206d616c6573756164612066616d657320616320616e74652000697073756d207072696d697320696e2066617563696275732e205365642069006e20656765737461732065726f732e2041656e65616e2074656d706f722c20006e69626820636f6d6d6f646f20626962656e64756d206c75637475732c207600656c6974206e756e6320696e74657264756d206f7263692c2073697420616d0065742074656d707573206c656f207075727573207669746165207269737573002e20457469616d207669746165207269737573206e6962682e2056657374690062756c756d206d6f6c65737469652063757273757320616e74652c206567650074206c6163696e6961206c656f206d6f6c65737469652076656c2e0a0a5375007370656e646973736520757420677261766964612073617069656e2e2056650073746962756c756d20616363756d73616e206e756e6320696e2064617069620075732073656d7065722e204e756e632076656c2073656d706572207175616d002e2050656c6c656e746573717565206861626974616e74206d6f72626920740072697374697175652073656e6563747573206574206e65747573206574206d00616c6573756164612066616d6573206163207475727069732065676573746100732e204675736365206d6f6c6573746965206672696e67696c6c61206c6f7200656d2c207175697320747269737469717565206d61676e6120756c6c616d63006f727065722073697420616d65742e2043757261626974757220766974616500206c6f72656d207574206a7573746f206c616f72656574207665686963756c00612061742061206469616d2e2053757370656e646973736520616c69717565007420636f6e73656374657475722065782c20757420636f6e736563746574750072206e6571756520636f6e7365637465747572206e65632e20496e74656765007220766974616520636f6e64696d656e74756d20746f72746f722e204e756e0063207365642073757363697069742073617069656e2e2050686173656c6c75007320656c656d656e74756d20657569736d6f642076656c69742c2065676574002064696374756d20646f6c6f7220756c6c616d636f727065722065752e0a0a0050686173656c6c75732061742064756920697073756d2e204e756e63206c75006374757320617563746f72206e69736c20657520617563746f722e20446f6e00656320636f6e76616c6c69732061726375206c6163696e6961206578207361006769747469732c20736564206f726e61726520616e7465206f726e6172652e00204e616d2074696e636964756e74206a7573746f207475727069732c2073650064206d617474697320616e746520736f6c6c696369747564696e207365642e0020536564206f726e61726520697073756d206e6962682c2061632074656d70006f72206d61676e612076617269757320696e2e204e616d206672696e67696c006c61206d61676e61206d692c2075742065676573746173206c6f72656d207600617269757320696e2e20536564206575206c75637475732073617069656e2e0020496e74656765722076656c206469676e697373696d20656c69742c2061740020706c616365726174207475727069732e20446f6e656320696e206e69626800206964206a7573746f206c6f626f727469732064696374756d2e20446f6e650063207068617265747261206f726369206e656320636f6e76616c6c69732073006f6c6c696369747564696e2e0a0a50656c6c656e746573717565207369742000616d6574206672696e67696c6c612073656d2c2061632073757363697069740020656c69742e20446f6e656320612074726973746971756520697073756d2c00206e6f6e20756c7472696365732065726f732e205072616573656e7420616c00697175616d20697073756d206567657420626962656e64756d20766f6c7574007061742e20447569732073697420616d6574206469616d20626962656e6475006d2c20617563746f72206e69736920656765742c206d6f6c6c697320746f7200746f722e204d61757269732065742076656c69742075726e612e205574206600656c6973206c65637475732c207072657469756d207365642074656d707573002073697420616d65742c206d6f6c6c6973207669746165206c65637475732e00204d61757269732073697420616d6574206f7263692065752074656c6c75730020666163696c697369732074696e636964756e742e20447569732068656e640072657269742066656c69732061206e6571756520617563746f7220636f6e670075652e204d6f726269206c6967756c61206573742c2070656c6c656e746573007175652076656c2073616769747469732065742c20666175636962757320650067657420656e696d2e0a0a517569737175652064696374756d206e6973692000696420736f6c6c696369747564696e207072657469756d2e20496e7465726400756d206574206d616c6573756164612066616d657320616320616e74652069007073756d207072696d697320696e2066617563696275732e2053757370656e006469737365207665686963756c612076656e656e617469732072697375732c00206174207665686963756c61206c616375732072757472756d206e6f6e2e200050656c6c656e746573717565206861626974616e74206d6f72626920747269007374697175652073656e6563747573206574206e65747573206574206d616c006573756164612066616d65732061632074757270697320656765737461732e0020496e207075727573206d617373612c206d6f6c657374696520696e206e6900626820612c2076656e656e6174697320626c616e64697420656c69742e205000686173656c6c75732073617069656e206469616d2c2074696e636964756e740020736f64616c6573206469616d2076697461652c20636f6e67756520736167006974746973206f64696f2e2043757261626974757220657569736d6f64206e00656320616e746520736564207072657469756d2e2050656c6c656e74657371007565206d6f6c65737469652076617269757320656e696d2c206e6f6e20666100756369627573206c656f2073616769747469732061632e20437572616269740075722071756973206d61757269732071756973206c6967756c6120756c6c61006d636f72706572206d616c65737561646120736564206575206c6563747573002e0a0a53757370656e64697373652076656c206d61676e61206469676e69730073696d2c2064696374756d206e657175652073757363697069742c2062696200656e64756d206c616375732e205175697371756520717569732066656c69730020617263752e2050686173656c6c75732065726174206c656f2c2073656d7000657220617420646f6c6f7220656765742c2076656e656e617469732072686f006e6375732065782e2043726173206d6f6c6c6973206e696268207365642061007567756520736f64616c65732c2073697420616d6574206d6f6c6c6973207000757275732070686172657472612e2043726173206e6563206d69207175697300206c656f20696d7065726469657420616363756d73616e20757420696420710075616d2e204e616d206e69736c20656c69742c206f726e6172652065752075006c7472696365732076697461652c20706f72747469746f72206574206c696700756c612e2050656c6c656e746573717565207665686963756c6120656c69740020657420697073756d20636f6e7365717561742c206e6563206d6f6c6c6973002065737420696e74657264756d2e2055742074656d706f722063757273757300206d6f6c65737469652e204d61757269732074696e636964756e742061636300756d73616e206e756e6320696420696d706572646965742e20457469616d20006d616c6573756164612c206e6973692061632076756c7075746174652069610063756c69732c206e697369206f72636920706c616365726174206e756c6c61002c206e65632074696e636964756e742074656c6c757320656c69742071756900732075726e612e20457469616d206c61637573206d617373612c2068656e6400726572697420757420636f6d6d6f646f20612c20696e74657264756d20696400206e69736c2e20496e746567657220766974616520616e7465206672696e6700696c6c61206d692074696e636964756e7420636f6e73656374657475722e20004e756c6c6120636f6e7365637465747572206f726e61726520626962656e6400756d2e0a0a55742073697420616d657420657569736d6f642074656c6c7573002e2050656c6c656e746573717565207072657469756d2074696e636964756e0074206475692065752073656d7065722e205365642076656c2065726f73206e006f6e20646f6c6f7220696163756c697320696e74657264756d20736564207100756973206f7263692e20496e2073656d706572206c6f626f7274697320646900676e697373696d2e205365642066617563696275732066657567696174207000656c6c656e7465737175652e2050656c6c656e74657371756520736f6c6c69006369747564696e206f64696f20736564206c6563747573207361676974746900732c206e6f6e20756c7472696369657320697073756d2072757472756d2e200053656420736564206f726e6172652065782e0a0a5072616573656e7420766900746165206d6f6c6573746965207175616d2c20616320626c616e646974206f0064696f2e20457469616d2065676573746173206375727375732075726e612000696420657569736d6f642e204e616d20616c6971756574206172637520657500206c7563747573206c616f726565742e20457469616d20696d7065726469650074207175616d2076656c20636f6e73657175617420626c616e6469742e204d00617572697320696e74657264756d2c206469616d20766172697573206c616300696e696120616c69717565742c2076656c69742074656c6c757320706861720065747261206a7573746f2c20656765742073757363697069742075726e6120006e756c6c612071756973206c656f2e204e756c6c61206578206e69736c2c2000666175636962757320617420626c616e6469742061632c2063757273757320006120697073756d2e20566976616d75732071756973206469616d20636f6e670075652c20657569736d6f642075726e612073697420616d65742c206672696e0067696c6c6120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e67007565206c696265726f2074656d706f7220756c747269636965732e2050656c006c656e7465737175652070756c76696e61722073617069656e20766974616500206e756e63207363656c65726973717565206672696e67696c6c612e204675007363652068656e64726572697420656666696369747572206661756369627500732e20416c697175616d2070757275732061756775652c206c756374757320006e6f6e20636f6e76616c6c697320717569732c206d6178696d7573206e6f6e00206475692e0a0a446f6e65632070656c6c656e74657371756520657261742000657520657374206c6163696e696120616363756d73616e2e2050726f696e20006d6f6c6c69732073656d20646f6c6f722c206964206d6f6c6c6973206c656300747573207669766572726120696e2e204e756e632071756973206d6173736100207661726975732c206665726d656e74756d206c656f2076697461652c206c006f626f72746973206e657175652e205175697371756520756c6c616d636f7200706572206a7573746f20766974616520636f6e67756520656c656966656e64002e20457469616d206574206c61637573206573742e20496e7465676572207400757270697320617263752c20616363756d73616e2076656c20697073756d2000656765742c206d616c65737561646120756c6c616d636f72706572206a757300746f2e204d6175726973206e6f6e2065782074696e636964756e742c20756c00747269636573206c616375732061742c20626c616e646974206f64696f2e2000566573746962756c756d2067726176696461206e65632073617069656e206e006563206469676e697373696d2e2053757370656e64697373652074656d706f007220696e206e69736c2076656c206d6f6c6c69732e204d616563656e6173200067726176696461206c616375732074656c6c75732c20657420756c7472696300696573206e756c6c612074696e636964756e7420612e20416c697175616d20006572617420766f6c75747061742e20446f6e65632065726f73206c6563747500732c206469676e697373696d2069642073617069656e2061742c20706c6163006572617420666163696c697369732070757275732e20566976616d757320700072657469756d2c206d69206120756c6c616d636f727065722074696e63696400756e742c206475692074656c6c757320626c616e646974206d617373612c20006e65632066696e6962757320657374206e69736c2071756973206e6962682e0020467573636520646170696275732064756920696e20636f6e73656374657400757220706c6163657261742e20467573636520736f6c6c696369747564696e00206567657374617320657261742c2073697420616d657420616363756d7361006e206c656f2074696e636964756e7420696e2e204d6f7262692065666669630069747572206d61757269732069642064696374756d20666163696c69736973002e0a0a55742075726e61206d61676e612c20706f72747469746f722061632000656666696369747572206e6f6e2c20656666696369747572206174206d61730073612e2041656e65616e2073656420656c6974206e6f6e2065782073757363006970697420616363756d73616e2e20416c697175616d207669746165206c65006f2073616769747469732c2067726176696461206c6967756c612065742c200070756c76696e617220646f6c6f722e20457469616d20616320746f72746f7200206c6f72656d2e2050686173656c6c7573206567657374617320696163756c00697320677261766964612e204e756e63206e6f6e206e756e63206e6962682e0020566976616d757320766974616520617563746f722073617069656e2e20430072617320706f7375657265206e756c6c61206f64696f2c20657520706f727400612065782076656e656e6174697320612e204e616d207269737573206e65710075652c20657569736d6f642075742063757273757320656765742c2066617500636962757320736f6c6c696369747564696e20746f72746f722e2043757261006269747572207574206d65747573206e6f6e206469616d20617563746f72200074696e636964756e742e20496e7465676572206d616c65737561646120707200657469756d2076656e656e617469732e20566976616d75732072686f6e637500732074696e636964756e74206c6f72656d207175697320756c74726963696500732e2050686173656c6c7573206f726e6172652065726f732065742068656e0064726572697420636f6d6d6f646f2e0a0a4375726162697475722069616375006c697320636f6e7365717561742073656d20717569732070656c6c656e746500737175652e2050726f696e206d617474697320656e696d20696e2065737420007361676974746973207661726975732e204d6f726269206e65632074696e63006964756e742076656c69742c206575206469676e697373696d20657261742e0020416c697175616d206572617420766f6c75747061742e205072616573656e00742066696e696275732074656c6c757320696e2068656e6472657269742076006573746962756c756d2e20437572616269747572206d6f6c6c69732074656c006c7573206d692c206e6563206d616c6573756164612076656c6974207375730063697069742061742e205365642065726174206e657175652c207275747275006d20736564206665726d656e74756d2076656c2c2070656c6c656e74657371007565206e6f6e20616e74652e204e616d20736f64616c65732070756c76696e006172206c6f72656d2c2065742074696e636964756e74206d6173736120646900676e697373696d2061632e20457469616d206d61737361207175616d2c2076006f6c7574706174206574206c6f626f727469732073697420616d65742c207600656e656e6174697320696420656e696d2e0a0a446f6e656320706f72746120006e69736c20657520697073756d20706f72747469746f722c2065676574207000756c76696e6172206c6f72656d206d6178696d75732e205574206163206e6500717565206c6f72656d2e204e756c6c612061206c6f72656d2065676574206c00656f206d6f6c6c6973206469676e697373696d2e20566573746962756c756d0020696d706572646965742073656d706572206c65637475732e204e756c6c6100206574206469616d206574206e756c6c61206f726e61726520736f6c6c69630069747564696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c00207665686963756c61206a7573746f2061742c2074696e636964756e74207300617069656e2e2043757261626974757220657569736d6f642076697665727200612072686f6e6375732e204e756e6320766172697573206f726369206e656300206d6173736120766976657272612c2065676574206c7563747573206c616300757320756c7472696365732e20437572616269747572206375727375732065006c697420646f6c6f722e20467573636520616c6971756574206f726e617265002065726f732c20612067726176696461206578206d616c657375616461207600656c2e204e616d206163206d61676e6120636f6e7365717561742c2076617200697573206d61757269732065752c206665726d656e74756d206c696265726f002e0a0a5072616573656e7420657420646f6c6f722074656d706f7220647569002074696e636964756e742064696374756d2e2050656c6c656e74657371756500206d6178696d757320697073756d20657520656765737461732074656d707500732e20467573636520616c697175616d20696d7065726469657420616e74650020657420626c616e6469742e204d61757269732068656e647265726974206c006f626f72746973206c616f726565742e2041656e65616e20706f7274612076006f6c757470617420697073756d2c206120736f6c6c696369747564696e20610072637520756c6c616d636f72706572206e6f6e2e20536564207661726975730020706c61636572617420656e696d206575207072657469756d2e20496e206a007573746f20617263752c20656c656d656e74756d20757420616c6971756574002065752c206c616f72656574206964206c656f2e20496e7465676572207365006420617263752061206469616d206c75637475732072686f6e6375732e20550074206567657420636f6e677565206d657475732c2069642072757472756d20006c65637475732e0a0a4d6f726269207665686963756c6120616363756d7361006e206e69736c2c20617420706f727461206c616375732066617563696275730020656765742e2053757370656e64697373652076756c707574617465206d6900206e6f6e20766f6c757470617420666575676961742e2051756973717565200064696374756d20706f72747469746f72206f64696f2073697420616d65742000636f6e6775652e2041656e65616e20657569736d6f64207072657469756d2000656c697420706f72747469746f722066696e696275732e204d616563656e610073207365642076756c7075746174652072697375732e2041656e65616e206500726f7320656e696d2c2076656e656e6174697320696420636f6e7365717561007420612c2072686f6e637573206f726e6172652073656d2e20517569737175006520626962656e64756d20766f6c757470617420616e74652c20616320706f0073756572652073617069656e20737573636970697420656666696369747572002e204e756c6c61206f726e617265206e696268206163206d6175726973207600756c7075746174652c206e6f6e207068617265747261206469616d2076697600657272612e20436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e2050726f696e20617420766573746962756c756d2076656c69742e002053656420766976657272612076656e656e61746973206d692c207574206d00616c657375616461206e756c6c612e204475697320706861726574726120690064206e69626820617420636f6e6775652e20536564206c6163696e6961206500726f732061206572617420766976657272612c20612074696e636964756e740020617567756520616363756d73616e2e2050656c6c656e746573717565206c006f626f7274697320616363756d73616e2073656d2c2065676574206d616c65007375616461206e756c6c61206665726d656e74756d2073697420616d65742e0020496e20616363756d73616e206c616f72656574206e69736c2076697461650020666575676961742e20416c697175616d206572617420766f6c7574706174002e0a0a4475697320696420616e7465206c6967756c612e2050686173656c6c00757320736167697474697320706c61636572617420706f73756572652e204d00616563656e61732076697461652076697665727261206c616375732c206d6f006c6c6973206d616c657375616461206c65637475732e2050656c6c656e7465007371756520696e20657374206c6163696e69612c20656c656d656e74756d20006e756e6320656765742c2070656c6c656e746573717565206a7573746f2e20005175697371756520636f6e67756520747572706973206e6f6e206f64696f2000626c616e64697420736167697474697320677261766964612065742069707300756d2e204e756c6c616d206c6f626f72746973206e6571756520616320656c00697420636f6e76616c6c697320616363756d73616e2073697420616d6574200070756c76696e6172206d617373612e20446f6e656320657520636f6d6d6f64006f20616e74652c2073697420616d657420756c6c616d636f7270657220646f006c6f722e2044756973206d6175726973206c6967756c612c20656c656d656e0074756d2061742066617563696275732061632c20616c697175616d20696e200066656c69732e205072616573656e74206c6f626f72746973206578207369740020616d6574206e69736c20756c74726963696573206c6163696e69612e2056006976616d757320617563746f722c2073656d20717569732076657374696275006c756d207363656c657269737175652c2073617069656e206e69736c207275007472756d206c696265726f2c2073697420616d657420696e74657264756d20006e69736c206a7573746f207669746165206c65637475732e20566976616d75007320696d70657264696574206e756c6c6120657520657261742076656e656e00617469732c20736564206d6f6c657374696520646f6c6f7220766568696375006c612e20517569737175652076656c2061726375207365642073656d207365006d706572206375727375732e2050656c6c656e746573717565206d61747469007320656c656966656e64207269737573206574206d6f6c6c69732e20557420006c6f626f727469732c2065737420736564206665726d656e74756d2073656d007065722c2075726e612072697375732064617069627573206475692c2061200074656d707573206d6175726973206e69736c206174206469616d2e2056697600616d7573206469676e697373696d20666163696c6973697320636f6e7365630074657475722e20496e20706f737565726520736f6c6c696369747564696e2000656c656d656e74756d2e0a0a457469616d20697073756d206573742c206d61006c657375616461206120666575676961742073697420616d65742c206d6f6c00657374696520656765742066656c69732e2041656e65616e2074656d70757300206672696e67696c6c61206469616d20696e20616c697175616d2e20446f6e0065632073697420616d65742072757472756d206469616d2e2050686173656c006c757320756c6c616d636f72706572206d617474697320616363756d73616e002e2053757370656e646973736520616c6971756574207669746165206e6973006920616320766f6c75747061742e2050726f696e207075727573206d6175720069732c20696d706572646965742073697420616d657420647569206e6f6e2c00207665686963756c6120637572737573206f7263692e20446f6e6563206574002074656c6c7573206574206d6574757320766573746962756c756d20656c65006d656e74756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74006573717565206c6967756c61206e69736c2c20616c697175616d206163206c006967756c6120706f73756572652c20656c656d656e74756d2068656e64726500726974206d61757269732e204d617572697320666163696c69736973206665006c697320696e2072757472756d20696163756c69732e204e756e632066657500676961742073656d20612068656e6472657269742072757472756d2e20496e007465676572206d6f6c65737469652064696374756d2066696e696275732e200041656e65616e206e656320766f6c7574706174206c6967756c612e205175690073717565206d617373612070757275732c2070686172657472612075742069006163756c6973207365642c20706f72747469746f7220616320616e74652e2000416c697175616d206d6173736120656e696d2c2076756c707574617465206e006563206d692069642c20756c6c616d636f72706572206665756769617420740075727069732e0a0a4e756e63207669766572726120647569206c6f72656d2c002073697420616d657420656666696369747572206d65747573207375736369007069742076656c2e20566573746962756c756d2073697420616d657420706f0072747469746f722065782e205574206d616c657375616461206c656374757300206e6563206d65747573206672696e67696c6c612c206e65632073656d706500722075726e61206d616c6573756164612e20557420756c6c616d636f7270650072206e697369206174206e69736c20696d706572646965742070756c76696e0061722e20566573746962756c756d2065726f7320646f6c6f722c20766f6c750074706174206964206f64696f2069642c2074656d70757320636f6e76616c6c0069732072697375732e2043726173206575206661756369627573206c69626500726f2e2050656c6c656e74657371756520696163756c69732076657374696200756c756d20646f6c6f72206964206566666963697475722e204675736365200061206e756e6320717569732075726e61206469676e697373696d2064617069006275732e2050726f696e2076656c20696163756c69732073656d2c2061742000636f6e76616c6c6973206475692e20496e2069642066656c69732074656c6c0075732e20446f6e6563207068617265747261206d6f6c65737469652061726300752c2061206d616c6573756164612065737420677261766964612069642e0a000a5175697371756520616c6971756574206c6967756c61207574206f7263690020706f73756572652c207365642074696e636964756e74206d61676e612075006c747269636965732e204d616563656e61732073697420616d657420756c6c00616d636f72706572207475727069732e20536564206e6563206d6f6c657374006965207175616d2e20566976616d7573206d617474697320636f6e64696d65006e74756d206f7263692c206e6f6e206375727375732066656c69732074656d007075732065752e2053656420656765742072697375732075726e612e2056690076616d7573206f726e61726520756c6c616d636f7270657220617263752061006320616c69717565742e205072616573656e74206d616c657375616461207000756c76696e6172206c65637475732c2073697420616d65742064696374756d00207269737573206d616c6573756164612061742e204e756c6c612061206d61006c657375616461206c65637475732c2065676573746173206d616c657375610064612066656c69732e20496e20696420696e74657264756d206e756e632e2000496e746567657220666163696c69736973206469676e697373696d20616e74006520717569732070686172657472612e0a0a446f6e65632070656c6c656e7400657371756520656e696d20766974616520616e746520756c7472696365732c0020617420657569736d6f64206d617373612066696e696275732e20517569730071756520636f6e67756520756c7472696369657320706f72747469746f722e002043757261626974757220756c7472696369657320626c616e64697420637500727375732e204675736365206567657420647569206375727375732c2070680061726574726120617263752076656c2c20706c616365726174207075727573002e2043726173206e6563206d6175726973206c656f2e204e616d20707265740069756d207072657469756d20766f6c75747061742e2050686173656c6c757300206e657175652074656c6c75732c206672696e67696c6c612073697420616d00657420666163696c6973697320717569732c20616363756d73616e20736365006c657269737175652073656d2e204e756e632076697461652066656c69732000736564206d6173736120756c747269636965732064617069627573206e6f6e0020657520656e696d2e20496e20706f72747469746f722074656d706f72206e0069736c2c206567657420666163696c697369732075726e612066696e69627500732076697461652e205365642070656c6c656e746573717565206e656320740075727069732075742073656d7065722e205072616573656e74206566666963006974757220656c656966656e64206f64696f2e0a0a4e756c6c612061756374006f7220636f6e64696d656e74756d206e756c6c612e204d616563656e617320006d616c657375616461206d61757269732061206c6967756c6120756c7472690063657320636f6d6d6f646f2065742076656c206469616d2e2053757370656e00646973736520696e74657264756d2074696e636964756e74206c6967756c61002c206120626962656e64756d206d6920696163756c697320612e2053656420006d616c657375616461206d657475732076656c206c696265726f206469676e00697373696d2c2073697420616d657420636f6e677565207175616d2074696e00636964756e742e204375726162697475722066696e696275732074696e63690064756e742073616769747469732e20517569737175652073617069656e2065006e696d2c20736f64616c6573206163206469616d20612c206469676e69737300696d206c6163696e69612074656c6c75732e20446f6e65632065666669636900747572206c616375732072686f6e637573206672696e67696c6c6120636f6d006d6f646f2e20496e20696420656c69742076656c206c6f72656d20736167690074746973206f726e6172652e204372617320757420646f6c6f72206c696775006c612e2053656420656c656966656e64206c656374757320766172697573200066696e696275732072757472756d2e204675736365206e6563206175677565002061206a7573746f207661726975732074656d706f722073656420766974610065206c6f72656d2e204d6175726973206174206c696265726f20696e2065730074206375727375732064696374756d2075742076697461652065726f732e200050686173656c6c75732072757472756d2c206c65637475732076697461652000696e74657264756d20626c616e6469742c206c6f72656d2075726e61207669007665727261206d617373612c2071756973207363656c65726973717565206600656c6973206c6563747573206574206f64696f2e204d61757269732066616300696c69736973206c656f207475727069732c20696d70657264696574206665007567696174206475692074656d706f722073697420616d65742e0a0a4d61650063656e61732061206c656f2061756775652e20437572616269747572206e6f006e20697073756d2073697420616d657420656c6974206c616f72656574207600656e656e617469732065676574206e6f6e206d61676e612e204375726162690074757220616c697175616d20696163756c697320706f72747469746f722e2000536564206163206c6f72656d206120646f6c6f7220616c6971756574206c7500637475732e2050726f696e206c6163696e696120697073756d20616e74652c002073697420616d657420696d70657264696574206c6563747573206469676e00697373696d20656765742e20566573746962756c756d20656666696369747500722073697420616d65742073656d207175697320736f64616c65732e2056690076616d75732070756c76696e6172207068617265747261206e69736c2076690074616520616363756d73616e2e204475697320696e74657264756d20636f6e00677565207661726975732e20446f6e65632061207361676974746973206e690073692c207175697320656c656d656e74756d206475692e20536564206c756300747573206c616f72656574206c656f206567657420756c7472696365732e0a000a446f6e6563206120617567756520656765737461732c2076756c70757461007465206573742076656c2c206c616f72656574206c616375732e20416c69710075616d20646f6c6f7220646f6c6f722c20706c61636572617420696e2065670065737461732073697420616d65742c20616c69717565742061206f7263692e0020496e2076756c70757461746520626c616e64697420656c69742c2068656e0064726572697420636f6d6d6f646f2075726e6120626962656e64756d206575002e20457469616d20617567756520616e74652c206d6f6c6573746965207175006973206f64696f2065752c2074656d70757320636f6d6d6f646f206e696268002e205574206d6174746973206c6163696e69612073617069656e2075742064006170696275732e20457469616d20636f6e736571756174206e6f6e206f6469006f2071756973206375727375732e204e756e6320616c69717565742062696200656e64756d20646f6c6f722065752073656d7065722e20566976616d757320006163206d692073697420616d65742061726375206c6163696e6961207275740072756d2073697420616d65742061206e756c6c612e2050686173656c6c75730020657261742072697375732c206c75637475732065676574206c6f72656d200076697461652c206d616c65737561646120626962656e64756d206d65747573002e204e616d206964206d617474697320656e696d2c206665756769617420730061676974746973206d657475732e2050686173656c6c7573206c7563747573002074757270697320657261742c20657420766172697573206d61676e61207200686f6e6375732069642e0a0a437261732076617269757320736167697474690073206f64696f20757420677261766964612e20536564206f726e6172652070006f7274612076756c7075746174652e20496e746567657220706f7375657265002061726375206c6f72656d2c206964207363656c657269737175652073656d002065666669636974757220612e205365642076656c20617563746f722069700073756d2e2050656c6c656e7465737175652069642065726f73206574206c6f0072656d20616363756d73616e20616363756d73616e20656765742071756973002065726f732e204e756e632063757273757320636f6e64696d656e74756d20006d692c206e65632066617563696275732070757275732070756c76696e6172002070686172657472612e205365642073656420736f64616c6573206e756e63002e2046757363652070756c76696e617220756c747269636573206d692c206900642072757472756d206d69206672696e67696c6c612061632e205365642069007073756d207175616d2c20756c74726963696573207669746165206c616369006e69612076697461652c206665726d656e74756d206e6f6e206d6175726973002e205072616573656e74206461706962757320756c6c616d636f7270657220006c6967756c612c206567657420756c6c616d636f727065722073656d2064610070696275732065752e2046757363652073697420616d65742076657374696200756c756d206c616375732e205072616573656e74207365642074726973746900717565206c616375732c2076656c2070756c76696e6172206573742e0a0a460075736365206e6563206e6571756520646f6c6f722e20566573746962756c75006d20616c697175616d206c6967756c612075742064696374756d2073656d700065722e20457469616d206d616c657375616461206d6574757320656765742000656c697420636f6e64696d656e74756d20636f6e7365717561742e205375730070656e646973736520736167697474697320656e696d207175616d2c20696e0020756c74726963696573206c656f206461706962757320717569732e205065006c6c656e7465737175652063757273757320766172697573206e6973692c200076656c20736167697474697320656c6974206d6178696d7573206e6f6e2e200053757370656e646973736520746f72746f72206f64696f2c207068617265740072612076656c206475692061632c20656c656d656e74756d2076756c707574006174652074656c6c75732e20416c697175616d20696420666163696c69736900732065782e2044756973206e6563206672696e67696c6c61206e69736c2e2000467573636520736564206672696e67696c6c612065782e20467573636520750074206d6175726973206574207175616d207669766572726120696e7465726400756d20612061742065726f732e20416c697175616d20616363756d73616e2000657261742075742074656c6c7573206469676e697373696d20696163756c6900732073656420657420746f72746f722e2050726f696e20736564206175677500652073697420616d6574206d657475732072757472756d20677261766964610020696e2076656c206e69736c2e20496e746567657220706f73756572652061007263752069642065726f73206665726d656e74756d2074656d706f722e0a0a00557420756c74726963657320697073756d206f7263692e204d61757269732000617563746f72206d6178696d75732072697375732c20717569732066696e6900627573206e756c6c612065666669636974757220696e2e204e616d20756c74007269636573206e6571756520616320657820666163696c697369732c20696e002074656d707573206c6967756c61206c6f626f727469732e204372617320700068617265747261206c6f72656d20696e74657264756d206e65717565206865006e64726572697420617563746f722e2050686173656c6c7573206e6f6e207200757472756d206c696265726f2c20617420736f64616c657320697073756d2e0020496e20756c6c616d636f72706572206578206c65637475732c207369742000616d6574207068617265747261206e756c6c6120636f6e76616c6c6973207200686f6e6375732e2053757370656e6469737365206e6f6e20656c6974206c6f0072656d2e205072616573656e7420756c6c616d636f72706572206e756c6c61002076656c20637572737573206469676e697373696d2e2041656e65616e2073006f64616c657320746f72746f72206f64696f2c20617420656c656966656e6400206c6967756c61206469676e697373696d2073697420616d65742e2044756900732076656c20736f6c6c696369747564696e2074656c6c75732e204d61656300656e617320717569732070656c6c656e746573717565206475692e204d6175007269732071756973207361676974746973206e756e632e2044756973207275007472756d206d616c657375616461206c6967756c612065752070756c76696e0061722e0a0a41656e65616e206772617669646120706f727461207175616d20007365642070656c6c656e7465737175652e2050656c6c656e7465737175652000766573746962756c756d20626962656e64756d207472697374697175652e2000566573746962756c756d20696e206572617420656e696d2e2050726f696e200065726f73206f7263692c2072686f6e63757320616320616c697175616d206e006f6e2c207072657469756d2061206f7263692e20566573746962756c756d200074656d7075732c2076656c6974206d616c657375616461206c6163696e69610020646170696275732c2075726e61206c6f72656d206672696e67696c6c6120006d617373612c20696e206d6178696d757320656e696d20656e696d20657420006e69736c2e204e616d207669766572726120636f6e64696d656e74756d206c006967756c6120696e20696d706572646965742e20536564207175697320656c00656d656e74756d206a7573746f2e204e756c6c61206f726e61726520636f6e00736563746574757220656e696d2061742074696e636964756e742e2045746900616d2073697420616d6574206c616f7265657420697073756d2e0a0a45746900616d20666163696c697369732065737420706f72747469746f722c2066696e00696275732066656c69732065742c207375736369706974206c65637475732e002041656e65616e20706c616365726174206567657374617320616c6971756500742e204d617572697320657420656e696d206c65637475732e204d61656365006e61732070656c6c656e746573717565206d6f6c6c6973206d69206469637400756d20636f6e6775652e205072616573656e742076656c2066656c6973206c00616f726565742c20636f6e7365637465747572206e756c6c61206e6f6e2c2000666575676961742074656c6c75732e2053656420616c697175616d2076656c006974207365642073656d20706c616365726174207361676974746973206174002073697420616d6574206c696265726f2e2051756973717565206d6174746900732072757472756d20656e696d2c2073656420656c656d656e74756d207665006c69742e2050686173656c6c7573206e6f6e206c616f72656574206f64696f002e2043757261626974757220656c656966656e64206f64696f207369742061006d657420756c7472696369657320756c6c616d636f727065722e20496e20650067657420726973757320756c7472696365732c207665686963756c61206c65006374757320696e2c20616c6971756574207475727069732e0a0a5068617365006c6c7573206e6f6e206d6574757320617563746f722c20636f6e736563746500747572206e69736c2061742c207361676974746973207175616d2e20507261006573656e7420746f72746f722074656c6c75732c2074656d706f72206e6f6e002070686172657472612069642c207661726975732061742070757275732e2000536564206120636f6e64696d656e74756d206e6962682e205072616573656e0074206c656f206e756e632c20756c6c616d636f72706572207665686963756c006120766573746962756c756d2074696e636964756e742c206665726d656e7400756d20757420616e74652e20496e206f726e617265206c61637573206e6f6e00206c696265726f20736f6c6c696369747564696e2c206575206665756769610074206e756c6c6120626c616e6469742e2050656c6c656e74657371756520680061626974616e74206d6f726269207472697374697175652073656e656374750073206574206e65747573206574206d616c6573756164612066616d6573206100632074757270697320656765737461732e204e756e632065676574206e756e00632073697420616d6574206d61757269732070686172657472612076657374006962756c756d20657520766974616520656e696d2e20496e20766f6c7574700061742073617069656e2065676574206c65637475732074696e636964756e740020766f6c75747061742e20416c697175616d207365642076697665727261200075726e612e204675736365206c6563747573206d657475732c20756c747269006365732076656c20657569736d6f642065742c20616c6971756574207365640020746f72746f722e2050686173656c6c757320626c616e6469742070656c6c00656e74657371756520756c747269636965732e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e204e756c6c61206469676e697373696d2c200076656c6974207175697320666163696c697369732072686f6e6375732c206e00756c6c612066656c697320747269737469717565206d61757269732c2065750020636f6d6d6f646f206c656f206f726369206174206e6973692e2046757363006520636f6e736563746574757220746f72746f7220657420706861726574720061207665686963756c612e204e756e63207665686963756c612c206d65747500732073697420616d657420657569736d6f642064696374756d2c20646f6c6f0072206d6574757320616363756d73616e206573742c20696e20696163756c690073206d61737361206c696265726f206e6f6e206c65637475732e0a0a496e2000617420636f6e736571756174207475727069732e204675736365206d69206e00756c6c612c206672696e67696c6c6120757420766172697573207669746165002c20747269737469717565206174206e6973692e204e756c6c61206964206d00692065726f732e204d6f726269206469616d20616e74652c2076656e656e610074697320696e2073757363697069742076656c2c2074696e636964756e7420007669746165206f64696f2e204d61757269732068656e647265726974206e6f006e206172637520696420636f6e73656374657475722e205072616573656e740020616c697175616d206e756e632076656c206d61676e61207665686963756c006120616c69717565742e204e616d20636f6e7365637465747572206e756c6c006120717569732075726e6120696163756c697320756c6c616d636f72706572002070656c6c656e74657371756520657420617263752e20496e746567657220006163206c616f726565742076656c69742e2050656c6c656e7465737175652000757420616e7465207175616d2e20566976616d75732061206d617474697320006c656f2c2069642074656d707573206d692e204675736365207363656c657200697371756520646170696275732070757275732073656420616c697175616d002e0a0a46757363652076656c20656e696d2070656c6c656e7465737175652c0020656c656d656e74756d206469616d2065752c2076756c707574617465207600656c69742e204e756e63206c696265726f2074656c6c75732c20656c656d65006e74756d206964207175616d2073697420616d65742c20617563746f722070006f72747469746f722070757275732e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e20457469616d206d6f6c6573746965206e756e632000736f64616c657320636f6d6d6f646f20696163756c69732e204e616d20717500697320656c69742061206c696265726f20616c697175657420636f6e64696d00656e74756d207669746165206163206d692e20457469616d20756c7472696300657320756c74726963696573206d61676e6120766974616520706f7375657200652e20566976616d757320757420657569736d6f642076656c69742e20437200617320736f64616c6573206c6163696e6961206d61676e612c207175697320006665726d656e74756d20657261742064696374756d2073697420616d65742e002046757363652074696e636964756e74206c696265726f206574206e657175006520747269737469717565206375727375732e204372617320616320646f6c006f72206c6967756c612e2050726f696e206567657420696d7065726469657400206d61757269732e20416c697175616d206469616d20646f6c6f722c2066610063696c697369732076656c206e69626820656765742c20636f6e7365717561007420766573746962756c756d206c696265726f2e20437572616269747572200076756c7075746174652066617563696275732061756775652065676574207300757363697069742e204e756e632074696e636964756e742074656c6c757320007574206d6f6c6c6973206d6178696d75732e2050726f696e2076657374696200756c756d206c616f726565742073617069656e2c206e6563206672696e6769006c6c61206e6973692074656d70757320696e2e0a0a566573746962756c756d0020616e746520697073756d207072696d697320696e20666175636962757320006f726369206c756374757320657420756c74726963657320706f73756572650020637562696c69612063757261653b20566573746962756c756d2066616369006c697369732c20707572757320657520706f7375657265206c6163696e6961002c20707572757320657374206c616f72656574206e69736c2c206e65632076006f6c757470617420616e746520657261742076697665727261206e756c6c61002e204e756c6c6120666163696c6973692e20496e206e656320706f72746120006d657475732e20446f6e656320666163696c6973697320646f6c6f72207369007420616d6574206f64696f20616c697175616d2c206567657420706f7274740069746f7220697073756d2076756c7075746174652e204d6175726973207665006e656e61746973206d61676e61206575206578206f726e6172652c2069642000736f6c6c696369747564696e20616e746520636f6e6775652e2050656c6c65006e7465737175652075726e61206f7263692c20756c747269636965732076690074616520706f73756572652075742c20756c7472696365732071756973207400656c6c75732e20536564206e6f6e20656c656966656e64206d692c20657520007472697374697175652073656d2e2041656e65616e2074656d707573206d61007373612065752067726176696461206d616c6573756164612e2050726f696e00206e65632076756c707574617465206e756e632e204e756e63206d616c657300756164612c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c20007175616d206e69736c2074696e636964756e74206c616375732c207369742000616d65742066657567696174206c6f72656d206e756c6c61206e65632069700073756d2e0a0a4d617572697320736564206d6574757320617420646f6c6f720020636f6e64696d656e74756d20636f6e73657175617420616363756d73616e0020616320646f6c6f722e2053757370656e6469737365206c75637475732062006c616e6469742065782c20617420656c656d656e74756d206d69206469637400756d2065752e20416c697175616d2074696e636964756e7420656c656d656e0074756d206d61676e6120766974616520616c69717565742e20446f6e65632000696e206f726e617265206d61757269732e20496e206c6163696e6961207369007420616d6574206e756c6c61207669746165206665726d656e74756d2e2044006f6e6563206e6563206665726d656e74756d2075726e612c20617420667269006e67696c6c612076656c69742e20416c697175616d206572617420766f6c7500747061742e20566573746962756c756d2073656420747572706973206e65710075652e20496e74656765722076656c20737573636970697420747572706973002e20536564206e656320636f6e64696d656e74756d206e657175652e204165006e65616e20636f6e76616c6c697320766f6c757470617420706f7375657265002e2050686173656c6c7573206c6f626f72746973206c6967756c612076656c002072686f6e637573206c616f726565742e2041656e65616e2065676574206500737420696163756c69732c2076656e656e61746973206f64696f2075742c200064696374756d2074656c6c75732e2044756973207669746165206572617420007669746165206e69736920637572737573206d61747469732e204e756e632000626c616e6469742070656c6c656e7465737175652072697375732c206c7563007475732074696e636964756e74206d61676e6120706f7274612061632e204300726173207669766572726120616c697175657420706f73756572652e0a0a4c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e204e756c6c616d00206575206c61637573206c65637475732e20467573636520612074656c6c750073206c616375732e20496e74657264756d206574206d616c657375616461200066616d657320616320616e746520697073756d207072696d697320696e206600617563696275732e204e756c6c616d2070656c6c656e746573717565206c6f0072656d207175616d2c2076656c2074656d706f7220746f72746f7220707265007469756d2076697461652e20566573746962756c756d20736f6c6c69636974007564696e2071756973206d692061632072757472756d2e20496e746567657200206469676e697373696d206c696265726f20616c697175616d206672696e6700696c6c6120616363756d73616e2e20446f6e656320666163696c697369732000647569206e6f6e206c656f2074656d707573206c75637475732e2053656420006d616c657375616461207665686963756c6120756c7472696365732e2055740020616e746520616e74652c20616c69717565742073697420616d657420736f006c6c696369747564696e2066696e696275732c20626c616e64697420756c740072696365732061756775652e20536564206e6563206e6973692071756973200076656c697420636f6e64696d656e74756d20677261766964612e2041656e6500616e20616c697175657420657569736d6f64206475692c20757420766568690063756c6120697073756d2066617563696275732065752e0a0a4675736365200076656c69742073617069656e2c2073656d706572206574206469676e69737300696d2076656c2c20696163756c69732069642076656c69742e20507261657300656e74206e6f6e206e69736c206567657420616e746520736f6c6c69636974007564696e2072757472756d206e6563206e6563206573742e205365642076690076657272612066656c6973206e69736c2c206e65632065676573746173206500737420736f64616c65732065742e204e616d20636f6e67756520617567756500207375736369706974206578206c616f7265657420706f72747469746f722e0020467573636520626962656e64756d20697073756d206e657175652c20616300206d6178696d757320646f6c6f72206672696e67696c6c612075742e2043750072616269747572206120636f6e736571756174206c6967756c612e204e616d0020766f6c757470617420636f6e736571756174206c696265726f2065752062006c616e6469742e204e616d20696e74657264756d2074656c6c757320757420006f64696f20636f6e736571756174206f726e6172652e204e756c6c612066610063696c6973692e204d616563656e6173206c756374757320616e7465206567006574206f64696f20636f6e64696d656e74756d206672696e67696c6c612e2000496e74656765722065676574206d61676e612073697420616d6574206d6167006e61206665726d656e74756d20677261766964612e0a0a4d6f72626920736f0064616c65732076656c6974206e6973692c2061206d6178696d7573206475690020656c656966656e64206e6f6e2e204d61757269732070757275732065726f00732c20617563746f722075742066696e6962757320656765742c20756c7472006963696573207175697320657261742e2041656e65616e207361676974746900732074757270697320696e206f72636920706f7274612c20696420706861720065747261206578206566666963697475722e20467573636520617420636f6e0067756520657261742e20566573746962756c756d206c756374757320656e69006d206665726d656e74756d206c656f2064696374756d20747269737469717500652e20446f6e6563206e65632066656c69732073697420616d6574206475690020706f72747469746f7220656c656d656e74756d2e205072616573656e7420006c616f726565742c2066656c6973207669746165207472697374697175652000626962656e64756d2c206c6f72656d206e6962682070656c6c656e746573710075652073617069656e2c20736564207363656c65726973717565206c6f7265006d206e6962682076656c2073656d2e204675736365206e6f6e2076656e656e0061746973206e657175652e20446f6e6563207363656c6572697371756520640069676e697373696d20726973757320696420706f7274612e0a0a5375737065006e64697373652072686f6e637573206c696265726f2076656c2066656c697300206c6163696e69612074656d7075732e2046757363652064696374756d206e006571756520736564206e69626820677261766964612c20626962656e64756d00206c6f626f727469732075726e6120616c69717565742e204375726162697400757220657420657569736d6f6420656e696d2e2050656c6c656e7465737175006520696d70657264696574206175677565206c6f72656d2c2075742068656e00647265726974206e657175652073656d7065722076656c2e2050686173656c006c757320636f6d6d6f646f20647569206e6f6e206c6f626f72746973207665006e656e617469732e2043726173207669766572726120736167697474697320006e69736c2c207669746165206c6f626f72746973206d6574757320756c747200696369657320696e2e20416c697175616d207669746165206469676e69737300696d2070757275732c206661756369627573207072657469756d207269737500732e205072616573656e74206163206d61676e6120617563746f722c206d61006c657375616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f00206475692e205072616573656e7420617420746f72746f7220697073756d2e002046757363652074656d7075732c2066656c697320696e20616363756d7361006e2066617563696275732c206c696265726f20656e696d206d6f6c6c69732000656e696d2c20696420656c656d656e74756d206d65747573207075727573200061206d61676e612e204375726162697475722073697420616d657420636f6e0064696d656e74756d2075726e612e20496e2075726e612066656c69732c2063006f6e64696d656e74756d207669746165206e756c6c612065752c20706f73750065726520636f6e64696d656e74756d206e6962682e2050656c6c656e746573007175652067726176696461206f64696f20656c69742c2076656c20616c69710075657420726973757320636f6e7365637465747572206e6f6e2e204d61656300656e61732074656d706f722c206d61676e612061632070686172657472612000616c697175616d2c20616e7465206c6967756c61206665756769617420717500616d2c206575206d6174746973206e756c6c61206e69736c206e6f6e206d61007373612e0a0a496e746567657220756c74726963657320736f64616c657320006a7573746f2e20416c697175616d20626962656e64756d207068617265747200612072697375732c2061632076697665727261206e69736920616363756d7300616e2075742e20457469616d2067726176696461206665726d656e74756d20006d6920696e207363656c657269737175652e20467573636520696e7465726400756d2c206c656f207175697320626962656e64756d206d61747469732c206a007573746f206d65747573206672696e67696c6c6120656c69742c2061632070006c61636572617420747572706973206469616d206661756369627573206e6900736c2e20457469616d206c616f72656574206c696265726f206c6f72656d2c002076656c2074656d707573206f64696f206469676e697373696d2065742e20004e756c6c6120666163696c6973692e20496e7465676572206461706962757300206d6f6c657374696520656e696d2c2061632074696e636964756e74207361007069656e20636f6e76616c6c69732075742e2043726173206d6f6c6c69732000636f6e736563746574757220666163696c697369732e2043757261626974750072207472697374697175652c20726973757320706f72747469746f72207675006c70757461746520756c7472696365732c206c6f72656d2073656d20646967006e697373696d206e657175652c20657520706f72747469746f72206d61676e0061206e697369207669746165207475727069732e20446f6e656320636f6e7300657175617420657374206575206469616d20666575676961742c2076656c2000766573746962756c756d206469616d206c6163696e69612e20457469616d2000756c747269636573206c65637475732073697420616d6574206f726369207300616769747469732c2076656c20616c69717565742065726f73206c6163696e0069612e20496e74656765722070686172657472612c20617263752065752062006c616e6469742064696374756d2c2076656c6974206f64696f20636f6d6d6f00646f206f64696f2c20757420636f6e7365717561742074656c6c757320717500616d206e6563206a7573746f2e205365642065666669636974757220736564002066656c69732061206d6178696d75732e204e756c6c616d20656c65696665006e64207363656c65726973717565206c6f72656d2c20696e206d6f6c65737400696520746f72746f72206d616c6573756164612076697461652e2045746961006d20636f6e64696d656e74756d2c20617567756520657420696163756c69730020646170696275732c206469616d206172637520706f72747469746f72207500726e612c20616320636f6e76616c6c6973206d61676e61206175677565207300656420646f6c6f722e2050686173656c6c75732076656c206f64696f207075007275732e0a0a457469616d20656c656966656e64206469676e697373696d20006e6973692066657567696174206c6163696e69612e205175697371756520650074206c61637573207669746165206172637520706f73756572652074656d700075732e204e616d20636f6e73657175617420657820696e206172637520756c007472696365732c2076656c2076656e656e61746973206e756e63206672696e0067696c6c612e20496e7465676572206575206a7573746f206964206e6962680020626962656e64756d2072757472756d2e20457469616d207363656c657269007371756520747572706973206c656f2c2061632074696e636964756e7420710075616d2064696374756d2065752e204475697320636f6e7365717561742063006f6e677565206a7573746f2c206469676e697373696d20626962656e64756d002073617069656e20656c656966656e6420656765742e204d616563656e617300206469676e697373696d206d6173736120757420626c616e646974206c616300696e69612e2050726f696e2066657567696174206e756e6320736564206c6f0072656d20616c697175616d2070756c76696e61722e20416c697175616d207600617269757320616e7465207365642073617069656e206469676e697373696d002c2065742064696374756d2073617069656e20696e74657264756d2e204165006e65616e206574206c656f2061756775652e2053656420756c74726963696500732074696e636964756e742065726f732c2073656420706f727461206d6175007269732066696e69627573206e65632e0a0a53757370656e6469737365206e006563206c6f72656d206c696265726f2e204d616563656e6173206e6563206c006967756c61206e6f6e20657820626c616e6469742073757363697069742e200050656c6c656e746573717565206c616375732072697375732c206f726e6172006520612063757273757320656765742c2074656d706f72207669746165206e0069736c2e204375726162697475722072757472756d20766f6c757470617420006578206120706c6163657261742e204d6f726269206d616c657375616461200074656c6c75732065752061726375206d6f6c6573746965206d61747469732e0020457469616d207363656c6572697371756520636f6d6d6f646f206175677500652c207175697320636f6d6d6f646f2076656c697420656c656966656e64200069642e204d617572697320617563746f72207669746165206d657475732071007569732076656e656e617469732e2050726f696e20626962656e64756d206600617563696275732074656c6c75732c20736f6c6c696369747564696e20696d0070657264696574206e69736920766f6c75747061742076656c2e20446f6e650063206661756369627573206d6f6c6573746965207175616d2c20657420667200696e67696c6c61206469616d2e0a0a446f6e656320696d706572646965742000657261742061206e6973692066696e696275732c207574206469676e69737300696d206e69736920666163696c697369732e204e756c6c6120696163756c690073207574207175616d20616c69717565742068656e6472657269742e205065006c6c656e74657371756520757420656c656966656e64206e657175652e2044006f6e6563206575206c6563747573206574206c656f20696e74657264756d200074696e636964756e742e204e616d20756c74726963657320656c6974206e690073692c2065676574206d6178696d7573207269737573206672696e67696c6c006120717569732e205365642076656c206e69736920617420747572706973200072757472756d2074696e636964756e742e204e756c6c6120636f6e677565200065726174206c6f72656d2c207365642066696e69627573206c616375732061006c69717565742065742e2050656c6c656e746573717565207574207175616d0020696e206f72636920736f64616c65732074656d706f72207574206575206e00657175652e2051756973717565206d616c65737561646120736167697474690073207269737573206e6f6e2076656e656e617469732e204e756e632066696e006962757320756c74726963696573206e69626820706f737565726520636f6e0073656374657475722e20496e7465676572206e6563206c6967756c61206e75006e632e205574206e6563206d617373612076656c206c6967756c612074726900737469717565206665726d656e74756d20696e2065752074656c6c75732e0a000a4d617572697320736f64616c6573206469616d2069642066656c6973206c00616f726565742c207175697320736f6c6c696369747564696e207475727069007320756c6c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207300617069656e20657420756c6c616d636f7270657220736f6c6c69636974756400696e2c2073656d206c6563747573206672696e67696c6c61207175616d2c2000617420706c6163657261742065782065726f732075742073617069656e2e2000496e206f64696f206e6973692c207661726975732073697420616d65742064006f6c6f722076656c2c20756c74726963657320706c6163657261742074656c006c75732e20557420646f6c6f72206d692c2073656d706572206e6f6e206d610078696d75732076656c2c2070756c76696e61722061742066656c69732e2045007469616d207269737573206e756c6c612c2065666669636974757220617420006c6f72656d206c6f626f727469732c20706f72746120656c656966656e6420006c6f72656d2e20566976616d757320617420636f6e64696d656e74756d206500726f732e204475697320657420696163756c6973206d692c2076697461652000636f6e736563746574757220617263752e20496e2065726f73206d6175726900732c2074656d706f7220717569732070656c6c656e74657371756520696e2c002070686172657472612076656c206c65637475732e204d6f72626920706f720074612c206c696265726f20617420736f64616c657320656c656966656e642c00206c61637573206c6f72656d20626962656e64756d206f64696f2c206e65630020706f72747469746f72206c65637475732074656c6c75732076656c207365006d2e204e756c6c61207363656c657269737175652065742075726e61206575002064696374756d2e205574206f726e617265206d61747469732074656d707500732e20557420626c616e646974206f64696f2061206d61737361206d617869006d75732c206e6563206d616c657375616461206c696265726f206661756369006275732e0a0a5574206d6178696d757320756c7472696369657320747269730074697175652e20457469616d206163206469616d206174206e756c6c61206c00756374757320756c6c616d636f7270657220696e20657520656c69742e2053006564206574206d617373612076656c206e6962682072686f6e637573207469006e636964756e742e2053656420636f6e677565207363656c65726973717565002074656d7075732e205175697371756520766f6c7574706174206d6173736100206c6f72656d2c2076656c2072757472756d20656e696d20636f6e64696d65006e74756d206e65632e20416c697175616d2074757270697320646f6c6f722c0020656666696369747572207365642064696374756d20616c697175616d2c20006d6174746973206964206c616375732e204d616563656e6173206665756769006174206e6973692071756973206d6178696d757320636f6e76616c6c69732e000a0a5365642074696e636964756e74207574206a7573746f207669746165200066696e696275732e204d617572697320626c616e6469742065726174206e75006e632c20766974616520616363756d73616e2061726375206672696e67696c006c6120717569732e2053656420756c7472696365732074696e636964756e7400206469616d2073697420616d657420626962656e64756d2e20416c69717561006d206661756369627573206c61637573206567657420766573746962756c75006d2068656e6472657269742e204e756c6c616d20766172697573206e656320006e6571756520657420656c656966656e642e2053656420766974616520747500727069732065742074757270697320656c656966656e642074656d706f722e002050656c6c656e74657371756520766573746962756c756d206172637520610020657569736d6f64206d61747469732e205072616573656e74206e6563207200697375732073697420616d6574207475727069732064617069627573207375007363697069742e20446f6e656320626962656e64756d2074656d707573206d006920696e2072757472756d2e20566573746962756c756d206d61737361206d00657475732c20696d7065726469657420657520736f64616c65732071756973002c20616363756d73616e2076656e656e6174697320617263752e20496e206e006f6e20706f7375657265206c696265726f2c2076656c207375736369706974002075726e612e0a0a53757370656e64697373652073617069656e206d65747500732c2070756c76696e6172206e6563206c61637573206d6f6c65737469652c00206567657374617320766573746962756c756d2065782e2056657374696275006c756d2074656d706f7220616e7465206e6563206e756e632074696e63696400756e7420666163696c697369732e20457469616d20626962656e64756d2c2000616e746520696e207072657469756d20636f6e6775652c206d61737361206c006f72656d206c6f626f727469732065782c206e65632072686f6e6375732074006f72746f72206d61757269732061632070757275732e20496e2072686f6e630075732076756c707574617465206d61676e6120617420657569736d6f642e20004d616563656e61732076656c206c616f72656574206a7573746f2c20696e20006c6163696e6961206f64696f2e2050656c6c656e74657371756520616c697100756574206c616375732061632076656e656e61746973206c75637475732e2000496e74657264756d206574206d616c6573756164612066616d65732061632000616e746520697073756d207072696d697320696e2066617563696275732e200051756973717565206c6163696e6961207072657469756d2075726e6120736f0064616c6573206d6178696d75732e20496e7465676572206469676e69737369006d207072657469756d206d6f6c6c69732e20536564206c656374757320656c0069742c20616c697175616d2061206469616d2069642c20646170696275732000766172697573206c6967756c612e204d6f726269206c6163696e696120736f0064616c6573206c6f72656d2c20696420616c697175616d206e69736c20706f00737565726520656765742e0a0a41656e65616e2070686172657472612c207400656c6c7573206163206469676e697373696d20656765737461732c206175670075652065737420656c656d656e74756d2066656c69732c2076656c206c6f62006f72746973206e69736920656e696d20636f6d6d6f646f207475727069732e002053757370656e6469737365206e756e63207475727069732c206c6f626f720074697320736564206d61757269732069642c20706f72746120736f6c6c69630069747564696e206a7573746f2e2050726f696e20656c656d656e74756d206d0061757269732073697420616d6574206f72636920696e74657264756d207469006e636964756e742e2053656420706f7274612075726e612066656c69732c200069642076656e656e617469732073617069656e207363656c65726973717565002065742e20566976616d7573206461706962757320706f72747469746f7220006a7573746f2c206964206d6f6c6573746965206e69736c20696163756c6973002074696e636964756e742e20496e206d6174746973206d6175726973207369007420616d657420636f6e76616c6c697320756c747269636965732e20446f6e00656320636f6d6d6f646f206567657374617320657261742076697461652061007563746f722e204e756c6c616d2066657567696174206d61676e6120657374002c20657420706f72747469746f72206573742074656d706f722061632e2041006c697175616d20766172697573206d69206575206c61637573206d6174746900732c2073697420616d6574207375736369706974206e69736920736f64616c0065732e2041656e65616e2065742068656e6472657269742076656c69742c2000696e20706c616365726174206e6973692e20446f6e65632071756973207665006c6974206d692e20457469616d20706c61636572617420657261742076656c002065726f73206672696e67696c6c6120636f6d6d6f646f2e0a0a5068617365006c6c7573207669746165206475692066656c69732e205072616573656e7420007072657469756d206d6174746973206e657175652c2065676574206672696e0067696c6c612066656c69732074656d706f722061742e20437261732061756300746f72206e69736c206e65632073656d206c6f626f72746973206d6174746900732e2050656c6c656e746573717565206d61747469732074696e636964756e00742074656d7075732e2050726f696e206c616f726565742073656d20612076006f6c75747061742072686f6e6375732e204d6f726269206575206d6175726900732073697420616d65742072697375732074696e636964756e74206f726e610072652e2041656e65616e20756c6c616d636f72706572206c61637573206e6f006e206e756e6320696d706572646965742c20657420656c656966656e64207400656c6c757320706c6163657261742e2043726173206574206d6920696e20640069616d206567657374617320706c616365726174206e6f6e2073697420616d006574206c65637475732e20416c697175616d20696163756c697320707572750073206c6f626f727469732c207363656c657269737175652065726f732065670065742c2076617269757320646f6c6f722e2043757261626974757220737573006369706974206e6571756520736564206567657374617320636f6e736571750061742e20496e2076656c20616c697175616d206d657475732c206c75637475007320636f6d6d6f646f206e6962682e2053656420636f6e736571756174207000756c76696e6172206d692c20736167697474697320616c6971756574206572006f73206d6178696d75732076756c7075746174652e2055742065742074656d00707573206c616375732e0a0a53757370656e646973736520706f74656e7469002e20447569732076656c2076756c707574617465206d61757269732c2075740020736f6c6c696369747564696e206d692e20446f6e65632076656c20616c69007175616d206c6967756c612c20656765742072686f6e6375732074656c6c7500732e205072616573656e74206e65632065726f732076697461652065726f73002076756c70757461746520617563746f722e204e756e63207375736369706900742c206d617572697320696420696e74657264756d20756c6c616d636f72700065722c20746f72746f72206a7573746f20646170696275732073617069656e002c207669746165206c6163696e6961206c656f2075726e61207669766572720061206e6962682e205175697371756520626962656e64756d20617563746f72002065726f732c206964206d6174746973206d617373612064696374756d2061002e205574206964206d69206e69736c2e20566573746962756c756d20657520006c7563747573206c616375732e20446f6e65632061206d6178696d7573206600656c69732e0a0a446f6e65632073656d206e69736c2c20756c7472696365730020612074656c6c75732075742c2070656c6c656e7465737175652066616369006c69736973206e756c6c612e205365642065742073617069656e207574206500726f7320636f6e64696d656e74756d20706f72747469746f722e204675736300652073697420616d6574206d657475732065782e20496e2061206578207369007420616d65742074656c6c75732070756c76696e617220636f6e73657175610074206120696420656e696d2e204d616563656e617320756c6c616d636f727000657220736f64616c6573207475727069732c207175697320756c6c616d636f00727065722065726f7320636f6e7365717561742065742e20496e74656765720020736f64616c6573206573742073697420616d657420616e74652074656d700075732c20696420616c69717565742066656c69732072757472756d2e204c6f0072656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365006374657475722061646970697363696e6720656c69742e204d616563656e61007320696420747572706973207669746165206573742076656e656e617469730020656c656d656e74756d2e0a0a446f6e656320696163756c697320677261760069646120636f6e73656374657475722e20457469616d20657569736d6f64200065726f73206567657420766573746962756c756d206672696e67696c6c612e0020496e20706f7274612c206572617420766974616520656c656d656e74756d0020677261766964612c20747572706973206c6f72656d206d6f6c657374696500206e6962682c20696420706861726574726120746f72746f72206d6574757300206c6163696e6961207475727069732e204d6175726973207072657469756d0020766172697573207475727069732c2065742063757273757320657820766900766572726120717569732e20536564206d616c657375616461206c656f20650074206d617373612074656d707573206c6163696e69612e204e756e63207369007420616d657420656e696d2073656d2e20446f6e65632076656c206772617600696461207175616d2c2076656e656e61746973207665686963756c612065720061742e0a0a496e206e6f6e206c61637573206d616c6573756164612c206d610078696d7573206e696268206e65632c20636f6e73656374657475722076656c0069742e204e756c6c61206575206772617669646120746f72746f722e205068006173656c6c757320696e74657264756d206665726d656e74756d20766172690075732e204d6f726269207661726975732076656c697420696e206c6163757300207363656c65726973717565206d616c6573756164612e2050686173656c6c00757320737573636970697420616c697175616d2065726f7320696e20747269007374697175652e20566573746962756c756d2061632075726e61206e756e63002e204d6175726973207072657469756d20746f72746f72206469616d2c206100206672696e67696c6c61206c65637475732074656d7075732061632e0a0a4d006f72626920696d70657264696574206d6f6c6c697320646f6c6f722c206e65006320656666696369747572207175616d20616c697175657420612e2056697600616d7573206c75637475732070757275732076656c206e69736c2065756973006d6f6420706f72747469746f722061632076697461652074656c6c75732e2000437261732073757363697069742074726973746971756520707572757320750074207363656c657269737175652e2050656c6c656e746573717565207369740020616d657420656c6974206964206c696265726f206665726d656e74756d2000736f64616c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c006120696e207175616d207072657469756d2c20696420616c6971756574206e0069626820636f6e7365717561742e204e756c6c6120666163696c6973692e200041656e65616e206f726369206c696265726f2c2068656e64726572697420750074206c6f72656d2076656c2c20706f72747469746f7220706f72747469746f0072206c696265726f2e20557420696420616363756d73616e206d617373612e00205365642073617069656e206c656f2c2074696e636964756e7420707265740069756d2061756775652076697461652c207669766572726120766f6c7574700061742073617069656e2e204d6f726269206d6f6c6c6973206f726369207365006420756c74726963657320636f6e64696d656e74756d2e20437261732061630063756d73616e20736167697474697320696d706572646965742e204e616d200074656d706f7220766573746962756c756d207475727069732c20636f6e6469006d656e74756d2074656d706f72206f64696f20656c656d656e74756d207665006c2e20566573746962756c756d20737573636970697420616e7465206120610072637520616363756d73616e2c2076656c20636f6e677565206d61757269730020677261766964612e0a0a50686173656c6c757320766f6c7574706174206d0061757269732065676574206c696265726f206c616f7265657420616c69717500616d2e20566573746962756c756d207269737573206e69736c2c2074656d7000757320617420766f6c75747061742076697461652c2074696e636964756e74002076697461652065726f732e20416c697175616d2076656e656e617469732000616e746520626c616e64697420707572757320666575676961742c20612061006c697175616d20616e746520626962656e64756d2e2050726f696e20696e7400657264756d20697073756d206e6962682c2076656c20706f7274612066656c00697320657569736d6f642065742e20457469616d20717569732074656c6c75007320646f6c6f722e2044756973206964206c616f72656574206f64696f2c20006574206375727375732072697375732e2053757370656e6469737365206c61006f7265657420646f6c6f72206575206e756c6c6120666575676961742c20730065642066657567696174206e756c6c6120626c616e6469742e20416c69717500616d20717569732061726375207175697320617567756520756c7472696365007320696163756c69732e20446f6e65632069642065726f73206e6f6e206e6900736920616363756d73616e206f726e6172652076656c20757420657261742e002053656420636f6d6d6f646f206c756374757320616e74652071756973207000756c76696e61722e205072616573656e7420616c697175616d206d6f6c6c6900732070757275732072686f6e63757320636f6e7365717561742e2055742076006974616520636f6e6775652072697375732e20496e206d6f6c6c6973206120007075727573206964206c6163696e69612e0a0a467573636520616c69717561006d2061756775652073697420616d6574206a7573746f2070656c6c656e746500737175652c20756c6c616d636f7270657220706f727461206475692069616300756c69732e2050726f696e20656765737461732076756c707574617465206e0069736c2c2076656c20637572737573206d6173736120706f72747469746f72002061742e20536564206e6f6e2074656c6c75732076656c206e756c6c612062006c616e64697420666163696c697369732e204d616563656e617320657261740020656e696d2c20736f64616c65732061206c6163696e69612076656c2c2061006c6971756574207574206e756c6c612e20496e74656765722066656c69732000617263752c20736f64616c65732076656c206661756369627573207369742000616d65742c20766573746962756c756d2065676574206c6f72656d2e204e75006c6c612076697665727261206f64696f206163206e756e63206c7563747573002c20657520706c6163657261742074656c6c757320616c697175616d2e204d006f726269206e65632073656d20657520616e746520706f737565726520736f006c6c696369747564696e2e204e756c6c6120616363756d73616e20636f6e7300656374657475722065737420766974616520756c747269636965732e20447500697320666163696c69736973207363656c65726973717565206d6175726973002c206e6f6e20636f6e64696d656e74756d2064756920766f6c75747061742000696e2e0a0a4d617572697320717569732066696e6962757320656e696d2e20004e756e6320656765742065726f7320616c69717565742c206d6178696d757300206c6f72656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e00204d6f7262692065676574206e756e6320696420726973757320657569736d006f6420626c616e6469742076656c20612072697375732e204d617572697320006120736f64616c65732074656c6c75732e2043757261626974757220626c61006e646974206174206e756e63206174206566666963697475722e204475697300206575206c696265726f206e656320647569206d6174746973206d6178696d0075732e2053656420636f6e7365717561742065726174206d61757269732c2000757420706f727461206c6563747573206665756769617420717569732e2056006573746962756c756d2076656c2074656c6c7573206e65632073617069656e0020636f6e6775652076656e656e617469732e20446f6e656320706c6163657200617420756c747269636573206d692e204675736365206c7563747573206e6f006e206d6175726973206163206375727375732e204e756c6c61206567657420006d61676e6120766974616520747572706973206d616c6573756164612076690076657272612e2050656c6c656e746573717565206174206c656374757320690064206d61676e612064617069627573206d6174746973207669746165206120007175616d2e0a0a496e206572617420657261742c20696d7065726469657420007574207175616d206e65632c20756c6c616d636f727065722072757472756d00207475727069732e204d6f72626920706c61636572617420656c697420617400206e6973692070656c6c656e74657371756520706c6163657261742e205072006f696e207669766572726120736f6c6c696369747564696e20637572737573002e2046757363652076656e656e6174697320626c616e646974206e69736c200073656420636f6e6775652e204675736365206d6f6c65737469652c2075726e00612076656c20636f6e76616c6c69732072686f6e6375732c20656c6974206d006574757320657569736d6f642065782c2071756973207665686963756c6120006d61737361207075727573206163206475692e2041656e65616e206e6f6e20006c61637573207665686963756c612c20656c656966656e6420656c69742073006f64616c65732c207661726975732073617069656e2e20536564206e756c6c0061206a7573746f2c206665726d656e74756d20706f72747469746f722076690076657272612075742c20706f727461206567657420656e696d2e2050656c6c00656e74657371756520636f6e736563746574757220736167697474697320740075727069732c206174206375727375732064756920706f737565726520696e002e205175697371756520612073757363697069742065726f732e2045746961006d20616c69717565742c20646f6c6f722061742064696374756d2072686f6e006375732c206d692065737420756c6c616d636f727065722072697375732c2000612074696e636964756e742074757270697320746f72746f72206e6f6e206e006962682e2053656420636f6d6d6f646f206469616d206163206f7263692076006f6c75747061742c207669746165206c6f626f72746973206d61676e612070006f73756572652e204475697320636f6d6d6f646f20656c697420696420657800207661726975732c206567657420706f737565726520697073756d2061756300746f722e20467573636520756c74726963696573206f64696f20657520636f006e67756520616c69717565742e2055742071756973206573742070756c7669006e61722c2076756c707574617465206c65637475732076756c707574617465002c20636f6e7365717561742073617069656e2e0a0a446f6e656320636f6e7600616c6c6973206d61757269732074656d707573207661726975732061756374006f722e20416c697175616d207472697374697175652064696374756d207075007275732c20696420677261766964612075726e6120616c6971756574207574002e20566976616d75732065752076656e656e6174697320616e74652c206d610078696d75732074696e636964756e74206f7263692e20557420617420616c69007175616d206c6f72656d2e20416c697175616d206e6f6e206c61637573206e00756c6c612e204d6f72626920766974616520656666696369747572206d61730073612c2076697461652072686f6e63757320657261742e2041656e65616e20006e6f6e20657261742071756973206d617572697320657569736d6f6420626c00616e6469742e205574207669746165206e756c6c612073697420616d6574200074656c6c7573206567657374617320636f6e7365717561742e205574206c69006265726f206c65637475732c20626c616e6469742070756c76696e6172207300757363697069742065752c20636f6e7365637465747572207669746165207300617069656e2e2043757261626974757220706f727461206e756e632066656c0069732c20717569732070656c6c656e746573717565206c656f206469676e69007373696d2061742e204d6f7262692076656c20696163756c6973206e696268002e20446f6e65632074696e636964756e742065737420657520696d706572640069657420706f72747469746f722e20566573746962756c756d20696e207475007270697320746f72746f722e0a0a50726f696e207669746165206172637520006e6962682e205072616573656e74206573742073617069656e2c2074696e63006964756e7420617420617263752076697461652c2076656e656e617469732000736f6c6c696369747564696e20746f72746f722e2050656c6c656e7465737100756520666163696c697369732c206f64696f20696e207472697374697175650020736f64616c65732c20657374206e6571756520657569736d6f642069707300756d2c20657520656c656d656e74756d206f726369206e6571756520766974006165206c696265726f2e20446f6e65632074656d706f72206c696265726f2000696e206c656f20636f6d6d6f646f2c2075742076756c707574617465206d6100676e61206c616f726565742e204d616563656e61732072757472756d20656c00656d656e74756d20766f6c75747061742e20536564206d6f6c65737469652c00206d6574757320657520656c656d656e74756d20616363756d73616e2c207300656d207175616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d00616c65737561646120616e7465206c61637573206c6f626f7274697320746f0072746f722e205365642076656c697420646f6c6f722c20636f6e73656374650074757220617563746f7220616c697175657420696e2c206f726e617265206500752073617069656e2e204e756c6c61206574206c65637475732061207075720075732073656d706572206d61747469732e204e756c6c616d206d61747469730020656c656966656e64206d6f6c65737469652e0a0a4d6175726973206c6f62006f727469732065726174206c616375732c20757420766573746962756c756d00206175677565207072657469756d2065752e20446f6e65632065742073656d00706572206d61757269732c2073697420616d65742067726176696461206c6500637475732e20447569732076656e656e61746973206d69206f7263692c2061002065666669636974757220646f6c6f7220617563746f722069642e204e756c006c61206e6f6e2075726e612075742065726174207665686963756c61207469006e636964756e74207574206964206a7573746f2e2041656e65616e206c616300696e696120657374206964206c7563747573206d616c6573756164612e20550074206f726e61726520647569207175697320636f6e736563746574757220700072657469756d2e20496e206163206a7573746f206163206e756c6c61207669007665727261207665686963756c612e2053757370656e646973736520696e2000766573746962756c756d206d657475732c206120736f64616c6573206c6f7200656d2e204d6f726269206e6f6e206c6967756c612076697461652074656c6c0075732066696e69627573207363656c6572697371756520617420696e20616e0074652e205175697371756520696e2073656d70657220646f6c6f722e2045740069616d206d6f6c6c69732c206d6574757320696420766f6c7574706174207300656d7065722c206d61737361206e65717565206c6163696e69612073656d2c0020696e20656666696369747572206c656374757320656c6974207574206e75006e632e2050726f696e206c6163696e6961206c6f72656d2071756973207475007270697320756c7472696365732c20757420666175636962757320646f6c6f007220656c656966656e642e20446f6e6563206c6f626f727469732069707375006d206575206572617420616c69717565742c2065752065676573746173206c006967756c6120656c656d656e74756d2e205072616573656e74206964206572006f732066696e696275732c206d6f6c6c69732074757270697320696e2c206d006f6c6c6973207175616d2e2050686173656c6c757320626c616e6469742063006f6d6d6f646f206e756e6320696e20626c616e6469742e204e616d207175690073207269737573207574206469616d206c6f626f72746973207361676974740069732e0a0a50726f696e20766f6c75747061742074656d707573207275747200756d2e2050726f696e20696d7065726469657420626c616e646974207361700069656e207175697320706c6163657261742e204e756c6c6120706f73756572006520647569206964206f64696f20657569736d6f642c20696420696163756c0069732075726e6120646170696275732e20446f6e65632070656c6c656e74650073717565206d617373612069642076697665727261206c616f726565742e20004e756c6c616d2071756973206c6163757320636f6e76616c6c69732c20626c00616e646974206c656f206e6f6e2c20616c697175616d206c696265726f2e2000536564206461706962757320617567756520696e2075726e61207068617265007472612c2061742073656d706572206c656374757320706c6163657261742e002053656420756c74726963657320726973757320696420696163756c6973200074656d7075732e20496e7465676572206665726d656e74756d2c2072697375007320657420636f6e736563746574757220636f6e6775652c206e756e63206500737420696163756c69732072697375732c20706f73756572652076656e656e00617469732065726f7320616e74652076656c2070757275732e20496e746567006572206c6163696e69612074656c6c7573207669766572726120726973757300207361676974746973206672696e67696c6c612e2043726173206e6f6e2069007073756d2071756973206e65717565207669766572726120666163696c6973006973206e6f6e20736564206475692e20467573636520636f6d6d6f646f2065006c656966656e64206a7573746f207175697320636f6e6775652e0a0a56697600616d7573207363656c657269737175652074696e636964756e74206e756e6300206469676e697373696d20636f6e64696d656e74756d2e2051756973717565002061726375206e69736c2c20756c6c616d636f72706572206e6563206c65630074757320717569732c20636f6e67756520616363756d73616e20657261742e0020437572616269747572207574206e697369207475727069732e20496e20760069746165206573742071756973206d657475732074656d7075732076657374006962756c756d206575206e656320617263752e2055742073656d206a757374006f2c206665756769617420657520636f6e73657175617420656765742c2075006c6c616d636f72706572206567657420697073756d2e205072616573656e7400207072657469756d206d6174746973206c656f2c2067726176696461206865006e647265726974206c696265726f2065666669636974757220656765742e20004d616563656e617320626c616e646974206e696268206469616d2c206e656300206c6163696e69612061726375206c6163696e69612065742e0a0a4675736300652074696e636964756e7420746f72746f722066656c69732e2053656420640069616d206e6962682c20637572737573206e656320646170696275732065670065742c206f726e61726520656666696369747572206d692e20446f6e65632000696420746f72746f72207669746165206d692064696374756d2076657374690062756c756d2e2050726f696e206964206c696265726f20616c697175616d200076656c69742074656d706f7220696d706572646965742073697420616d657400207669746165206c616375732e20437261732073697420616d6574206578200068656e6472657269742c206672696e67696c6c6120617567756520696e2c20006c616f72656574206f7263692e204d616563656e6173206c61637573206d65007475732c20656c656966656e6420736564206d657475732075742c2065756900736d6f6420657569736d6f642076656c69742e20496e746567657220696e2000616363756d73616e206d692e0a0a41656e65616e20696163756c6973207665006c206a7573746f20756c7472696369657320766f6c75747061742e20437261007320636f6e73656374657475722c2065726f73206e6f6e20756c6c616d636f007270657220696163756c69732c2076656c6974206578207665686963756c61002076656c69742c2073697420616d657420696163756c6973206a7573746f20006469616d206567657420657261742e20496e74656765722066696e696275730020736f64616c6573206d617373612073697420616d6574206d616c657375610064612e20496e2072686f6e6375732073617069656e206964207175616d207600697665727261207665686963756c612e20496e20686163206861626974617300736520706c617465612064696374756d73742e20446f6e656320616320706f0072747469746f72206e657175652c2073656420656666696369747572206c690067756c612e20446f6e6563206567657420616c697175616d206c616375732c00206e6f6e207665686963756c61206e69736c2e2053656420706c61636572610074206d617474697320636f6e76616c6c69732e20496e746567657220736f6400616c65732c206e69736c2061207665686963756c61206469676e697373696d002c2076656c69742074656c6c7573206566666963697475722070757275732c00206120766573746962756c756d206f64696f206c6163757320696420646961006d2e204e756c6c616d20766974616520626c616e64697420656c69742e20500072616573656e742074696e636964756e74206c656374757320656c69742c20006e6f6e2074656d707573206e69736c20677261766964612076697461652e20004e756c6c61206469616d2070757275732c206c616f7265657420766974616500206567657374617320696e2c20636f6e7365637465747572206574206d6175007269732e2053656420766172697573206d6f6c6c697320656c656d656e7475006d2e204e616d2073697420616d6574206d61676e6120677261766964612c200068656e64726572697420697073756d206e6f6e2c2074656d7075732073656d002e204d616563656e6173206469676e697373696d206d6f6c6c69732072686f006e6375732e205365642066656c6973206e69736c2c2073656d706572206174002074656c6c75732065742c206d616c65737561646120616c697175616d2069007073756d2e0a0a496e74656765722073757363697069742076656c6974206900642073656d206665726d656e74756d2c207175697320756c747269636573200073656d2074696e636964756e742e2041656e65616e2076656c20646f6c6f7200206e65632074757270697320656c656d656e74756d207363656c65726973710075652e2050726f696e206f64696f20746f72746f722c20616c697175657420006567657420696d7065726469657420717569732c20736f6c6c69636974756400696e206964206c616375732e2050656c6c656e74657371756520656e696d2000656c69742c207375736369706974206964207175616d206e65632c206375720073757320616c697175616d2065726f732e20446f6e656320626962656e6475006d2073697420616d6574206d657475732071756973207363656c65726973710075652e204e756e6320616320747572706973206a7573746f2e205365642070006c61636572617420746f72746f72206e6563206c6163757320736f6c6c69630069747564696e207363656c657269737175652e2050686173656c6c7573207600697461652063757273757320657261742c20616320756c747269636965732000746f72746f722e0a0a43726173206d616c657375616461206772617669646100206a7573746f2076656c207661726975732e204e756c6c616d206c616f7265006574206964206d617572697320696e20646170696275732e20437572616269007475722073757363697069742065782065676574207361676974746973206c0075637475732e20447569732071756973207669766572726120656c69742c20007175697320756c6c616d636f72706572206e756e632e204d61757269732065006c656966656e642c206d6173736120696e20626962656e64756d2061636375006d73616e2c206578206e69736920766573746962756c756d206469616d2c2000757420696163756c697320647569206f72636920736564207475727069732e00204e756c6c6120626962656e64756d2c2076656c697420657520636f6e7661006c6c69732073656d7065722c206d65747573206e69736c20706f7375657265002061756775652c2068656e64726572697420696163756c6973207361706965006e207175616d206574206469616d2e2050726f696e2076656c206e69736c200061756775652e20566976616d75732076656e656e61746973206d657475732000736564206d617572697320706f73756572652c20612068656e6472657269740020656e696d20766976657272612e204475697320636f6d6d6f646f206172630075206574206d61676e6120756c7472696365732070656c6c656e746573717500652e204e616d20696e206c696265726f2076656e656e617469732c2076657300746962756c756d206175677565206c6163696e69612c20766172697573206c006f72656d2e20457469616d206574206c7563747573206c616375732e205175006973717565206d6f6c65737469652c206e69626820617420756c74726963650073206d61747469732c206c616375732075726e6120636f6e76616c6c697320006e756c6c612c20696e206d616c657375616461206e756c6c61206c656374750073206e6f6e206469616d2e20457469616d206567657420697073756d206d6100676e612e2050686173656c6c75732066656c6973207175616d2c2062696265006e64756d2073697420616d657420726973757320717569732c20677261766900646120657569736d6f642066656c69732e0a0a46757363652076656e656e610074697320696e74657264756d20656c69742c20717569732072757472756d20006f72636920706f7375657265206e6f6e2e20496e20656c656966656e6420650073742071756973206469616d20666163696c697369732c206163206d616c65007375616461206d61737361206f726e6172652e204c6f72656d20697073756d0020646f6c6f722073697420616d65742c20636f6e7365637465747572206164006970697363696e6720656c69742e205365642063757273757320616c69717500616d206f64696f2076656c2073757363697069742e2050656c6c656e74657300717565206163206c696265726f206163206572617420616c6971756574207300616769747469732e204d616563656e617320616e7465206c616375732c20730063656c65726973717565206574207472697374697175652076697461652c20006566666963697475722065676574207175616d2e2050686173656c6c7573200072757472756d20656c69742061756775652c2071756973206c6163696e696100206f7263692074696e636964756e74206e65632e20496e20636f6e736563740065747572206964206f726369206575207363656c657269737175652e205065006c6c656e74657371756520616c69717565742074656d707573206f64696f200075742076756c7075746174652e2051756973717565206c696265726f206e6900736c2c2072757472756d2061742073617069656e206e65632c206c616f726500657420747269737469717565206a7573746f2e2043726173206c6163696e690061206e6962682069642065726f732072757472756d207363656c65726973710075652e204e756e63206e6f6e206d6175726973206f7263692e204e616d2069006d706572646965742064617069627573206a7573746f2e20496e2076656c20006c6163757320706f72747469746f722c20766172697573207269737573207500742c20616c697175616d20746f72746f722e2043757261626974757220696e00206d657475732076656c2065782076656e656e6174697320706f7274612e0a000a53757370656e6469737365207365642070756c76696e6172206573742e200050686173656c6c7573206e6563206d6920656c656966656e642c20666575670069617420617263752061742c20706f72747469746f72206e6973692e204475006973206567657420626c616e6469742065782e2043726173206120647569200065726f732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e20496e2073656d206c696265726f2c20766f6c757470617420650067657420647569207365642c2070656c6c656e746573717565206c7563747500732065782e20536564206574206c656f20656765742065726f7320696e7465007264756d206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c006573746965206c65637475732c206e6f6e207665686963756c61206c6563740075732e20446f6e656320656666696369747572206d616c657375616461206d0061757269732c2065676574207472697374697175652073656d206c6f626f720074697320612e204e616d2074656c6c75732075726e612c2072686f6e63757300206665726d656e74756d20737573636970697420717569732c20696d70657200646965742071756973206f7263692e20557420637572737573206572617420007669746165206665726d656e74756d20666163696c697369732e204e756e630020757420626c616e646974206c6f72656d2e20566573746962756c756d207400656c6c7573206469616d2c20636f6e67756520657520706f7375657265207500742c206c6f626f7274697320612073656d2e204e756c6c616d206163206f72006369206e6f6e2075726e6120656c656966656e6420696d706572646965742e000a0a5072616573656e74207669746165206e69736c206672696e67696c6c61002c2073757363697069742065726174207365642c20656c656d656e74756d200072697375732e20446f6e656320696420756c74726963696573206f64696f2e002050726f696e206d6174746973206d61757269732061206d61737361206d610078696d7573207472697374697175652e2050686173656c6c757320656765740020706f7375657265206e6962682e2050686173656c6c757320736564206d650074757320657420657820636f6d6d6f646f20766f6c75747061742e2041656e0065616e206c6163696e69612c206175677565206e6f6e206566666963697475007220636f6e6775652c206d617373612073656d207669766572726120646961006d2c207175697320706f737565726520647569206c6f72656d2061206c6f7200656d2e20496e2076756c7075746174652064756920657520656c6974207375007363697069742074656d706f722e204372617320696d70657264696574206d0061757269732073656420657820637572737573206c616f726565742e2056690076616d7573206e65717565206573742c20666163696c697369732071756973002066656c697320717569732c20706f72747469746f7220706f72747469746f0072206e756e632e204675736365206e6f6e206c6f626f72746973206c6f7265006d2e0a0a4d616563656e617320766f6c7574706174206661756369627573200074656c6c757320756c747269636965732070756c76696e61722e205068617300656c6c7573206120706f72747469746f7220617263752e20446f6e6563207600756c70757461746520656e696d207475727069732c20612074696e63696475006e74206469616d2074656d706f722065752e20446f6e656320736f6c6c69630069747564696e2c206578207669746165206c75637475732076657374696275006c756d2c206e69736c20616e746520756c6c616d636f72706572206d692c2000617420756c7472696369657320656e696d20646f6c6f722073656420656c6900742e205072616573656e74206d6f6c6c697320656666696369747572207269007375732071756973207072657469756d2e20566573746962756c756d2071750069732066696e69627573206475692c2065676574206f726e617265206c6563007475732e20457469616d2065676574206a7573746f20766573746962756c75006d2c20626c616e6469742073656d20696e2c206d6178696d75732065726f73002e0a0a50686173656c6c7573206120697073756d206575206d69206375727300757320736f64616c6573206e656320736564206e6973692e204475697320660072696e67696c6c6120657374206163206c6967756c612070756c76696e61720020677261766964612e2050726f696e207669766572726120616363756d7361006e2073656d2c2076656c2072757472756d206e69736c20636f6e736571756100742076656c2e204e756e63206672696e67696c6c61206d657475732076656c002066617563696275732074656d706f722e205072616573656e7420636f6e73006563746574757220646170696275732061756775652c206574207363656c6500726973717565206c656374757320636f6e64696d656e74756d206e65632e20004e756e6320616363756d73616e2c2075726e61206e6f6e20706c6163657261007420756c7472696365732c206d617572697320617567756520736f6c6c69630069747564696e20616e74652c2073697420616d657420616c697175616d206c00616375732076656c69742061632074656c6c75732e205365642076656e656e00617469732c2074656c6c7573206e656320617563746f722064617069627573002c206c6f72656d2073617069656e2073656d70657220657261742c206575200076697665727261207175616d2075726e61207669746165206c6f72656d2e20004d616563656e6173207375736369706974206e756e63207574206d6f6c657300746965206d61747469732e20416c697175616d2076697461652065737420640069676e697373696d2064756920656c656d656e74756d20617563746f722e0a000a4d6f726269206e756c6c61206c616375732c2073656d706572207369742000616d65742066656c69732065742c2076756c707574617465206d616c65737500616461206475692e2050726f696e20656765742065726f73206c6563747573002e20446f6e65632074696e636964756e7420656c69742076656c20736f6c6c00696369747564696e2073616769747469732e2050726f696e206163206d6f6c0065737469652073656d2e2053757370656e646973736520696163756c69732000766573746962756c756d2073656d206574206d61747469732e2050726f696e00206c6f626f72746973206c616f72656574206469616d2c2073656420706f730075657265206573742074656d706f722065742e2053656420696e20746f7274006f72207175697320657820696d70657264696574206c6163696e6961207175006973206e6563206c6f72656d2e204d616563656e617320636f6e76616c6c69007320656666696369747572206f7263692c20657420706f72747469746f7220006e69736c20666163696c69736973206e6f6e2e205365642068656e647265720069742076656e656e617469732066656c697320666175636962757320656c65006d656e74756d2e204d6f7262692061632064756920736f64616c65732c207000656c6c656e74657371756520697073756d2076656c2c20736f64616c6573200076656c69742e20457469616d20656e696d206c6f72656d2c2076656e656e6100746973206163206c616375732065742c2065676573746173206d616c65737500616461206c65637475732e20416c697175616d20736f64616c6573206e6962006820656666696369747572206c656374757320616c697175616d2076657374006962756c756d206e6f6e2061206f64696f2e204d61757269732069642066610075636962757320656c69742c2073656d70657220706f72747469746f72206e00756c6c612e204675736365206f726e6172652c206a7573746f20696e20766500686963756c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e006775652074656c6c75732c20757420666175636962757320697073756d207200697375732061206e756c6c612e20457469616d207669766572726120707572007573207175616d2c2076656c20706f72747469746f72206d6574757320696d00706572646965742065752e204d6f72626920636f6e76616c6c697320636f6e00736571756174206475692e0a0a4d61757269732074726973746971756520610072637520717569732072686f6e6375732064696374756d2e204e756e632064006f6c6f72206c696265726f2c206d6178696d757320617420656e696d207574002c20677261766964612072686f6e637573207175616d2e2056657374696275006c756d206d61747469732074696e636964756e7420666163696c697369732e00204675736365206e756c6c612061756775652c20656765737461732073656400206c6163696e69612076697461652c206d616c657375616461206163206e75006c6c612e204d617572697320696163756c6973207072657469756d206c61630075732c20612066696e696275732075726e6120706f73756572652061632e20004d6f72626920696e74657264756d20666175636962757320657261742c206100206c616f72656574206d61676e6120626c616e64697420612e204372617320006e6563206d61676e612071756973206c6163757320656765737461732069610063756c69732e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f862b093fd6807e033db6b24db5485814f79a98c7e241432e95c2e327042f821f24f4a59315cf4e881205f472e99835729977ab0aa9da85a334c2935e670bd44e9b734481fc5ab72859c76f741008a92c2836932af9e60697b6319f3454a141154fcd583f862b091a6c5d19e50b1b85ae2ef07477160381babf00f0906f5219ce09dee2e00d7d347cb0586d90b491637cdb1715e62d152b0a660592b94033f9c5f7987005fa5d1f84435585ddaaf4b3adc0a198b983f2ae007db73b90067a96ec214b24d7b9820b9"`; +exports[`eip4844 > w/ prepareTransactionRequest 1`] = `"0x03fa04018cf8b601820311843b9aca008469126a1c8252089400000000000000000000000000000000000000008080c08504a817c800f842a0012580b7683c14cc7540be305587b0eec4e7ec739094213ca080e2526c9237c4a001243c18a024c835cce144b3b6b0eb878b7820c7c7b7d9feff80080d76519c4501a0ec39acdb478ca18ef5138f6538284ef890722bf144e739f977c1bdaa4778043da05bc417ee177d855b4e4d202a23446b2b708346bbee508dc3cefdb97d85b1b875fa040008ba020000004c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e0073656374657475722061646970697363696e6720656c69742e20557420756c0074726963696573206f726369207175616d2c2073697420616d657420656c65006966656e6420616e7465206672696e67696c6c61206e65632e2050726f696e0020616c697175616d20696e2074656c6c7573206772617669646120636f6e7600616c6c69732e2050726f696e2072757472756d20636f6e7365717561742065006e696d20736564206d616c6573756164612e2041656e65616e206567657374006173206d657475732076697461652073656d20636f6e64696d656e74756d200073757363697069742e2053757370656e64697373652061726375206475692c00206772617669646120696e2065726f732065742c206d617474697320616c6900717565742074656c6c75732e20496e74656765722070656c6c656e7465737100756520616e74652066696e69627573206d692072757472756d20616c69717500616d2e20496e7465676572206d6174746973206469616d2073656420666575006769617420696d706572646965742e20467573636520696420626962656e6400756d206d617373612e20496e74656765722061742074656d70757320656e69006d2e20416c697175616d206574206d6f6c6c6973206d61676e612e0a0a536500642073656d70657220656c656d656e74756d206d61737361206e6f6e2076690076657272612e205365642073697420616d6574206d61676e612065742069700073756d207472697374697175652076756c7075746174652e2050656c6c656e0074657371756520696e206c696265726f2073656d2e2053757370656e64697300736520736f64616c65732074656d706f722061756775652074696e63696475006e7420666163696c697369732e204d616563656e6173207363656c657269730071756520697073756d20617420666575676961742064696374756d2e204d61006563656e61732076656c2075726e6120736564206d6574757320756c7472690063696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6175726973002c2073757363697069742065676574206172637520696e2c2072757472756d002072757472756d206d617373612e204d616563656e617320616320696d706500726469657420656c69742c2073656420737573636970697420697073756d2e002050726f696e206d6f6c6573746965206d6173736120617263752c20612063006f6e64696d656e74756d206f64696f20756c7472696365732073697420616d0065742e205072616573656e742072686f6e6375732065782070757275732c200073656420706c616365726174206e756e63206f726e6172652065742e205068006173656c6c75732061206e696268206d616c6573756164612c20756c6c616d00636f72706572206e69736c2061742c2070656c6c656e746573717565206c6f0072656d2e2050686173656c6c7573206c6f72656d20697073756d2c20756c6c00616d636f727065722075742076756c70757461746520616c69717565742c20007661726975732065676574206c6f72656d2e0a0a4d61757269732068656e640072657269742074696e636964756e74207175616d20616320696e7465726475006d2e20496e206120697073756d206e6f6e207175616d206d6178696d7573200066696e696275732e20536564206f64696f2065782c206c6163696e69612076006974616520697073756d2073616769747469732c207665686963756c612065006765737461732072697375732e204e756c6c616d20616320656c656966656e006420646f6c6f722c20657520706f72747469746f722074656c6c75732e204d00616563656e617320746f72746f722076656c69742c20636f6e64696d656e7400756d20696420656e696d2076656c2c20657569736d6f64206f726e617265200072697375732e20416c697175616d206964206c6f72656d20696e7465726475006d2c20616c697175616d20707572757320696e2c207068617265747261206a007573746f2e205574207669746165206c656f206469616d2e204e756c6c612000656c656d656e74756d206e756e63206d657475732c206e65632076617269750073206f64696f2066696e69627573206e65632e20457469616d207175697320006e69736c20696e74657264756d2c20766f6c757470617420646f6c6f72206500742c2072686f6e637573206e6962682e204d616563656e6173206e6f6e207200757472756d2061756775652c20657520656c656966656e64206d692e20446f006e6563206c6f626f7274697320616e7465207669746165206175677565207000686172657472612c206174206c6163696e696120746f72746f7220707265740069756d2e0a0a4d616563656e61732061742074656d706f72206d61676e612c0020696e20737573636970697420656e696d2e204e756c6c6120656c656d656e0074756d2072757472756d2065782c206567657420736f64616c6573206e756c006c6120636f6e76616c6c69732076697461652e20566976616d757320646967006e697373696d2c2065726f7320657520656c656d656e74756d20736f6c6c69006369747564696e2c206c6f72656d20647569206c7563747573207361706965006e2c206163206d617474697320646f6c6f7220656e696d2073757363697069007420656c69742e204e756c6c61206567657420696d70657264696574206d65007475732e2043757261626974757220636f6e64696d656e74756d206120707500727573207363656c6572697371756520756c7472696365732e20416c69717500616d206c696265726f206d692c20766573746962756c756d2065742074656d00706f722065752c2070686172657472612073697420616d657420656c69742e0020557420696420616c697175616d206c696265726f2e0a0a53656420636f6e007365637465747572206c65637475732066696e69627573206c656374757320006f726e61726520706f7274612e20447569732073656420636f6e677565207300617069656e2c20757420696d7065726469657420656e696d2e205365642065006c656d656e74756d20696163756c6973206c6967756c612c206e6f6e207665006e656e617469732073617069656e206c75637475732069642e2053656420650066666963697475722c20616e7465207669746165206d6f6c657374696520650066666963697475722c20656c697420697073756d20636f6e64696d656e7475006d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f64696f20007669746165206c616375732e2053757370656e64697373652065676573746100732073656d206f64696f2c20696e20766573746962756c756d206e69736c2000706f72747469746f722076656c2e20496e2074696e636964756e742c206d65007475732061206c6f626f7274697320756c7472696365732c20697073756d20006d6574757320766573746962756c756d206e756c6c612c20617420696d706500726469657420746f72746f72206e6571756520736564206d692e204d61757200697320617420616e746520616e74652e20566573746962756c756d2063757200737573207665686963756c6120756c7472696365732e204d6f726269206c750063747573206120657374206e656320696d706572646965742e205574206e6f006e2075726e61206672696e67696c6c612c2065676573746173206d65747573002065752c2064696374756d20656c69742e20496e2064696374756d20707572007573206964206c656374757320616c69717565742074656d706f722e20416c00697175616d206572617420766f6c75747061742e204e616d206175677565200066656c69732c20696d70657264696574206174206d61676e61206e65632c200070656c6c656e746573717565207661726975732074656c6c75732e0a0a4d61006563656e617320656765742065782070656c6c656e7465737175652c20656c00656d656e74756d206469616d2061742c20656c656966656e6420646f6c6f72002e204e756c6c616d20626962656e64756d2065726f73206e656320646f6c6f007220646170696275732c2061742073616769747469732065737420636f6e6400696d656e74756d2e205072616573656e74206e6f6e2068656e647265726974002065726f732e204d616563656e617320636f6e736571756174206d617373610020766974616520647569207665686963756c612c20757420756c747269636500732072697375732073656d7065722e2053757370656e646973736520646170006962757320616e746520646f6c6f722c206120626962656e64756d2076656c0069742074726973746971756520696e2e204d616563656e6173206e65632069006163756c697320656e696d2e20566573746962756c756d20736564206f6469006f2064696374756d2c20766573746962756c756d206f64696f20656765742c0020656c656966656e64206d657475732e204d6175726973206163206c69626500726f20736564206c656f2070756c76696e617220636f6e76616c6c69732e200044756973207665686963756c61206f72636920656c69742e2056657374696200756c756d2065666669636974757220656765737461732065782061206f726e006172652e2051756973717565206f726e617265206e6962682063757273757300206d6f6c65737469652070656c6c656e7465737175652e0a0a446f6e6563200074696e636964756e7420666575676961742073757363697069742e2056657300746962756c756d20756c6c616d636f7270657220646f6c6f72206e6f6e206c006967756c6120766573746962756c756d2c20612070756c76696e6172206e75006e6320636f6e7365717561742e20416c697175616d2070756c76696e617220007661726975732074656c6c757320657520617563746f722e204d6175726973002076697665727261207665686963756c612065782c20766974616520616c69007175616d20617263752064696374756d2069642e205175697371756520706800617265747261207669746165206d61676e6120696e206f726e6172652e2056006573746962756c756d207072657469756d207363656c65726973717565206f0064696f20696420636f6e73656374657475722e204e756c6c61207365642065006e696d207574207175616d20636f6e736563746574757220747269737469710075652e0a0a4e756c6c616d206f64696f206d61757269732c20666575676961007420657520666575676961742075742c20706f737565726520766974616520006d61676e612e205365642076697461652073656d706572207475727069732c002073697420616d6574207363656c65726973717565206e756c6c612e2051750069737175652074656d707573206e6f6e206d692073656420706f7274746974006f722e2050726f696e206c656f2065782c20706f73756572652065752065670065737461732076656c2c206d6f6c657374696520736564206d657475732e20004e616d20747269737469717565206c6163757320657420697073756d206d610078696d757320756c747269636965732e204e756c6c616d20706f7375657265002073697420616d65742073617069656e206d6f6c657374696520756c6c616d00636f727065722e204d6f72626920656765737461732c20657261742061632000626c616e6469742064696374756d2c2073617069656e206e69736c2066696e0069627573206e6973692c2073656420656666696369747572206c6563747573002073656d20657520697073756d2e2050686173656c6c7573206c656f206175006775652c2076756c70757461746520706c616365726174206175677565206500752c2074656d706f722074696e636964756e74206c6f72656d2e204675736300652073697420616d65742073656d70657220746f72746f722e0a0a5375737000656e646973736520706f74656e74692e204d616563656e6173206964206461007069627573207475727069732c206e6f6e2076756c7075746174652065782e00204e756c6c616d2072757472756d206c6967756c61206e65632072697375730020737573636970697420766f6c75747061742e20416c697175616d206c756300747573206e657175652073697420616d65742061726375207472697374697100756520766f6c75747061742e205365642076697461652066656c6973206c6f0072656d2e20416c697175616d20706c61636572617420656c656d656e74756d002073617069656e2c2076697461652076756c7075746174652072697375732000766f6c757470617420696e2e204d616563656e6173207669746165206475690020657261742e2050686173656c6c7573206672696e67696c6c61207361706900656e2073656420647569207665686963756c612c2076617269757320636f6e00736563746574757220616e746520736f6c6c696369747564696e2e20437261007320696163756c69732c2073617069656e20696e74657264756d20696d7065007264696574206566666963697475722c20647569206d61757269732070756c0076696e617220697073756d2c2061742076656e656e61746973206e69736c20006f64696f2071756973207175616d2e204e756e63206566666963697475722000636f6e73656374657475722073656d7065722e204e756c6c616d20706f737500657265206e756c6c612072686f6e6375732070756c76696e617220756c74720069636965732e204e756e632074656c6c757320617263752c2068656e6472650072697420736f6c6c696369747564696e206469616d2076697461652c206865006e6472657269742066696e696275732065782e0a0a536564206c6f626f7274006973206d6174746973206c6967756c612c20766974616520636f6e76616c6c006973206c656f2064617069627573206e6f6e2e204d616563656e617320766900746165206c61637573206575206e69736c20617563746f7220656c656d656e0074756d206e6563207669746165206c65637475732e204d616563656e617320007669746165206f726369207669746165206d6920756c6c616d636f727065720020706f72747469746f72206964206c6f626f72746973206e69736c2e20446f006e6563206964206d617572697320697073756d2e20416c697175616d20657200617420766f6c75747061742e20566976616d7573206c6f626f72746973206e00696268207574206573742076756c70757461746520666575676961742e2049006e7465676572206c696265726f207175616d2c20756c74726963657320617400206f7263692061742c20636f6e677565206665726d656e74756d206d61737300612e20457469616d2069642065726f7320696163756c69732c20636f6e6469006d656e74756d206f7263692074696e636964756e742c206d6174746973206d00657475732e204d616563656e617320756c7472696365732073697420616d65007420646f6c6f722069642070656c6c656e7465737175652e2056657374696200756c756d20706f727461206d6178696d7573206e69736c2c20696e2066696e006962757320746f72746f7220766f6c75747061742075742e2055742067726100766964612c20646f6c6f7220756c7472696365732068656e6472657269742000666575676961742c20656e696d2073656d20696e74657264756d206c696775006c612c20616320656666696369747572206572617420656c6974206964206c006f72656d2e20496e2073697420616d657420756c6c616d636f72706572206c006f72656d2e0a0a50686173656c6c7573206c6967756c612075726e612c2063006f6e736571756174206574206c756374757320612c206f726e617265206574002061756775652e20566573746962756c756d20657420616e7465206174206c006163757320626962656e64756d20696d706572646965742e20457469616d200074757270697320617263752c2063757273757320766974616520766976657200726120612c2068656e64726572697420766974616520617263752e2050726f00696e206f726e617265206d6175726973207574206d61676e61206d6f6c657300746965206d61747469732e20446f6e65632074656d706f72206c6563747573002071756973206d617373612076756c70757461746520696e74657264756d2e002050726f696e206575206c6967756c61206469616d2e204d616563656e617300206461706962757320747572706973206c65637475732c2075742066616369006c6973697320656c6974206469676e697373696d2075742e204e756e632062006c616e646974206f726369206120616e746520666163696c697369732c2061007420636f6e76616c6c69732066656c697320666163696c697369732e2043750072616269747572207375736369706974206d692061206c696265726f20706f0073756572652c2071756973206f726e617265206a7573746f2076697665727200612e2050656c6c656e746573717565206861626974616e74206d6f72626920007472697374697175652073656e6563747573206574206e6574757320657420006d616c6573756164612066616d6573206163207475727069732065676573740061732e204e756c6c612070756c76696e6172207363656c6572697371756520006d61676e612c2065676574206c6f626f72746973206e69626820636f6d6d6f00646f2061742e20447569732065676574207661726975732066656c69732c2000636f6e64696d656e74756d20706c616365726174206c65637475732e20416c00697175616d20617563746f722074656d706f722075726e612065752070756c0076696e61722e204d6f726269206375727375732074656d706f72206e65717500652c206e6f6e20626c616e64697420646f6c6f7220666163696c697369732000656765742e2053656420736564206c6f626f727469732073656d2e0a0a4d61007572697320756c7472696369657320656c69742075726e612c2076656c2061006c697175657420707572757320617563746f722076697461652e20507261650073656e742076697665727261206f64696f2074656c6c75732c20717569732000706f7375657265206e756c6c6120616c69717565742061742e204c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e20437572616269747572200065676574206d65747573206174206c6967756c6120656c656966656e642070006861726574726120696e206d616c657375616461206475692e20447569732000636f6e7365637465747572206469616d2075742066657567696174207275740072756d2e20566976616d757320657569736d6f64206e69736c2076656c206d006178696d75732073616769747469732e20496e20636f6d6d6f646f207369740020616d6574206c6f72656d2065742074696e636964756e742e205574207065006c6c656e746573717565206e756c6c61206e6f6e206d617572697320636f6e0064696d656e74756d2c2069642076756c707574617465206f64696f20626c61006e6469742e2053757370656e6469737365206e6f6e207072657469756d206d0061757269732c206e65632074696e636964756e742073617069656e2e0a0a460075736365206461706962757320657569736d6f64207475727069732c2075740020656c656d656e74756d20656e696d20657569736d6f64206e6f6e2e204e61006d2061206e6962682074656c6c75732e2050656c6c656e7465737175652069006163756c697320746f72746f722073656420706f72747469746f7220636f6e0064696d656e74756d2e204375726162697475722066617563696275732074750072706973206d6178696d75732c2076656e656e6174697320616e746520736500642c206d6f6c6c69732072697375732e205365642074656d707573206d6167006e612065676574206e756e6320706f72747469746f722c206174207275747200756d207175616d20636f6d6d6f646f2e20496e746567657220626c616e64690074207661726975732074656c6c75732073697420616d65742072757472756d002e2050726f696e206d6f6c6c697320747269737469717565206e6571756520007365642074656d7075732e204475697320706c6163657261742c206f726369002069642064696374756d20766573746962756c756d2c206c6967756c612064006f6c6f7220766f6c7574706174206c656f2c2076697461652066617563696200757320656e696d206e756c6c6120717569732065782e20437261732066617500636962757320657374206573742c2073697420616d657420616363756d7361006e206c6163757320696d706572646965742069642e204e616d206d6174746900732c206e756e6320736564206469676e697373696d20706c6163657261742c00206d617373612075726e6120696163756c69732076656c69742c207175697300206c7563747573206469616d206a7573746f206575206e6973692e20416c69007175616d206572617420766f6c75747061742e0a0a50656c6c656e74657371007565206e6571756520617263752c20636f6e677565206e6f6e2061756775650020717569732c2074726973746971756520696e74657264756d206e756e632e002050726f696e20646f6c6f7220746f72746f722c206461706962757320736500642070656c6c656e74657371756520612c2072757472756d2065676574206e006973692e20437261732065742074656d7075732074656c6c75732e204e756c006c6120706f72747469746f722c206e69736920657520617563746f7220766100726975732c206572617420746f72746f722072757472756d20747572706973002c206e6f6e2068656e64726572697420616e7465206e6571756520757420650073742e20416c697175616d2076756c7075746174652076656c69742076697400616520657569736d6f6420656765737461732e20496e7465676572207275740072756d206d6f6c6c697320617263752c20757420756c74726963696573206a007573746f206d6f6c6c697320656765742e20457469616d2061742066696e690062757320656e696d2c206574206d6174746973206d61757269732e204d61650063656e617320696e20616c69717565742061756775652e204e616d20756c7400726963657320656c656d656e74756d20617263752076656c20616c69717561006d2e20566573746962756c756d20696e206c6967756c6120747269737469710075652c206661756369627573206f64696f20656765742c206c6f626f7274690073206a7573746f2e204d6f726269206575206e756e632073697420616d65740020726973757320636f6e73657175617420616c697175657420736564206163002065782e20496e2068656e64726572697420756c74726963696573206c696700756c612c2071756973207375736369706974206c6563747573206469637475006d2065752e20536564206c616f7265657420636f6e67756520756c747269630065732e2050686173656c6c7573207375736369706974206d6173736120612000666163696c6973697320696d706572646965742e0a0a447569732074696e63006964756e742065726f7320717569732067726176696461207661726975732e002053757370656e6469737365206e6f6e206475692070757275732e20496e7400657264756d206574206d616c6573756164612066616d657320616320616e74006520697073756d207072696d697320696e2066617563696275732e20446f6e0065632061742070756c76696e61722066656c69732e20446f6e6563206e65630020616c697175616d2065726f732c2064696374756d20626962656e64756d2000617263752e20496e206e656320646f6c6f722066696e696275732c20707265007469756d206c6967756c612065742c20636f6e7365717561742065782e2049006e206861632068616269746173736520706c617465612064696374756d7374002e20457469616d2074656c6c757320656e696d2c20696e74657264756d207300656d70657220697073756d20736f64616c65732c206772617669646120667200696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e6961206a750073746f20736f6c6c696369747564696e206c616f72656574206d6f6c6573740069652e20457469616d20616320766573746962756c756d207175616d2c2069006420657569736d6f6420697073756d2e205574206174206772617669646120006c6f72656d2e2053757370656e646973736520696e74657264756d20656c65006966656e64206c65637475732c2065752073656d7065722070757275732076006f6c757470617420612e0a0a55742076656c20617567756520756c747269630065732c2074696e636964756e74206d6173736120612c20736167697474697300206e69736c2e2050726f696e206567657420616e746520616c697175616d2c00206f726e6172652061756775652070656c6c656e7465737175652c2064617000696275732070757275732e20496e206574206d6574757320617263752e205000656c6c656e74657371756520616c697175616d20626c616e6469742061726300752071756973207472697374697175652e204d617572697320746f72746f7200206d617373612c206d6178696d757320717569732076617269757320612c2000706f72747469746f7220636f6e73656374657475722073656d2e2050726f69006e207665686963756c6120707572757320657420696163756c697320636f6e0073656374657475722e20557420736f6c6c696369747564696e2066696e696200757320657820696e20656c656d656e74756d2e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e205072616573656e74206e656320696d7065007264696574206d61676e612e205574206d616c65737561646120696420707500727573206e656320766573746962756c756d2e2053757370656e64697373650020616363756d73616e2065726174206c656f2c20696e20666175636962757300206469616d20696163756c69732073697420616d65742e204475697320736f006c6c696369747564696e206c6563747573207175697320656e696d206c616300696e696120657569736d6f642076656c2075742061756775652e0a0a416c69007175616d20756c7472696369657320636f6e76616c6c69732074656c6c7573002c206964206567657374617320656c697420736167697474697320696e2e20004372617320706f72747469746f72206e69736920656765742073617069656e0020636f6e76616c6c697320706f73756572652e204d6175726973206772617600696461206e65717565207669746165206c696265726f206375727375732c2000696420636f6e736571756174206e657175652072686f6e6375732e20496e74006567657220616c69717565742065676574206e696268206163207068617265007472612e204e756c6c616d20696163756c6973206e69736c2066656c69732c00207175697320696d70657264696574206e756c6c6120756c74726963657320007365642e205175697371756520747269737469717565206c61637573206174002072686f6e63757320706f7274612e204e616d20616320636f6e64696d656e0074756d2075726e612e20536564206e656320706f72747469746f72206e696200682e205365642067726176696461206d61676e612069642070757275732070006f737565726520766573746962756c756d206e6f6e20736564206e6973692e0020566573746962756c756d2061726375207475727069732c20696163756c6900732076656c20636f6e7365717561742069642c206c6f626f72746973207369007420616d65742065782e205072616573656e7420717569732074656d706f72002061756775652e204e756c6c61206567657420656e696d20656c656966656e00642c2074696e636964756e74206c696265726f2073697420616d65742c206d006174746973206e6973692e20446f6e65632064756920657261742c2070756c0076696e61722076656c207075727573206e65632c20666163696c69736973200066696e69627573206c6f72656d2e204e756c6c616d20756c7472696365732000707572757320766573746962756c756d20636f6d6d6f646f20616c69717561006d2e0a0a4f72636920766172697573206e61746f7175652070656e61746962007573206574206d61676e6973206469732070617274757269656e74206d6f6e007465732c206e61736365747572207269646963756c7573206d75732e204e75006e6320626c616e646974206e756c6c612072697375732c2076656c20736f6400616c6573206c6f72656d206f726e6172652061632e20496e7465676572206e006f6e20646f6c6f7220626962656e64756d2c206f726e61726520746f72746f007220656765742c20756c7472696369657320697073756d2e2041656e65616e002066696e69627573206469676e697373696d206f726e6172652e204d6175720069732074656d7075732c206572617420617420626962656e64756d2061756300746f722c206c656f20656c6974206c6163696e6961206f64696f2c206174200074656d7075732061726375206475692071756973206573742e20507261657300656e74206672696e67696c6c61206c6f72656d206d616c6573756164612070006f72747469746f7220696d706572646965742e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d6f7262692076697461650020666163696c69736973206c6f72656d2c20766974616520636f6e7365717500617420697073756d2e20457469616d20696420656c656d656e74756d2065720061742e204e616d20646f6c6f72206c656f2c2074656d706f722061632065780020717569732c206469676e697373696d206665726d656e74756d20616e7465002e0a0a446f6e65632061206e756c6c612072697375732e204d6175726973200066617563696275732c206e756e63206163206d6178696d75732076656e656e00617469732c206d61676e612076656c6974207072657469756d20616e74652c00206e6f6e206665726d656e74756d20656c6974206d6175726973206e6f6e20006e756e632e20446f6e65632068656e6472657269742075726e61206174207400656c6c757320636f6e76616c6c69732c20616320666175636962757320656c006974206c6f626f727469732e204e756c6c616d20626962656e64756d20656c00656966656e64206d61676e612073697420616d657420696e74657264756d2e0020496e20696e20736f64616c657320746f72746f722c206e6f6e206c6f626f0072746973206d692e205072616573656e742076656c2073656d2061206f6469006f2076656e656e6174697320666163696c697369732e20566573746962756c00756d206163206d6f6c657374696520646f6c6f722c2061742066696e6962750073206e6973692e0a0a566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2046757363652061632074656d70757320617263752c2076697461650020696163756c6973206e657175652e2055742061206e69736c207574207665006c697420636f6e73657175617420636f6e64696d656e74756d207669746165002065676574206e6962682e2044756973206574206d61676e6120616c6971750065742c20636f6e76616c6c697320656c69742069642c20756c6c616d636f7200706572206d692e20566976616d757320696d706572646965742066656c697300207175697320636f6e7365717561742072757472756d2e204d6f7262692075007420617263752073697420616d657420617567756520636f6e677565207469006e636964756e742e2053757370656e64697373652061206d6174746973206f007263692e204e756e6320656765737461732c2076656c69742073656420646900676e697373696d2073656d7065722c20656c6974206d61757269732062696200656e64756d206e657175652c206567657420616c697175616d206e69736920006e65717565206120616e74652e204e616d2066657567696174206e657175650020646f6c6f722e20566573746962756c756d20616e746520697073756d20700072696d697320696e206661756369627573206f726369206c75637475732065007420756c74726963657320706f737565726520637562696c6961206375726100653b20557420696e20636f6e736563746574757220646f6c6f722e205175690073717565206e6f6e20636f6e677565206e657175652e0a0a4e756c6c6120730063656c657269737175652c206e65717565206567657420636f6e76616c6c69007320626962656e64756d2c206c6f72656d206d65747573207068617265747200612070757275732c2073656420626c616e6469742065726174206172637520006575206e6973692e204d617572697320706c616365726174206d6173736120006575206e6571756520766f6c75747061742c2073697420616d6574207669760065727261207269737573207363656c657269737175652e20496e2076656c2000766573746962756c756d206e756c6c612e20416c697175616d2072686f6e630075732061632061756775652076656c2076756c7075746174652e204d617572006973207669746165206469616d20696d706572646965742c20766f6c757470006174206e6962682065752c206661756369627573206d657475732e2045746900616d2070656c6c656e74657371756520747572706973206964206e6962682000636f6e73657175617420736f6c6c696369747564696e2e204e756e63206567006574206a7573746f2070756c76696e6172206d657475732072757472756d20006c75637475732073697420616d65742061206d657475732e204e756c6c612000666163696c6973692e2053757370656e646973736520657520617567756520006c65637475732e2053757370656e646973736520736f6c6c69636974756469006e20657569736d6f64207661726975732e2050686173656c6c757320616e74006520657261742c20666175636962757320696420746f72746f72206e65632c00207363656c6572697371756520766172697573206e756e632e0a0a45746961006d206672696e67696c6c6120766f6c7574706174206d692c20706f73756572006520766573746962756c756d206c6967756c6120756c74726963657320696e002e20446f6e6563207665686963756c6120747572706973207175697320756c0074726963696573207661726975732e20446f6e65632073656d70657220616e00746520657261742c20616320666575676961742074656c6c75732062696265006e64756d2069642e20446f6e656320697073756d206e69736c2c2070756c7600696e6172206e6563207175616d20696e2c20736f6c6c696369747564696e2000696e74657264756d20656e696d2e20566976616d7573206c616f72656574200074656c6c75732065676574206f72636920636f6e64696d656e74756d20736300656c657269737175652e2050726f696e206574206661756369627573206f6400696f2c206163206566666963697475722061756775652e20557420696e7465007264756d20747269737469717565206475692074656d70757320706f727461002e20416c697175616d206672696e67696c6c6120707572757320766974616500206e6962682074656d706f7220626962656e64756d2e205175697371756520006574207361676974746973206f7263692c2061742074656d706f722076656c0069742e205365642066696e696275732073617069656e20657420747572706900732073656d7065722c206e6f6e206d6f6c6573746965206e756e63206c7563007475732e20536564206a7573746f206e6973692c20736f6c6c69636974756400696e20696e20697073756d20696e2c206665726d656e74756d20707265746900756d206f64696f2e204e756c6c6120757420766f6c75747061742073656d2e000a0a436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e00204e756c6c61206e6f6e206f726369206d692e20566573746962756c756d20007361676974746973206f72636920657520636f6e64696d656e74756d20636f006e6775652e20446f6e656320736564206d61676e612070656c6c656e746573007175652c20706c61636572617420697073756d207365642c20616c69717561006d2073656d2e2043757261626974757220696d706572646965742061756775006520657420656c697420706c6163657261742c2061742070756c76696e61720020617263752066617563696275732e20566573746962756c756d2066657567006961742c20697073756d20617420756c747269636573206d6f6c6573746965002c206e65717565206f64696f20656c656966656e642076656c69742c206174002065676573746173206f72636920647569206574206573742e20496e746567006572207574206a7573746f206c65637475732e204e756c6c616d20666575670069617420696e74657264756d206f726369206e656320617563746f722e0a0a00446f6e656320616c697175657420616363756d73616e206d617373612c2076006974616520666163696c697369732072697375732e20467573636520707265007469756d206e756e63206e6f6e20636f6e73657175617420656c656d656e7400756d2e204d616563656e617320636f6e64696d656e74756d207363656c657200697371756520706f72747469746f722e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e204d6175726973206e6563207075727573206661750063696275732c2074656d707573206469616d206e65632c20756c74726963650073206f7263692e2041656e65616e2066617563696275732c2073617069656e0020757420706f72747469746f7220616c69717565742c206e756e6320657261007420636f6e6775652061756775652c2071756973206469676e697373696d200073656d20697073756d206574206469616d2e2053757370656e646973736520006772617669646120657569736d6f6420697073756d2c206120696d7065726400696574206e756c6c6120636f6e7365717561742061632e2050726f696e20710075697320636f6e73657175617420697073756d2c20696e20737573636970690074206e657175652e204e616d2076697461652076697665727261206c656f2e002041656e65616e20756c74726963657320706c61636572617420626c616e640069742e20496e7465676572206e6571756520617263752c20666163696c69730069732073697420616d6574206f726369207365642c20766573746962756c75006d206672696e67696c6c6120746f72746f722e2050656c6c656e746573717500652066657567696174206575206c6967756c612065676574206c6f626f72740069732e20536564206575206d6f6c6c69732065782c20696e206461706962750073206c616375732e20467573636520616c697175616d2c206e657175652063006f6e73657175617420666163696c6973697320706c6163657261742c2069700073756d206f72636920696163756c6973206a7573746f2c20696d706572646900657420706f7375657265206d61676e61206f64696f206e65632075726e612e0020437572616269747572206d6f6c6c69732c20657820696e20666163696c690073697320766f6c75747061742c206e697369206a7573746f20656c65696665006e64206c696265726f2c20612070656c6c656e74657371756520656e696d20006d61676e612071756973206e6962682e204d617572697320756c7472696369006573206469616d2065676574206c616375732070756c76696e61722c2065740020636f6e64696d656e74756d206e6962682073656d7065722e0a0a56697661006d757320746f72746f72207175616d2c20616c697175657420696e206e756e00632075742c206f726e61726520756c74726963696573206e657175652e205000656c6c656e74657371756520637572737573206163206a7573746f2076697400616520756c747269636965732e20446f6e65632065676574206e69736c207100756973206f726369206772617669646120766f6c75747061742065742069640020656e696d2e2053656420706f72747469746f72206c616375732071756973002073656d20756c74726963657320666163696c6973697320757420656765740020656e696d2e20416c697175616d20696163756c69732065726174206e656300206d617373612072686f6e6375732068656e6472657269742e20416c69717500616d206f726e6172652070686172657472612075726e612065752061756374006f722e20566976616d7573206964206469616d206120617567756520656765007374617320636f6e6775652e205072616573656e742068656e647265726974002073617069656e20696e206f72636920636f6e6775652c206567657420636f006e6775652073617069656e20696d706572646965742e205365642061756374006f7220657374206163206c7563747573206c6163696e69612e20496e746567006572206e65717565206e657175652c20656c656966656e642076656c206c65006f2069642c20626962656e64756d20756c6c616d636f727065722073656d2e0020566573746962756c756d2076656c20666163696c69736973206573742e2000536564207175697320766f6c7574706174207475727069732e0a0a4e616d20006d6174746973206d6f6c6573746965206d61676e612c20766974616520636f006e736571756174206d657475732e204e616d206d6178696d75732065756973006d6f6420656c6974206e6563206f726e6172652e204e756c6c61206d6f6c6c00697320696420707572757320717569732074656d706f722e2050656c6c656e007465737175652072686f6e637573206567657374617320666575676961742e00204475697320756c74726963657320656c6974207574206c6f72656d207075006c76696e617220736f6c6c696369747564696e2e2043757261626974757220006672696e67696c6c612076756c7075746174652076656e656e617469732e20004d61757269732074656d706f7220617563746f722075726e612e0a0a496e20006861632068616269746173736520706c617465612064696374756d73742e20004d616563656e617320617563746f72206d617474697320626962656e64756d002e20566573746962756c756d2074656d7075732072686f6e637573206c6563007475732c2069642072686f6e637573206e69736c206d6178696d7573206174002e204475697320766172697573206672696e67696c6c61206175677565206e00656320666163696c697369732e204e756c6c6120696163756c69732061207000757275732065676574206665726d656e74756d2e20457469616d206e656320007361676974746973206f7263692e205072616573656e74206d6174746973200066656c69732072697375732e204e616d206567657420656c656d656e74756d00206c6967756c612e20436c61737320617074656e742074616369746920736f0063696f737175206164206c69746f726120746f727175656e74207065722063006f6e75626961206e6f737472612c2070657220696e636570746f732068696d00656e61656f732e2050686173656c6c75732065676573746173207075727573002070656c6c656e7465737175652c2070656c6c656e7465737175652076656c006974206e6f6e2c206772617669646120656c69742e0a0a536564206e6f6e200074656d7075732070757275732e2053757370656e64697373652070756c7669006e6172206d65747573206e657175652c206e6f6e207472697374697175652000697073756d20706f727461206e6f6e2e205574206567657420747572706973002074696e636964756e742c2074656d706f722073656d20717569732c207665006e656e61746973206d61676e612e20566573746962756c756d206964206d610078696d75732072697375732e204475697320616c697175657420706f7375650072652066656c697320696e20706c6163657261742e2051756973717565207600656c6974206f64696f2c20656666696369747572206174206d617373612061002c20747269737469717565206f726e61726520646f6c6f722e204e756c6c61006d206567657374617320706c616365726174206475692075742073656d706500722e20416c697175616d20717569732073617069656e206d657475732e20440075697320656c656d656e74756d2c2065726174206e656320626c616e646974002072686f6e6375732c2065726f7320656e696d207363656c65726973717565002061756775652c206e656320766976657272612065726f73206c656f20657500206c656f2e204d6f7262692073656420666163696c69736973206a7573746f002e20566976616d75732073697420616d6574206d61676e612068656e64726500726974206c656f206772617669646120617563746f722e0a0a4e756e63206300757273757320616c6971756574206f64696f2e204e756e6320696163756c6900732065742074757270697320617420756c747269636965732e204e616d207600756c70757461746520656e696d20656765742070757275732074656d70757300206f726e6172652e204e756c6c616d20636f6e736571756174206d6f6c657300746965206469616d2c20766974616520756c747269636573206e6962682070006f72747469746f722065742e20566573746962756c756d20766f6c757470610074207574206c6f72656d20656765742070656c6c656e7465737175652e204e00616d2064617069627573206c696265726f206d692e2050656c6c656e746573007175652074696e636964756e74206e696268206e657175652c206120696e7400657264756d206c6f72656d20636f6e6775652076656e656e617469732e205000686173656c6c757320696e2073656d206574206d617373612066617563696200757320616363756d73616e2074696e636964756e742076656c206e6962682e000a0a4e756c6c61206d616c657375616461206e69736c206e69736c2c20657500206d6f6c657374696520697073756d206d6f6c6c697320656765742e20416c00697175616d2076756c70757461746520707572757320736564206c6967756c006120736167697474697320616c69717565742e20496e20616c697175616d20006469616d20677261766964612072757472756d2070756c76696e61722e2049006e206d616c6573756164612075726e612065676574206f726e6172652065670065737461732e20566573746962756c756d207669746165207363656c6572690073717565206573742c206567657420766573746962756c756d206f7263692e002050656c6c656e746573717565206672696e67696c6c61206d616c6573756100646120706f73756572652e204e756c6c6120696e74657264756d206c656f20007669746165207072657469756d20706f73756572652e204e616d206d6f6c6c0069732065726f73207365642074656c6c7573206d6174746973207361676974007469732e0a0a53757370656e646973736520636f6e64696d656e74756d206c006563747573206574206c6f72656d20657569736d6f64206375727375732e20004d6175726973206172637520617263752c2072757472756d20636f6e7365710075617420707572757320696e2c206567657374617320696163756c6973206c00696265726f2e204d6f726269207068617265747261206d6178696d7573206d00617373612c206567657420626c616e646974207475727069732070756c7669006e61722065742e204d6175726973206e656320646f6c6f722076656e656e61007469732c2070656c6c656e746573717565206d61676e612069642c2061756300746f722075726e612e204d616563656e6173207669766572726120706f7274007469746f72206e6973692c2076656c20756c74726963696573206572617420006375727375732061742e20467573636520636f6e6775652074656c6c7573200076697461652073617069656e20747269737469717565206665726d656e7475006d2e20446f6e656320696d706572646965742073656d206e6f6e206d61757200697320756c7472696365732076656e656e617469732e204372617320756c74007269636573206c6f72656d206c656f2e20536564207365642076656e656e6100746973206e657175652c20766974616520656765737461732066656c69732e00205072616573656e7420617420616e746520706f7274612c20636f6e64696d00656e74756d206c65637475732076697461652c20706f72747469746f72206e00657175652e204e616d2074656c6c7573206c616375732c20747269737469710075652074656d706f72206e756c6c61206e65632c20706c6163657261742062006962656e64756d2061756775652e204e756c6c616d20657569736d6f64207600697665727261206f7263692c206575206772617669646120656e696d20636f006e64696d656e74756d20626962656e64756d2e2053757370656e6469737365002065676574206c6f72656d20766974616520697073756d20706c616365726100742070656c6c656e74657371756520696420636f6d6d6f646f206f64696f2e00204675736365206d61747469732075726e612075742064756920636f6d6d6f00646f2c206e656320636f6d6d6f646f206475692070686172657472612e0a0a00496e206861632068616269746173736520706c617465612064696374756d7300742e204e616d206a7573746f206e6962682c207665686963756c612061206c006967756c612065752c206d617474697320656c656966656e64206c6967756c00612e205175697371756520656765742074757270697320612061756775652000747269737469717565206665726d656e74756d2e204e756c6c616d20766974006165206c61637573206d6f6c65737469652c207363656c65726973717565200061756775652061742c20656c656966656e64206e69736c2e204e756c6c6120006d61676e612065726f732c20636f6e76616c6c697320736564206f64696f20007363656c657269737175652c206c6f626f7274697320636f6e76616c6c697300206e6962682e204e616d2061742073616769747469732061756775652c2065007520766172697573206c6967756c612e204e756c6c616d20706f737565726500206d6178696d7573206e697369206e656320616c69717565742e2045746961006d207363656c657269737175652071756973206469616d20656765742065670065737461732e205072616573656e7420756c74726963696573207363656c6500726973717565206d69206e656320626962656e64756d2e2056657374696275006c756d20616c697175616d2074656c6c75732076656c206a7573746f206c61006f726565742c207574207072657469756d2073656d206f726e6172652e204e00616d20616e7465206e6962682c2066696e69627573206e6563207361706965006e20612c2076656e656e6174697320636f6e6775652072697375732e20496e002076656c206e65717565206120656e696d20636f6e7365637465747572207000656c6c656e7465737175652e20566976616d757320636f6e76616c6c69732000657374207574206e756c6c6120736167697474697320706f73756572652e200050656c6c656e74657371756520626962656e64756d20736f64616c65732069007073756d2065742068656e6472657269742e0a0a536564207269737573206600656c69732c20736f6c6c696369747564696e206575206d6f6c6573746965200065742c20657569736d6f6420656765742065782e20457469616d206567657400206e756c6c61206e6962682e20437261732067726176696461206120746f7200746f722076697665727261207661726975732e2050686173656c6c7573206600696e696275732c2073617069656e20657420616c697175616d20756c747269006365732c206d61757269732065726f7320706f72747469746f722065726f73002c20616320636f6e677565206c656f206573742065676574206d6175726973002e20536564206e756e632076656c69742c2065676573746173207365642065006c69742065752c20657569736d6f64206d6178696d75732073617069656e2e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b2056657374006962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071756973200076756c7075746174652061742c20736f6c6c696369747564696e207369742000616d6574206573742e205365642070756c76696e61722c2076656c69742073006564206469676e697373696d20766976657272612c206d6173736120646f6c006f722073656d706572206c6f72656d2c206e6f6e206d6f6c6573746965206d006175726973206f64696f2065742070757275732e204d616563656e6173206c006f626f7274697320696e74657264756d206e756e63207574206d6f6c6573740069652e20536564206d6f6c6c697320636f6d6d6f646f2076656e656e61746900732e20496e74657264756d206574206d616c6573756164612066616d65732000616320616e746520697073756d207072696d697320696e206661756369627500732e2055742073656420617263752076656c69742e204d617572697320617500677565206e756c6c612c206f726e617265206e656320616c697175657420730065642c20636f6d6d6f646f20696e206475692e0a0a496e746567657220736f006c6c696369747564696e2075726e612065676574206e756c6c61207068617200657472612c206e6f6e20766172697573206e657175652070756c76696e6172002e204e756c6c61207574206c656374757320736564206d617572697320756c006c616d636f7270657220706f7274612e2051756973717565206e656320646900616d207472697374697175652c2064617069627573206c656374757320612c0020616c697175616d206e6962682e2043757261626974757220616c697175650074206d6f6c6c69732073617069656e207574206d6f6c65737469652e205068006173656c6c7573207361676974746973206e69736c207669746165206d617800696d75732066617563696275732e20446f6e6563206d6178696d757320612000647569206575207661726975732e20457469616d2072686f6e63757320746f0072746f722076656c206e756e63206665726d656e74756d2070756c76696e61007220736564206e656320657261742e20416c697175616d207574206c656f20006e6f6e206e69736920646170696275732076756c7075746174652e20496e74006567657220616363756d73616e20636f6e6775652072686f6e6375732e205500742076756c707574617465206f64696f20656c69742c207072657469756d200073656d7065722065726174207375736369706974206e65632e205375737065006e6469737365206d6174746973207475727069732076656c2065726f73207000756c76696e617220756c7472696365732072757472756d2073697420616d65007420616e74652e204475697320656c656966656e64206d6178696d75732061007567756520696e207363656c657269737175652e20446f6e6563206e6f6e2000746f72746f722073697420616d657420657261742066617563696275732061006c69717565742e205365642074656d70757320747269737469717565207269007375732c207072657469756d207472697374697175652064756920636f6e7600616c6c69732065752e0a0a50686173656c6c757320616c697175616d2074750072706973206174206c656f20706f73756572652c2073656420616363756d7300616e206e69736c2074656d7075732e204d616563656e6173207669746165200073617069656e206a7573746f2e2050686173656c6c75732074656d70757320006672696e67696c6c612070656c6c656e7465737175652e2050656c6c656e7400657371756520617420646f6c6f72206964206d6175726973206c616f726565007420637572737573206e6f6e2071756973206d657475732e204475697320610063206d69206e6f6e2074656c6c7573206461706962757320706f7274746974006f72206e6f6e206574206c6967756c612e20457469616d20736f64616c6573002069642074757270697320696e20756c747269636965732e2053656420616e007465206c616375732c2068656e64726572697420757420706f72747469746f00722075742c206665726d656e74756d207669746165206c656f2e0a0a437261007320706861726574726120616e746520616e74652c2076756c70757461746500206665756769617420726973757320666175636962757320656765742e205000726f696e2073697420616d65742074656c6c75732072686f6e6375732c20760065686963756c61206469616d206e6f6e2c2065676573746173206573742e200043726173207669746165206c696265726f206e657175652e20446f6e65632000697073756d2066656c69732c20696e74657264756d2076656c20656765737400617320656765742c20616c6971756574206e65632065726f732e20446f6e650063206e697369206d617373612c20766573746962756c756d2076656c20656e00696d2065742c206461706962757320636f6e67756520697073756d2e20507200616573656e7420647569206573742c20636f6e677565207669746165206d6f006c657374696520717569732c206d616c657375616461206567657420646961006d2e20457469616d206e6f6e2076697665727261206f7263692e2056657374006962756c756d206d6f6c6c69732065726f73206174206c656374757320706f0072747469746f7220756c6c616d636f727065722e20496e2066657567696174002066656c6973206e656320657820756c7472696365732c2073656420666572006d656e74756d206a7573746f2066696e696275732e2044756973206e6f6e2000706f7375657265206e657175652c20657420636f6e736571756174206f726300692e20416c697175616d206575206a7573746f20756c7472696365732c207600656e656e6174697320746f72746f722061632c2072757472756d20656e696d002e0a0a496e7465676572206469676e697373696d207175616d206575206d6100757269732066696e6962757320666163696c697369732e204d617572697320006c6163696e6961206a7573746f206c65637475732c2076656c206c756374750073207175616d20766f6c757470617420766f6c75747061742e205574206e6f006e206f726369206e756c6c612e2041656e65616e20617563746f72207361700069656e206120726973757320656c656d656e74756d206d616c657375616461002e204e616d2065676574206c6563747573206c696265726f2e20416c69717500616d20697073756d206d617373612c20736f6c6c696369747564696e2061630020696163756c697320612c206d6178696d7573206575207475727069732e20004d616563656e61732076656c206e756e632076656c2065726f7320766f6c750074706174207472697374697175652076697461652061742065782e204375720061626974757220657420656e696d206d6f6c6c69732c207072657469756d2000646f6c6f7220717569732c2068656e647265726974206c616375732e20496e002074656d70757320657569736d6f6420646f6c6f722c206964206469637475006d206d657475732072757472756d20717569732e0a0a43757261626974757200207072657469756d206c6f626f72746973207363656c657269737175652e20004d61757269732076656c206d69206120697073756d207665686963756c6120007363656c657269737175652e204e756c6c6120666163696c6973692e20446f006e656320636f6e736571756174206f64696f2061206572617420756c6c616d00636f7270657220666163696c697369732e2044756973206d6173736120656e00696d2c20756c74726963696573206e6f6e2075726e6120717569732c2065750069736d6f64207072657469756d20746f72746f722e20457469616d2068656e00647265726974206c656374757320766974616520656c656d656e74756d207600756c7075746174652e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e20536564206f64696f206d61676e612c20636f6e7365006374657475722073697420616d657420706f7274612076697461652c2076690076657272612061206d61676e612e204372617320657520697073756d20656c00656966656e64206f64696f20766976657272612072757472756d206574206e006f6e206c6f72656d2e20517569737175652071756973206c656f2075742072006973757320756c6c616d636f727065722073757363697069742076656c206e006563206469616d2e20467573636520646170696275732065726f73206e6f6e00206e69736c2066617563696275732c20657420656666696369747572207365006d20706c6163657261742e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20416c697175616d2069642073656d206163206c6f72656d2000706f72747469746f72206c616f72656574206163207175697320656c69742e000a0a446f6e65632076656c20646f6c6f72206d6178696d75732c206d6f6c6c006973206d61676e612073697420616d65742c2070686172657472612076656c0069742e2041656e65616e2070656c6c656e74657371756520737573636970690074206c6563747573206174207665686963756c612e20446f6e6563206e656300206661756369627573206469616d2e204e616d20656765742064756920657500206d6175726973206461706962757320616c697175616d2064696374756d20006575206d61757269732e20446f6e6563206c6563747573206d657475732c20006d6f6c657374696520636f6e73657175617420756c747269636965732065670065742c206c616f72656574206e6563206475692e20446f6e6563206575206c00656374757320717569732076656c697420656c656d656e74756d2065756973006d6f642e204d616563656e617320626962656e64756d206c61637573207369007420616d657420736f6c6c696369747564696e206c6163696e69612e0a0a510075697371756520737573636970697420706f73756572652070757275732063006f6e64696d656e74756d20706f7274612e20457469616d2068656e64726572006974207574206c696265726f20696e2072757472756d2e204e756c6c616d2000756c74726963696573206c696265726f20657420647569206c6f626f7274690073206672696e67696c6c612e20496e746567657220757420656c6974206d6100676e612e2051756973717565207665686963756c61206d6f6c6c6973206c65006f2c206964207665686963756c61206d61676e6120616c6971756574207574002e20457469616d206e6f6e20706f72747469746f72206e69736c2c207369740020616d65742076756c707574617465206469616d2e2050726f696e206e657100756520657261742c20737573636970697420656765742066656c697320696e002c20677261766964612066696e69627573207175616d2e2050686173656c6c007573206d617474697320746f72746f722072697375732c20757420656c656d00656e74756d206d6574757320737573636970697420626962656e64756d2e0a000a4e756c6c616d207175616d2065782c20706f72746120696e2070757275730020696e2c206d6f6c65737469652074726973746971756520646f6c6f722e2000457469616d207472697374697175652072697375732076656c206c6163757300206672696e67696c6c612c206174206c75637475732075726e6120616c69710075616d2e20416c697175616d2065752066656c697320666575676961742c2000696163756c6973206c6f72656d2073697420616d65742c2070756c76696e61007220697073756d2e204e616d2076697461652074696e636964756e74206d6100676e612e204d617572697320756c6c616d636f727065722c206d657475732000636f6e64696d656e74756d20736f64616c657320756c6c616d636f72706572002c2073656d2074656c6c757320636f6e7365637465747572206c6563747573002c2061742074656d7075732073617069656e206d61757269732076656e656e0061746973206d61757269732e2041656e65616e20766573746962756c756d2000646f6c6f722065782c2076656c2076697665727261206e696268206d617869006d7573207365642e20457469616d20636f6d6d6f646f206d616c65737561640061206f7263692e204e616d20616363756d73616e206469616d206e6563206e00756e6320766f6c7574706174206566666963697475722e20467573636520700072657469756d20697073756d206c656f2c207175697320696e74657264756d00206172637520736f6c6c696369747564696e20656765742e2050656c6c656e00746573717565206d617474697320617420697073756d206567657420707265007469756d2e0a0a536564206c656f206d692c207068617265747261207369740020616d657420696d706572646965742065752c2074696e636964756e742065007420746f72746f722e2055742071756973207072657469756d206d61676e61002c20657520616c697175657420697073756d2e2050726f696e20616320756c0074726963657320697073756d2c2076656c206d6f6c6573746965207361706900656e2e20457469616d20736f64616c6573206e65717565206163206f726e610072652070686172657472612e204d6f7262692071756973206175677565207300697420616d65742075726e6120706c6163657261742070756c76696e61722e00204375726162697475722076617269757320666163696c69736973207269730075732c206964207375736369706974207175616d20696d7065726469657420006d616c6573756164612e20416c697175616d20646170696275732c2069707300756d2076656c20636f6e64696d656e74756d206d61747469732c206c696775006c6120657374206375727375732074656c6c75732c20657520696e7465726400756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6120717561006d206e6973692c20706f737565726520657420616363756d73616e20696e7400657264756d2c2076756c707574617465206e6f6e2070757275732e204e756e00632076617269757320696d706572646965742066656c6973206e656320696e0074657264756d2e2050726f696e2076656e656e617469732061206c6967756c006120657420636f6e73656374657475722e2050686173656c6c7573206e6563002065726f73206d6f6c6c69732c20756c7472696369657320656c6974206e6f006e2c206c6163696e6961206d692e2053757370656e6469737365206c696775006c6120617263752c206665726d656e74756d20617420617563746f722071750069732c20656c656966656e64207669746165206e69736c2e0a0a53656420660065726d656e74756d20707572757320696e206f64696f2070756c76696e6172002c20766573746962756c756d20656c656966656e642065737420636f6d6d6f00646f2e20467573636520766172697573207365642074757270697320696e2000666575676961742e20557420616320666163696c69736973206f64696f2e2000557420766f6c757470617420697073756d20646f6c6f722c20696e2065756900736d6f6420646f6c6f7220696e74657264756d2069642e20536564207361700069656e206573742c20696d70657264696574206575206f726e6172652065670065742c2074656d70757320656765742066656c69732e2050686173656c6c7500732070656c6c656e7465737175652c206e756c6c612073697420616d6574200066696e6962757320677261766964612c207175616d206e69736c206469637400756d206a7573746f2c2073697420616d6574206672696e67696c6c6120646900616d206c616375732065676574206573742e20566573746962756c756d2062006c616e646974206d617572697320696e20616e7465206d6178696d75732076006f6c75747061742e2050656c6c656e746573717565206861626974616e7420006d6f726269207472697374697175652073656e6563747573206574206e6574007573206574206d616c6573756164612066616d6573206163207475727069730020656765737461732e20566573746962756c756d2066656c6973207269737500732c2073616769747469732076656c20636f6d6d6f646f207365642c20706f0072746120617563746f722073656d2e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d616563656e6173206e656320706f0072747469746f722066656c69732e20446f6e656320656c656d656e74756d200073656d206e756c6c612e0a0a416c697175616d20656c656d656e74756d20650075206c6f72656d206964206c75637475732e204e756e63206174206e69626800206573742e205072616573656e7420666175636962757320766172697573200065726174206e656320706f73756572652e204e756c6c616d207175616d206c00616375732c20766f6c7574706174206e6563206c616f72656574206e6f6e2c0020706f7375657265206163206c6967756c612e2050726f696e2071756973200065676573746173206e69736c2c20736564206c75637475732066656c69732e00204e756c6c61207072657469756d207175616d206e65632066696e696275730020656c656966656e642e20457469616d206d617572697320656e696d2c207200686f6e6375732076656c206d616c657375616461207365642c20636f6e6469006d656e74756d2076697665727261206c696265726f2e20416c697175616d20007175616d2073656d2c2072757472756d2061742073617069656e206e65632c00206c616f7265657420666163696c69736973207475727069732e204e616d20006e65632074656d707573206573742e204d616563656e617320766172697573002c206e69626820617420636f6e73656374657475722074656d7075732c206e00756e63206c6f72656d206672696e67696c6c6120617263752c20696d70657200646965742072757472756d206e69736c2064756920612061756775652e20500072616573656e7420706c6163657261742073617069656e20736564206d6920006d6f6c6c697320666163696c697369732061206e65632070757275732e20500072616573656e7420736f6c6c696369747564696e2066656c6973206d61737300612c2076656c206d6174746973206c656f2068656e6472657269742061632e002053757370656e646973736520657569736d6f642064696374756d2074696e00636964756e742e0a0a416c697175616d2064617069627573206c6f72656d2000657520736f64616c65732066617563696275732e204e756c6c612074726973007469717565206f64696f2065742072697375732064696374756d2c20756c7400726963696573206c6f626f72746973206c6967756c61207361676974746973002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e204e756e632074656d7075732076656c2065726174207669746165206c610063696e69612e204e756c6c6120696e20656765737461732065726f732e204e00756c6c616d2076656c20646f6c6f722076656c2076656c697420706c616365007261742076756c70757461746520696e20736564206c616375732e20416c69007175616d206c6f626f7274697320616e746520696e2074656c6c75732069610063756c69732c206120636f6d6d6f646f207175616d20616363756d73616e2e002050726f696e2066657567696174206c6967756c61206964206e756e63207600756c70757461746520646170696275732e20457469616d207072657469756d00207669746165206475692073697420616d657420616c697175616d2e204165006e65616e206c6f626f727469732072757472756d206e6973692c2061207465006d7075732065726f7320666163696c697369732069642e204d617572697320006e6f6e2061726375206174206e6973692076697665727261206375727375730020657520616320646f6c6f722e0a0a4e756e6320696e206f64696f206d692e00204e616d206d617474697320736564206c6967756c612073697420616d6574002074656d706f722e20496e74656765722064696374756d207269737573206600617563696275732c2076656e656e6174697320616e74652065752c20756c74007269636573206d61757269732e20446f6e6563206e656320636f6e64696d65006e74756d2065782e2053656420666163696c69736973206f64696f20647569002c207669746165206672696e67696c6c61206d617572697320617563746f7200206e6f6e2e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e2053757370656e646973736520717569732074656c6c7573206c00616f726565742c20756c7472696365732073656d206e65632c207363656c650072697371756520656c69742e20536564207363656c65726973717565206573007420766f6c75747061742c20636f6e64696d656e74756d20616e746520612c002076656e656e61746973206d617373612e204d6f726269206e65632061756300746f72206c65637475732c206163207072657469756d206e6962682e20467500736365207363656c65726973717565206d61737361206e6f6e206375727375007320706f7274612e20566573746962756c756d206d65747573207075727573002c20636f6e736571756174206964206672696e67696c6c6120612c2074656d00707573207068617265747261206c65637475732e20566573746962756c756d0020736f64616c6573206c6f626f7274697320756c7472696365732e0a0a4e61006d2073697420616d657420626c616e646974206573742e204675736365207300697420616d65742074696e636964756e7420646f6c6f722e20446f6e6563200076656c206e697369206c616375732e204d617572697320706f7375657265200075726e6120616320656c656966656e6420616c69717565742e205375737065006e6469737365206661756369627573206665726d656e74756d206c69626572006f2c20616320617563746f72206d617373612068656e647265726974207465006d706f722e20467573636520706f72747469746f722061726375206163206c00656374757320626962656e64756d20636f6d6d6f646f2e205365642061756300746f72206575206f64696f2076656c20616c69717565742e20436c6173732000617074656e742074616369746920736f63696f737175206164206c69746f72006120746f727175656e742070657220636f6e75626961206e6f737472612c200070657220696e636570746f732068696d656e61656f732e20566976616d757300206574206c756374757320656e696d2e20566573746962756c756d2074656d00706f7220616e746520736564206d61747469732064696374756d2e205175690073717565207068617265747261206172637520656765742075726e6120756c0074726963657320617563746f722e204d6f72626920656c656966656e642063006f6e736571756174206d692069642068656e6472657269742e20467573636500206d617474697320616e746520636f6e64696d656e74756d20706f73756572006520736f64616c65732e20437572616269747572206c6f626f72746973207500726e612073697420616d6574206d617474697320656765737461732e204d610075726973206665756769617420656c69742074656c6c75732c20756c747269006369657320696d70657264696574206469616d2074656d7075732076656c2e000a0a566573746962756c756d206672696e67696c6c6120747269737469717500652075726e6120657520706f7274612e2050726f696e206665756769617420006e69736c207475727069732c207574206c6f626f727469732072697375732000696d706572646965742061742e2050686173656c6c75732073697420616d65007420616c69717565742066656c69732c20766974616520706f737565726520006d692e20416c697175616d20736167697474697320766172697573206e69620068206e6563206f726e6172652e2050656c6c656e7465737175652074696e63006964756e742076697461652065737420657520616c697175616d2e20447569007320696163756c697320757420617263752073656420656c656d656e74756d002e20467573636520616363756d73616e2c20646f6c6f72206e6f6e2074656d0070757320616363756d73616e2c20646f6c6f72207175616d20617563746f7200206e657175652c2071756973206f726e61726520616e7465206c656f206964002070757275732e2050686173656c6c75732073656420656c656966656e642000656c69742e204372617320657520706f737565726520616e74652e20496e2000616e7465206c6f72656d2c2070686172657472612073697420616d65742076006573746962756c756d207365642c2072686f6e637573206964206a7573746f002e2055742074656d707573206469676e697373696d207665686963756c612e00204d616563656e6173206d61757269732076656c69742c2065676573746173002073697420616d6574207661726975732076697461652c20666163696c69730069732073697420616d6574206c6967756c612e0a0a4d6175726973206772610076696461206c656f2073697420616d6574206f7263692076656e656e61746900732c207574206d6178696d75732073617069656e20636f6e7365717561742e00204d6f726269206e6563206f7263692065782e20566976616d757320766568006963756c61206469676e697373696d207075727573207365642074696e63690064756e742e20467573636520657569736d6f64206e6f6e20656e696d2065740020636f6d6d6f646f2e205072616573656e7420766f6c7574706174206d6f6c006573746965206f726e6172652e20566976616d757320636f6e64696d656e7400756d2076656c697420656c656d656e74756d2c207072657469756d20747572007069732065752c20626c616e6469742072697375732e204675736365207065006c6c656e746573717565206d6178696d7573206e6973692061632073656d700065722e20416c697175616d20757420657569736d6f642076656c69742c207300656420656c656d656e74756d206c6f72656d2e204d616563656e617320696400207269737573206e6f6e206d61737361206772617669646120636f6d6d6f64006f2e204e756c6c616d20696e20707572757320696420656c69742066616369006c6973697320636f6e6775652e2041656e65616e20636f6e6775652076756c00707574617465206c616f726565742e20416c697175616d206567657420656c0069742074656c6c75732e205175697371756520737573636970697420717561006d206163206d6173736120626962656e64756d20656765737461732e20416c00697175616d2071756973206578206e6f6e2076656c6974207363656c657269007371756520756c6c616d636f727065722069642065676574206d61676e612e002041656e65616e20612073656d206e6f6e2065726174206c6f626f727469730020636f6e6775652e0a0a43726173206e6f6e20647569206f64696f2e20517500697371756520766f6c7574706174207363656c657269737175652069707375006d206174207661726975732e20536564206f726e6172652073656d20736564002076656e656e6174697320636f6e7365717561742e2044756973206f726e610072652076656e656e61746973206d6f6c6c69732e20536564206578206e65710075652c2065666669636974757220626962656e64756d20706c616365726174002065742c20736f6c6c696369747564696e2076656c206f7263692e20496e740065676572206e696268206e657175652c20666163696c69736973206e6f6e20006d61757269732076656c2c20636f6e73656374657475722074726973746971007565206e756c6c612e204e756e632073697420616d657420706861726574720061206c656f2e204e756c6c616d206c656f206f7263692c20696d70657264690065742073697420616d657420696e74657264756d20717569732c2069616375006c6973206575206e69736c2e20416c697175616d2073656420747269737469007175652073656d2c206e6563206c6f626f7274697320746f72746f722e204d00616563656e617320736f64616c6573207075727573206e656320616c69717500616d20706f72747469746f722e20447569732075742066656c69732065726100742e0a0a437261732061206d6173736120696d706572646965742c2061636300756d73616e2072697375732069642c207375736369706974206e756e632e2000446f6e65632073656d70657220656e696d206575206d61676e6120636f6e730065717561742074696e636964756e742e2053757370656e646973736520636f006e736571756174206c6563747573207669746165206d6574757320616c697100756574206c616f726565742e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e20446f6e656320696e74657264756d206469616d00206174206e69626820616363756d73616e2c20657420617563746f72206d6100737361206c6163696e69612e20467573636520696420657820766974616520007269737573206c616f7265657420706f72746120636f6e64696d656e74756d00206567657420656e696d2e2050686173656c6c7573206c6563747573206f6400696f2c20666163696c6973697320612074656d707573207365642c20736f6400616c6573206575206475692e204e616d20696e206d616c657375616461206f0064696f2e205175697371756520706c61636572617420697073756d2076656e00656e617469732072697375732074656d7075732066617563696275732e205000656c6c656e74657371756520656c656d656e74756d20646f6c6f72207175690073206672696e67696c6c612074656d7075732e20457469616d2074696e63690064756e7420766172697573206c6f72656d20696e206f726e6172652e204e61006d206120656c656d656e74756d206f7263692e2050686173656c6c7573206700726176696461206e69736c20657520656c697420756c747269636965732c2000657420626962656e64756d2074656c6c75732066696e696275732e0a0a437200617320626c616e6469742070756c76696e6172206d657475732c2061632069006e74657264756d2066656c6973206d6178696d757320626962656e64756d2e002041656e65616e20626962656e64756d20696d7065726469657420636f6e6400696d656e74756d2e204e616d206e6f6e206c61637573206c6967756c612e2000517569737175652073656420766573746962756c756d2073617069656e2e2000536564207665686963756c612074696e636964756e74206c656f207175697300206c6163696e69612e20536564206c61637573206c6f72656d2c20756c74720069636573206e6563206c6f72656d207365642c20706c61636572617420766f006c7574706174206d657475732e205365642075742073656d2073697420616d00657420746f72746f7220756c7472696365732073757363697069742076656c00206174207475727069732e0a0a5574207669746165206175677565207369740020616d657420656c69742070756c76696e61722068656e647265726974206e0065632061206c6967756c612e20446f6e656320706f727461206e6973692063006f6d6d6f646f20616e7465207665686963756c612073656d7065722e205574002066696e696275732c207075727573207574206661756369627573206d6f6c006c69732c2066656c6973206e65717565206d616c657375616461206e696268002c2061632076656e656e61746973206e756c6c612076656c69742061206665006c69732e204d617572697320677261766964612c206c6967756c6120696420006c6163696e696120766976657272612c206a7573746f206c696265726f2076006172697573206c6967756c612c2073697420616d657420706f727461206c6f0072656d206c696265726f2061206d657475732e20416c697175616d20756c6c00616d636f72706572206d61757269732073617069656e2c2061206772617669006461207075727573207363656c6572697371756520717569732e204e756c6c00616d2072757472756d20746f72746f722073697420616d6574206f64696f2000656666696369747572207072657469756d2e2044756973206c616f7265657400206566666963697475722076656c69742c20612073656d7065722066656c6900732e2050726f696e206e696268206c616375732c20637572737573207369740020616d6574206c656374757320717569732c2065666669636974757220766500686963756c61206475692e20446f6e65632061726375206c656f2c207275740072756d2075742063757273757320696e2c207363656c6572697371756520650074206c616375732e204d616563656e61732074696e636964756e742061726300752061206e6571756520666575676961742c2076656c2064696374756d206e0069736c2073656d7065722e20446f6e6563206e756e632076656c69742c2063006f6d6d6f646f20696420746f72746f722076697461652c20616c697175657400206661756369627573206c6f72656d2e2041656e65616e2076617269757320006d61747469732073617069656e2065676574206d6f6c6c69732e20446f6e6500632076697461652075726e6120756c6c616d636f727065722c206469676e69007373696d20656e696d2076697461652c20766573746962756c756d206d65740075732e2050686173656c6c757320636f6e73656374657475722065726f732000696d706572646965742c20677261766964612065726f732069642c206d6f6c006c69732076656c69742e0a0a5574206163206c6163757320636f6e76616c6c0069732c207665686963756c61206e6571756520717569732c2065666669636900747572206f7263692e205574206d69206c616375732c206566666963697475007220657420736f6c6c696369747564696e2075742c206661756369627573200073697420616d657420616e74652e2053656420636f6e64696d656e74756d20006567657420656c697420617420677261766964612e20457469616d206e656300206e69736c2073656420656e696d20706f72746120706c6163657261742e20005072616573656e74206672696e67696c6c61207361676974746973206c656f002c2076656c2074656d706f72206f64696f206d6f6c6c69732076697665727200612e20566573746962756c756d2066696e69627573206a7573746f207269730075732c2065752073656d706572206475692066696e696275732061632e204d00617572697320706c616365726174206c6563747573206e6973692c206e6f6e0020766573746962756c756d20746f72746f72206d61747469732061632e204e00756c6c61206e656320626962656e64756d207175616d2e0a0a53656420657400206469616d2065676574206c696265726f2070756c76696e6172206672696e0067696c6c6120756c74726963696573206964207475727069732e20507261650073656e7420657520656e696d206672696e67696c6c612c20706c61636572610074206172637520696e2c20766573746962756c756d206e657175652e2045740069616d207665686963756c6120657261742064696374756d206e6962682065007569736d6f6420736f6c6c696369747564696e2e205072616573656e74206e0065632074757270697320616c69717565742c206c6f626f72746973206c656f0020717569732c207665686963756c61207175616d2e2050686173656c6c7573002073656420626962656e64756d206e6973692e204d616563656e61732069640020646f6c6f72206567657420616e746520626c616e6469742064617069627500732e20446f6e656320656c656d656e74756d20736564206e696268206575200073616769747469732e20467573636520636f6e6775652073656d206c6f7265006d2c206e6f6e206672696e67696c6c61206f64696f20617563746f7220612e0020566573746962756c756d20616e746520697073756d207072696d69732069006e206661756369627573206f726369206c756374757320657420756c7472690063657320706f737565726520637562696c69612063757261653b204d61656300656e61732073656420636f6e7365637465747572206a7573746f2e2053656400206566666963697475722061207175616d2073697420616d6574206d617869006d75732e0a0a416c697175616d20636f6d6d6f646f20616e7465206574206d006f6c657374696520706f72747469746f722e204d616563656e617320766f6c007574706174206e69736c207363656c657269737175652c206c6f626f7274690073206d61757269732061632c2064696374756d206d617373612e205068617300656c6c7573206d616c657375616461206c6163696e6961206f64696f206964002066696e696275732e204d616563656e61732061206d61676e61206f64696f002e20467573636520697073756d2075726e612c2073616769747469732066610075636962757320616e7465207365642c20756c747269636573206461706962007573206d61757269732e2053757370656e6469737365207574206f64696f2000717569732073656d206461706962757320616c697175616d20696e2069642000646f6c6f722e205574206d61747469732071756973206f64696f20766974610065206c6f626f727469732e20416c697175616d20616320746f72746f7220610063206d657475732073656d70657220766976657272612e20416c697175616d00206e65632064696374756d206d617373612c2076656c2073757363697069740020656c69742e2044756973207365642073656d206575206e69626820636f6e00736563746574757220696163756c69732076656c2075742061756775652e200044756973207669746165206c75637475732075726e612e204e616d206e756c006c61206e6962682c20626c616e6469742073697420616d65742073656d706500722076697461652c206d6f6c6c6973206c6f626f72746973206e756e632e200053656420757420666175636962757320746f72746f722c20656765742069610063756c6973206f7263692e20496e206120626c616e646974206475692c20610074207068617265747261206d657475732e20457469616d2068656e64726572006974206c696265726f207669746165206c656374757320737573636970697400206f726e6172652e2051756973717565206d6174746973206c6163757320610074207068617265747261207661726975732e0a0a4d616563656e61732066610063696c6973697320656c697420756c747269636573207072657469756d206c006f626f727469732e2046757363652076656c20766573746962756c756d2065007261742e20457469616d206175677565206d617373612c20666575676961740020766974616520657261742061632c206c6f626f7274697320766f6c757470006174206d61676e612e20446f6e6563206d616c65737561646120736564206c006967756c6120717569732066696e696275732e204e756c6c616d20656666690063697475722076697665727261206475692c206e6f6e20766573746962756c00756d20746f72746f7220696e74657264756d2076656c2e2050726f696e2061006e7465206573742c20626c616e64697420696e207363656c65726973717565002073697420616d65742c20756c74726963696573206e65632065726f732e20005365642065726174206e69736c2c20677261766964612065742074656d706f00722065742c206665726d656e74756d2073697420616d65742065782e205365006420656666696369747572206d6920766974616520657569736d6f6420667200696e67696c6c612e2053757370656e6469737365206567657420617563746f0072206e6962682e20446f6e6563206e6563207068617265747261206f64696f002c2068656e64726572697420636f6e64696d656e74756d20646f6c6f722e0a000a4d6f72626920696d706572646965742c206469616d206e65632076756c700075746174652072757472756d2c20746f72746f72206c6f72656d20696e7465007264756d20616e74652c207669746165206375727375732074757270697320006f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265657420760069746165206d61676e612073697420616d657420617563746f722e20437261007320617563746f72206e69736c20717569732076617269757320636f6d6d6f00646f2e204d6175726973206174206c6163696e6961206e756c6c612e2056650073746962756c756d20666575676961742073656d206174206d61737361206600617563696275732064696374756d2e2046757363652076656c207361706965006e2073697420616d6574206a7573746f20737573636970697420616363756d0073616e2075742076656c206f7263692e204e756c6c6120666163696c697369002e204e756c6c616d20736f6c6c696369747564696e20737573636970697420006e6973692c20657520616363756d73616e206d6574757320636f6e73656374006574757220766573746962756c756d2e20517569737175652074656c6c757300206d657475732c2073656d7065722074656d707573206d657475732071756900732c2064696374756d20656c656d656e74756d2066656c69732e205375737000656e646973736520636f6e76616c6c6973207075727573206163206c6163750073207072657469756d2c20616320616c6971756574206573742066696e69620075732e2050656c6c656e74657371756520626962656e64756d20707572757300206d61676e612c2073697420616d657420637572737573206e65717565206600657567696174206e6f6e2e2043757261626974757220696e206d6178696d750073206a7573746f2e2041656e65616e20696163756c6973206c6163696e6961002072686f6e6375732e0a0a536564206672696e67696c6c612073656d20616300206d61737361206d616c6573756164612c206d617474697320696d7065726400696574207175616d2073757363697069742e2043726173206c6163696e6961002061632065782076697461652072757472756d2e205365642065782066656c0069732c20706f727461206e656320617263752061632c2066696e6962757320006c7563747573207475727069732e204475697320697073756d206c69626572006f2c20696e74657264756d20757420696e74657264756d2075742c20656c65006d656e74756d206163206a7573746f2e204d6f7262692074726973746971750065206c6f626f7274697320706c6163657261742e2050656c6c656e746573710075652074696e636964756e742074656d70757320656e696d20617420636f6e006775652e204e756c6c61206d61747469732074696e636964756e74206e697300692c2061742072686f6e63757320616e746520656c656966656e642068656e006472657269742e204e756c6c616d2064696374756d20706861726574726120006475692e20566573746962756c756d206c75637475732065737420757420610075677565207472697374697175652c2073697420616d657420656c656d656e0074756d2074656c6c757320656c656966656e642e20496e7465676572206e650063206f726e617265206a7573746f2c207175697320706f727461206469616d002e2051756973717565206e6f6e206e697369206e6f6e206c6f72656d207075006c76696e617220706f73756572652061206567657420656c69742e20536564002065676574206c6163696e69612073656d2e2050686173656c6c7573206e6f006e206e756c6c612074656d7075732c207363656c65726973717565206c69620065726f2076656c2c207068617265747261206e6962682e0a0a53757370656e006469737365206469676e697373696d20636f6e67756520657374206964207000686172657472612e20447569732076697461652066656c697320696e206c65006374757320666163696c6973697320706861726574726120736564206163200070757275732e2050656c6c656e7465737175652076656e656e617469732070006c616365726174206d61757269732c206120626962656e64756d206d617572006973206566666963697475722076697461652e204d6f7262692065666669630069747572206d65747573206575207363656c65726973717565206661756369006275732e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b200041656e65616e20696e74657264756d20666163696c69736973207175616d2000717569732066617563696275732e20566573746962756c756d20616e74652000697073756d207072696d697320696e206661756369627573206f726369206c00756374757320657420756c74726963657320706f737565726520637562696c0069612063757261653b205072616573656e74206c6f626f72746973206d6167006e612071756973206e697369206d616c657375616461206d6178696d7573200071756973206e6f6e206c6f72656d2e20437572616269747572206e6f6e206e00756c6c612073697420616d657420657261742074696e636964756e742066610063696c6973697320617420657420746f72746f722e204d6f72626920696420006175677565207669766572726120697073756d2070756c76696e617220736300656c657269737175652071756973206e65632076656c69742e204e616d207600656c206f64696f20636f6d6d6f646f2c20706f727461206172637520696e2c0020666163696c697369732073617069656e2e204e756e632073697420616d6500742076656e656e6174697320657261742c206174206c616f72656574206175006775652e20446f6e656320617563746f722070757275732071756973207465006d706f7220666575676961742e20496e2071756973206c6f72656d206567650074206e756e63206c6163696e696120646170696275732e20446f6e65632069006163756c6973206573742076656c2072686f6e63757320616c697175616d2e000a0a4d6f726269206d61676e61206f64696f2c2076656e656e61746973207600697461652073656d2069642c20646170696275732074656d707573206e756e00632e204d6f7262692066617563696275732074656d706f72206d6178696d7500732e205175697371756520657520696d70657264696574206d61676e612c2000696420616c697175616d2075726e612e20446f6e6563207574206c69626572006f206475692e20457469616d206d6174746973206e756c6c6120717569732000617567756520696e74657264756d2c2061206d6f6c6573746965206f72636900207472697374697175652e20446f6e6563206e656320756c6c616d636f7270006572206e6962682c2061742074696e636964756e742070757275732e20447500697320626c616e646974206e69626820756c74726963696573206f7263692000616363756d73616e20736f6c6c696369747564696e2e20446f6e6563206964002061756775652071756973206e65717565206c616f72656574206f726e617200652e204e756e632072757472756d206a7573746f2075742065676573746173002068656e6472657269742e20437261732074656d70757320696e206d61757200697320612074696e636964756e742e0a0a557420706f72747469746f72207400656d70757320616c697175616d2e204d616563656e617320677261766964610020636f6e736571756174206d692c20657420747269737469717565206c6f7200656d20666575676961742073697420616d65742e205072616573656e742073006564206d6178696d7573206f64696f2c206567657420636f6e736563746574007572206c616375732e20416c697175616d20647569206e657175652c20766900766572726120636f6e73657175617420636f6e6775652076656c2c20636f6e00736571756174206964206f7263692e2041656e65616e2066696e69627573200065782073656d706572206e69736c206d61747469732c2071756973206c75630074757320656e696d206c6163696e69612e2050726f696e206964206d6173730061206d61757269732e20496e74656765722065752061726375206c6163696e006961206c656374757320657569736d6f64206c75637475732e20496e20766f006c7574706174206e6f6e206d657475732073697420616d657420636f6e7661006c6c69732e204e616d206c6967756c61206d657475732c206665726d656e7400756d2065752074656c6c75732069642c20656c656966656e642076617269750073206e657175652e204675736365206175677565206c6f72656d2c2070686100726574726120612073656d2076656c2c20636f6e64696d656e74756d206d61007474697320646f6c6f722e2046757363652073656d706572206e69736c2069006e2075726e612073757363697069742c2065676574207072657469756d206a007573746f20736f6c6c696369747564696e2e0a0a496e7465676572207669740061652072686f6e637573206573742c207175697320626962656e64756d207200697375732e20457469616d206d616c657375616461206175677565206575200074656d70757320636f6e76616c6c69732e205175697371756520717569732000656c697420666575676961742c20756c6c616d636f72706572206e6962682000696e2c206c7563747573206d617373612e2050686173656c6c757320636f6e0076616c6c69732073617069656e2076656c206c616375732074696e63696475006e742c206e656320657569736d6f64206573742070656c6c656e746573717500652e20416c697175616d20706f727461206a7573746f206120756c74726963006965732068656e6472657269742e204d6175726973206c756374757320617500677565206575206c656374757320646170696275732c20757420706f7274610020656c69742070656c6c656e7465737175652e20496e74656765722073656400206d61676e6120757420646f6c6f722074696e636964756e74206672696e6700696c6c61206964206174206475692e204d6f72626920656c656966656e64200072697375732073697420616d6574206d61676e612074656d7075732c20766500686963756c61206c6f626f72746973206f72636920736f6c6c69636974756400696e2e204e616d2065742074656d706f72206d61676e612e204d6f726269200071756973207072657469756d2072697375732c2075742076656e656e61746900732074656c6c75732e204d617572697320706f72746120646f6c6f722065740020636f6e73656374657475722068656e6472657269742e204e616d2070656c006c656e7465737175652065676573746173206f64696f207472697374697175006520677261766964612e2050656c6c656e746573717565206964206665726d00656e74756d206469616d2e20496e20636f6e7365637465747572206d69207600656c206c696265726f20657569736d6f642064696374756d2e20446f6e65630020736167697474697320616e7465206d617373612e205072616573656e7420006163206175677565206e657175652e0a0a536564206d6173736120747572700069732c20636f6e76616c6c69732065676574207665686963756c612065752c0020636f6e64696d656e74756d20736564206d657475732e2053656420636f6e0064696d656e74756d20766f6c7574706174206573742c2076656c2070756c7600696e6172206e69736920736f6c6c696369747564696e206e6f6e2e20496e740065676572207574206d61676e6120657420746f72746f722064696374756d2000636f6e64696d656e74756d20696e20706f727461206573742e20496e207369007420616d65742061756775652065782e204e756e6320766573746962756c75006d206964206c616375732076656c2070756c76696e61722e2050726f696e200070756c76696e6172206d6173736120757420616e7465206d6178696d75732c00207669746165206c7563747573207175616d20656765737461732e204475690073206d6178696d757320616e74652073697420616d6574206d616c65737561006461206469676e697373696d2e204675736365207574206c656f20626c616e006469742c20666163696c69736973206d657475732061742c20636f6e73657100756174206c696265726f2e20437261732076656e656e61746973206e6973690020656765742075726e61206665726d656e74756d2c2061742066696e6962750073207175616d20696163756c69732e20517569737175652076656c206c6f7200656d2065782e2050726f696e206a7573746f2066656c69732c207363656c650072697371756520736564206f64696f2069642c206665756769617420736f6c006c696369747564696e207175616d2e20496e74656765722076617269757320006f7263692073697420616d65742076756c7075746174652068656e647265720069742e204d6f726269206d6178696d75732c2065726f73206e6f6e20636f6e007365717561742066696e696275732c207175616d206e69626820756c6c616d00636f72706572206475692c20616320696e74657264756d2073656d20616e74006520766974616520746f72746f722e204375726162697475722076697461650020706861726574726120656e696d2e20437261732073757363697069742063006f6e677565206c656f2c20696e20736f6c6c696369747564696e206e69736900207472697374697175652061742e20566976616d757320706f72747469746f007220746f72746f7220636f6e64696d656e74756d2c20696163756c6973206c006967756c612075742c207472697374697175652065726f732e0a0a496e20650075206c756374757320616e74652e204d6f726269206d6178696d7573207572006e61206e6f6e206c6967756c6120706f73756572652c206120766f6c757470006174206f7263692073616769747469732e204e616d20617420656c6974206500676574206d692066696e696275732073656d70657220756c747269636573200073656420616e74652e205072616573656e742065752073656d706572206f720063692e204e616d2071756973206469616d206e65632065737420656666696300697475722073656d7065722e204d6f7262692073697420616d6574206f6469006f2070656c6c656e746573717565206e69736c20626c616e64697420736f6400616c65732e20447569732067726176696461206964206c6f72656d2065752000616c69717565742e205365642065726f73207475727069732c207375736369007069742073697420616d657420736f64616c6573207365642c20666163696c0069736973206574206573742e204f72636920766172697573206e61746f717500652070656e617469627573206574206d61676e697320646973207061727475007269656e74206d6f6e7465732c206e61736365747572207269646963756c750073206d75732e20566976616d75732073656d7065722074656d706f7220766100726975732e20416c697175616d20696420616c697175616d206469616d2e0a000a416c697175616d20746f72746f72206573742c206c7563747573206575200075726e6120717569732c2074656d7075732068656e6472657269742061726300752e20566573746962756c756d2073697420616d657420656c656d656e7475006d206c656f2e2053757370656e64697373652071756973206e756e632061200073617069656e2068656e64726572697420696d706572646965742e205365640020696e2065676573746173206c696265726f2e20446f6e656320636f6e677500652073697420616d6574206e65717565206461706962757320657569736d6f00642e204675736365207363656c657269737175652076656c20707572757320006964207363656c657269737175652e2050726f696e2076656c20706f7274740069746f72206e69736c2e0a0a4d6f726269206964206475692065676574207400757270697320696163756c697320636f6e6775652e204e756c6c616d2061750063746f722c206c6967756c61206567657420636f6d6d6f646f20707265746900756d2c206c696265726f206e756c6c6120756c74726963696573206f64696f002c2075742072757472756d2061726375206172637520696e206e6973692e20004d61757269732065676574206c6163757320696e20657820766172697573200073616769747469732073656420696e20656c69742e204d6175726973206d6f006c6573746965206f64696f206574206f72636920706861726574726120706c006163657261742e20496e746567657220696e20747572706973206567657420006c696265726f20636f6e7365637465747572206c6f626f7274697320657520006e6f6e206c616375732e204d616563656e61732064696374756d206c656f200074656d707573206c61637573206d617474697320736f64616c65732e20446f006e6563206a7573746f206f64696f2c2074696e636964756e7420616320617200637520656765742c20666175636962757320706f737565726520646f6c6f72002e205072616573656e742065676574206e756e63206e65632066656c69732000696e74657264756d2072686f6e6375732e20566573746962756c756d20656c00656d656e74756d206461706962757320636f6e73656374657475722e205375007370656e6469737365206964206e756e63206d61747469732c206c756374750073206e6962682073697420616d65742c20636f6e64696d656e74756d206578002e20496e7465676572206f726e6172652075726e61207669746165206e69730069206c7563747573206469676e697373696d2e2041656e65616e2074696e63006964756e742068656e647265726974207269737573206e6f6e20616363756d0073616e2e204e756c6c6120617420736f64616c6573206e69736c2e20496e7400656765722068656e647265726974207669746165206d61676e61207669746100652073757363697069742e20437261732064617069627573206c65637475730020736564206c656f207363656c657269737175652073656d7065722e204d6100757269732061207269737573206e756c6c612e0a0a53656420696163756c6900732c206c656f20757420766573746962756c756d206672696e67696c6c612c002066656c69732073617069656e20636f6e76616c6c6973206c65637475732c002076656c206c616f72656574207175616d206f7263692061206d6175726973002e204e756c6c616d20657520616363756d73616e2073617069656e2e205065006c6c656e746573717565206d617474697320736f64616c6573206d6175726900732c20757420636f6e64696d656e74756d206d61676e6120636f6e677565200076656c2e2041656e65616e20706f72747469746f72206e6973692061632065007261742066617563696275732073757363697069742e2050686173656c6c75007320656c656d656e74756d2074696e636964756e74207175616d206e65632000636f6e64696d656e74756d2e204375726162697475722066696e6962757320006e756c6c612076656c206c6163696e696120696d706572646965742e204d61006563656e61732066657567696174206d617474697320646f6c6f722c206e65006320616363756d73616e20697073756d2074656d706f722075742e205068610073656c6c757320617563746f7220666163696c697369732072757472756d2e0020536564207669746165206d69206e6f6e206f64696f2070656c6c656e7465007371756520626c616e64697420696e2061206d61676e612e0a0a5365642069006e206469616d20636f6e6775652c20636f6d6d6f646f20746f72746f722061002c20657569736d6f64206c6967756c612e20496e2061632065666669636974007572206e756e632c2076656c20756c6c616d636f7270657220697073756d2e0020416c697175616d2076656c206469616d206665726d656e74756d2c20736f006c6c696369747564696e20617263752065742c20656c656d656e74756d207300617069656e2e2043726173206c656f206d657475732c2072686f6e637573200071756973206d617373612065752c206772617669646120696163756c69732000657261742e2043757261626974757220756c7472696365732073697420616d00657420656e696d20757420617563746f722e2041656e65616e20617420617500677565206163206a7573746f2074656d70757320626962656e64756d207365006420696d7065726469657420746f72746f722e204e756c6c616d2073656420006d61757269732073617069656e2e20447569732070656c6c656e746573717500652075726e6120696e2066696e69627573206d6f6c65737469652e20507261006573656e74206e6f6e207072657469756d206d61676e612c206e6563206c610063696e696120746f72746f722e2050726f696e20666175636962757320656c00656d656e74756d206c6f72656d2c2072686f6e6375732076756c7075746174006520657820616c69717565742061632e0a0a416c697175616d2074696e63690064756e7420617263752073617069656e2c20616c697175657420737573636900706974206c656f20656c656d656e74756d2076697461652e2043726173206d00617474697320617263752076656c206f726e617265206665726d656e74756d002e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65737469650020657261742073656d7065722c20736564206c7563747573206e65717565200076756c7075746174652e2053757370656e6469737365206d616c657375616400612c20646f6c6f722076656c20756c74726963657320696d70657264696574002c206d69206e69626820756c74726963696573207475727069732c206e656300207072657469756d206c696265726f20697073756d207669746165207269730075732e20416c697175616d20696e20636f6e677565206c616375732c2066650075676961742076756c7075746174652065726f732e20496e206c616f7265650074206e69626820696e2076756c70757461746520766573746962756c756d2e00205574206661756369627573206f726e617265206e756e632073697420616d00657420656c656966656e642e205072616573656e7420706c616365726174200073617069656e2076656c20656c69742074656d706f7220626962656e64756d002e204e756c6c612071756973207665686963756c6120617263752e205375730070656e646973736520736f64616c6573206c656f2061632075726e6120616c0069717565742076756c7075746174652e20536564206d6f6c6c69732c206c610063757320657520656c656966656e6420736f64616c65732c206d61676e6120006172637520766172697573206c656f2c20657520626c616e6469742066656c006973206572617420657420746f72746f722e205072616573656e742074656d007075732073697420616d6574206d61676e61207669746165206f726e617265002e20416c697175616d20656c656966656e642076656c206f64696f2069642000636f6e7365717561742e204d6175726973206574206e657175652071756973002073617069656e20706f737565726520756c74726963696573206575207369007420616d65742075726e612e20437261732072686f6e6375732065726f73200076656c2073656d2070756c76696e61722066696e696275732061206e6f6e200072697375732e0a0a536564206c6f626f72746973206f64696f207175616d2c00206e6f6e20637572737573206e756c6c6120616c697175616d206e6f6e2e2000446f6e65632061726375206573742c20666163696c6973697320696e2066610075636962757320612c2070686172657472612073697420616d6574206e6973006c2e205175697371756520696163756c6973206c656f206e6f6e20656c656d00656e74756d20706c6163657261742e2053656420766573746962756c756d20006c656f20616e74652c20616320636f6e76616c6c697320647569207361676900747469732069642e20496e206861632068616269746173736520706c61746500612064696374756d73742e20536564206d6f6c657374696520636f6e76616c006c69732066656c69732c20696e2070656c6c656e74657371756520616e74650020696e74657264756d20612e20566976616d757320706c6163657261742065006c656966656e6420616e74652e2050656c6c656e746573717565207369742000616d6574206f64696f207665686963756c612c207361676974746973206573007420656765742c20656c656d656e74756d206c6f72656d2e204d61757269730020656c6974206d61676e612c20636f6e6775652076656c2065726f73206e6500632c20696163756c6973206d616c65737561646120616e74652e2056697661006d757320696e20656666696369747572206f64696f2c207175697320616c69007175616d206e756c6c612e204e756c6c61207574206469676e697373696d20006475692e20496e206567657374617320666163696c69736973206c6f72656d002c206e6f6e20656c656d656e74756d20647569207665686963756c61206e6500632e204e756c6c61206d616c65737561646120706f72747469746f72206578002061206f726e6172652e204e756c6c61206e6f6e20766172697573206f6469006f2e2041656e65616e206e656320696d706572646965742073617069656e2e0020446f6e6563206e69736920617263752c2070756c76696e617220707265740069756d206d616c6573756164612061632c20706f72746120766974616520710075616d2e0a0a437572616269747572206d6f6c65737469652c206d6920696e0074657264756d206c7563747573206375727375732c207269737573207361700069656e206c6f626f72746973206c656f2c206174206566666963697475722000617567756520656c6974207365642074656c6c75732e204e756e6320737573006369706974206c7563747573206e69736c2073697420616d65742062696265006e64756d2e20446f6e6563206e6f6e206375727375732070757275732c20610063206661756369627573206a7573746f2e2050726f696e20617563746f722000766f6c7574706174206e756e632c20696e20747269737469717565206e6973006c20626962656e64756d2061742e2053757370656e64697373652076656e65006e61746973206e756e63206e69736c2c206e65632067726176696461206c69006265726f2074726973746971756520696e2e205175697371756520706c616300657261742061206e69736c20616320706c6163657261742e2041656e65616e0020756c74726963696573206c696265726f20696420697073756d2072686f6e006375732c2073697420616d657420616c697175616d20656e696d206c7563740075732e20447569732076656e656e6174697320646f6c6f722065742074656c006c757320636f6e736571756174206c6f626f727469732e20446f6e65632069006e206469616d20706f73756572652c206665726d656e74756d207269737573002065742c2070756c76696e6172206e657175652e0a0a496e7465676572206e006563206e6962682065752074656c6c7573207072657469756d20696e7465720064756d206174206574206469616d2e204e756c6c612070656c6c656e74657300717565206f64696f20717569732065726f73206567657374617320736f6461006c65732e2043757261626974757220656765742074656d707573206469616d002e2050656c6c656e74657371756520756c747269636965732061726375206500782c206120696d70657264696574206a7573746f20706f7375657265207665006c2e2050726f696e2076756c70757461746520736f64616c6573206d61737300612061742070686172657472612e20496e7465676572206e6f6e206d6173730061207574206c6967756c6120666575676961742074656d7075732e2051756900737175652073616769747469732076656c206e756e6320757420747269737400697175652e2041656e65616e2075742074656d706f72206a7573746f2e2044006f6e656320636f6e677565206e69736c20736564207175616d206d6f6c657300746965206d6f6c6c69732e204e756c6c616d20706c6163657261742c2074750072706973206567657420677261766964612072757472756d2c2066656c6973002076656c697420616c697175616d2065726f732c20696420656c656d656e7400756d206c6967756c612075726e6120696420657261742e204e756c6c61206e0065632072686f6e6375732073656d2e205574206e6563207665686963756c61002065782c2076656c2068656e647265726974206e657175652e20557420706c006163657261742076656c69742076656c2076656c69742068656e647265726900742c207669746165206665726d656e74756d207269737573206d6f6c6573740069652e0a0a4d6175726973206f726369206c65637475732c20696d7065726400696574207365642066696e69627573206e65632c20616c697175616d207665006c206e6962682e20566573746962756c756d206672696e67696c6c612061630063756d73616e206e756e63206574206d6f6c65737469652e205574206574200065726174206a7573746f2e2050656c6c656e74657371756520677261766964006120617263752070757275732e2041656e65616e20696e206e6962682076690074616520617263752064696374756d2074696e636964756e74206964206575002066656c69732e205072616573656e7420657420656c6974206964206d692000636f6e736563746574757220616c697175616d2e20566573746962756c756d0020696e20656e696d2064696374756d2c20626962656e64756d206572617420006e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e7465737100756520636f6e76616c6c6973206f726369206e6973692c206e656320756c7400726963696573206f64696f20706f73756572652073697420616d65742e0a0a004d616563656e61732073697420616d6574206665726d656e74756d206e6973006c2e20566573746962756c756d20616e746520697073756d207072696d69730020696e206661756369627573206f726369206c756374757320657420756c7400726963657320706f737565726520637562696c69612063757261653b20507200616573656e74206174206e756e6320696e206d61676e6120636f6e73657175006174207363656c657269737175652e204d616563656e617320696e20717561006d207574206a7573746f2074696e636964756e7420617563746f722e205068006173656c6c757320757420646f6c6f72206d657475732e20496e2073656d70006572206d6920736564206c6f72656d2070686172657472612072686f6e637500732e204675736365206567657420657374206c616f726565742c20736167690074746973206c696265726f2073697420616d65742c2066657567696174206e006962682e204d6f72626920646170696275732075726e61206163207175616d00206665726d656e74756d2072686f6e6375732e20446f6e656320636f6e7661006c6c697320657569736d6f64206469676e697373696d2e204375726162697400757220757420747269737469717565206c6967756c612e0a0a536564207275007472756d2074696e636964756e74207472697374697175652e204e756e6320006d69207175616d2c20637572737573206574207665686963756c612065676500742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e65632061007563746f722066696e69627573206f726e6172652e204d6f72626920766568006963756c612c206e69736c2076656c20636f6d6d6f646f20706f7274746974006f722c20646f6c6f72206e756e63207361676974746973206469616d2c2065006765742066617563696275732073617069656e2065782076656c206d61676e00612e204375726162697475722076656c206c6967756c612073697420616d650074206c6967756c6120646170696275732066696e696275732e20457469616d002073697420616d6574206c6f72656d206c65637475732e204e756c6c616d20006665726d656e74756d206e69736c206c696265726f2c207669746165207469006e636964756e74207075727573206c6163696e696120717569732e204d6f72006269207574206d6f6c657374696520697073756d2c206575206d6f6c657374006965206c6967756c612e2050686173656c6c7573206574206c656374757320006a7573746f2e20566976616d7573206578206d61676e612c20636f6e736571007561742076656c206a7573746f2076656c2c2074656d706f7220616c69717500616d20616e74652e205365642066696e6962757320736564206d6173736120007175697320636f6d6d6f646f2e20446f6e656320696e206e696268206e6563002074656c6c757320636f6e677565206469676e697373696d206567657420760069746165206e756c6c612e204475697320656c656966656e6420706c61636500726174207269737573206120706c6163657261742e204d6175726973206e650063206c65637475732068656e6472657269742c207361676974746973207665006c697420636f6e64696d656e74756d2c2065676573746173206475692e0a0a004e616d20696163756c69732076656c697420717569732075726e6120706f720074612073616769747469732e2041656e65616e20636f6d6d6f646f206e6973006c206e656320697073756d206c6f626f727469732c20626962656e64756d200065666669636974757220656e696d20636f6e64696d656e74756d2e2050726f00696e206172637520656c69742c206665726d656e74756d2075742065676573007461732061742c206c616f726565742076656c206e69736c2e20496e74656700657220626962656e64756d20747572706973207574206469616d206665726d00656e74756d2c2065752074656d707573206c656f206672696e67696c6c612e00204d616563656e61732076656c697420617263752c20636f6e64696d656e7400756d20696d7065726469657420657261742065742c206661756369627573200076756c707574617465206c65637475732e20437572616269747572206d657400757320656e696d2c206672696e67696c6c6120757420666163696c69736973002061632c20616363756d73616e20696e20697073756d2e204e756c6c616d20007665686963756c61206c6163696e6961206d617373612c2076656c20666175006369627573206f64696f20636f6e64696d656e74756d2061742e204d61757200697320706f72747469746f722065726f73206d61676e612c207574206d617800696d75732074656c6c7573206665726d656e74756d2069642e20566976616d007573207574206c6563747573206f726e6172652c20706f72747469746f7220006469616d20656765742c20756c6c616d636f72706572206e6962682e2044750069732076656e656e617469732074656d706f7220657261742c207574207661007269757320657374206c6f626f727469732076656c2e2050686173656c6c75007320736564206578206c65637475732e205365642076656c2073617069656e0020616c697175616d2c20696e74657264756d206475692069642c20656c65690066656e64206f7263692e0a0a5072616573656e74206174206c6f626f7274690073206d657475732e204e616d2074656d707573207175616d206475692c206e006563206c7563747573206d617373612074696e636964756e7420612e205065006c6c656e74657371756520616363756d73616e2076656c697420757420617500677565206d617474697320636f6e76616c6c69732e205574206567657374610073206f64696f20656e696d2c206163207669766572726120616e746520636f006e76616c6c69732075742e2041656e65616e20696e2064756920617420717500616d206665726d656e74756d2072757472756d2e20566976616d757320656700657420636f6e76616c6c6973206c65637475732e20457469616d2065756973006d6f64206672696e67696c6c6120746f72746f722c206e656320696e7465720064756d206a7573746f206d61747469732065752e204e756c6c616d206d617800696d7573206e696268206469616d2c206575206c6f626f72746973206a757300746f207072657469756d2076697461652e20517569737175652074696e63690064756e7420646f6c6f722061742075726e6120636f6e64696d656e74756d2c00207669746165206d616c6573756164612065737420706f72747469746f722e002050656c6c656e746573717565207669746165206475692065782e2056697600616d757320766f6c757470617420697073756d207574207475727069732065006c656d656e74756d20706f7274612e20496e74657264756d206574206d616c006573756164612066616d657320616320616e746520697073756d207072696d00697320696e2066617563696275732e204d6175726973207365642066656c690073206e756c6c612e205072616573656e742076656c2072697375732076656c0069742e0a0a446f6e656320706f727461206174206469616d2073656d7065720020616c69717565742e2041656e65616e20637572737573206c6f72656d206e006f6e2076617269757320636f6d6d6f646f2e20536564206e65717565206572006f732c20656666696369747572206e6563206469616d20696e2c20747269730074697175652076697665727261206469616d2e2053757370656e64697373650020746f72746f72206475692c20657569736d6f64206e6563206e756c6c61200061632c20616c697175657420756c74726963696573206c6f72656d2e205068006173656c6c757320636f6e7365637465747572206575206573742061632065006765737461732e204e756e6320757420656c697420696e2070757275732061006363756d73616e20657569736d6f642e2043726173206c656f206f7263692c0020677261766964612076656c20626962656e64756d20656765742c20636f6e0076616c6c697320696e2072697375732e20467573636520656765742073656d007065722073617069656e2e0a0a536564206d6f6c657374696520706c61636500726174206c6967756c61206e656320766976657272612e20496e2061742065006666696369747572206d61676e612e204e616d2066696e69627573206c6f7200656d20657420726973757320756c747269636965732c2076656c2063757273007573206e65717565207363656c657269737175652e20496e74657264756d20006574206d616c6573756164612066616d657320616320616e74652069707375006d207072696d697320696e2066617563696275732e2053656420696e2065670065737461732065726f732e2041656e65616e2074656d706f722c206e6962680020636f6d6d6f646f20626962656e64756d206c75637475732c2076656c697400206e756e6320696e74657264756d206f7263692c2073697420616d6574207400656d707573206c656f2070757275732076697461652072697375732e2045740069616d207669746165207269737573206e6962682e20566573746962756c75006d206d6f6c65737469652063757273757320616e74652c2065676574206c610063696e6961206c656f206d6f6c65737469652076656c2e0a0a53757370656e00646973736520757420677261766964612073617069656e2e2056657374696200756c756d20616363756d73616e206e756e6320696e2064617069627573207300656d7065722e204e756e632076656c2073656d706572207175616d2e205065006c6c656e746573717565206861626974616e74206d6f72626920747269737400697175652073656e6563747573206574206e65747573206574206d616c657300756164612066616d65732061632074757270697320656765737461732e20460075736365206d6f6c6573746965206672696e67696c6c61206c6f72656d2c20007175697320747269737469717565206d61676e6120756c6c616d636f72706500722073697420616d65742e20437572616269747572207669746165206c6f7200656d207574206a7573746f206c616f72656574207665686963756c61206174002061206469616d2e2053757370656e646973736520616c697175657420636f006e73656374657475722065782c20757420636f6e7365637465747572206e650071756520636f6e7365637465747572206e65632e20496e74656765722076690074616520636f6e64696d656e74756d20746f72746f722e204e756e6320736500642073757363697069742073617069656e2e2050686173656c6c757320656c00656d656e74756d20657569736d6f642076656c69742c2065676574206469630074756d20646f6c6f7220756c6c616d636f727065722065752e0a0a5068617300656c6c75732061742064756920697073756d2e204e756e63206c75637475730020617563746f72206e69736c20657520617563746f722e20446f6e65632063006f6e76616c6c69732061726375206c6163696e6961206578207361676974740069732c20736564206f726e61726520616e7465206f726e6172652e204e616d002074696e636964756e74206a7573746f207475727069732c20736564206d61007474697320616e746520736f6c6c696369747564696e207365642e2053656400206f726e61726520697073756d206e6962682c2061632074656d706f72206d0061676e612076617269757320696e2e204e616d206672696e67696c6c61206d0061676e61206d692c2075742065676573746173206c6f72656d207661726975007320696e2e20536564206575206c75637475732073617069656e2e20496e7400656765722076656c206469676e697373696d20656c69742c20617420706c61006365726174207475727069732e20446f6e656320696e206e69626820696420006a7573746f206c6f626f727469732064696374756d2e20446f6e656320706800617265747261206f726369206e656320636f6e76616c6c697320736f6c6c69006369747564696e2e0a0a50656c6c656e7465737175652073697420616d657400206672696e67696c6c612073656d2c20616320737573636970697420656c6900742e20446f6e656320612074726973746971756520697073756d2c206e6f6e0020756c7472696365732065726f732e205072616573656e7420616c69717561006d20697073756d206567657420626962656e64756d20766f6c75747061742e0020447569732073697420616d6574206469616d20626962656e64756d2c2061007563746f72206e69736920656765742c206d6f6c6c697320746f72746f722e00204d61757269732065742076656c69742075726e612e2055742066656c697300206c65637475732c207072657469756d207365642074656d707573207369740020616d65742c206d6f6c6c6973207669746165206c65637475732e204d6175007269732073697420616d6574206f7263692065752074656c6c75732066616300696c697369732074696e636964756e742e20447569732068656e647265726900742066656c69732061206e6571756520617563746f7220636f6e6775652e20004d6f726269206c6967756c61206573742c2070656c6c656e746573717565200076656c2073616769747469732065742c20666175636962757320656765742000656e696d2e0a0a517569737175652064696374756d206e6973692069642073006f6c6c696369747564696e207072657469756d2e20496e74657264756d20650074206d616c6573756164612066616d657320616320616e746520697073756d00207072696d697320696e2066617563696275732e2053757370656e646973730065207665686963756c612076656e656e617469732072697375732c20617420007665686963756c61206c616375732072757472756d206e6f6e2e2050656c6c00656e746573717565206861626974616e74206d6f72626920747269737469710075652073656e6563747573206574206e65747573206574206d616c657375610064612066616d65732061632074757270697320656765737461732e20496e20007075727573206d617373612c206d6f6c657374696520696e206e6962682061002c2076656e656e6174697320626c616e64697420656c69742e205068617365006c6c75732073617069656e206469616d2c2074696e636964756e7420736f6400616c6573206469616d2076697461652c20636f6e67756520736167697474690073206f64696f2e2043757261626974757220657569736d6f64206e65632061006e746520736564207072657469756d2e2050656c6c656e746573717565206d006f6c65737469652076617269757320656e696d2c206e6f6e20666175636962007573206c656f2073616769747469732061632e20437572616269747572207100756973206d61757269732071756973206c6967756c6120756c6c616d636f7200706572206d616c65737561646120736564206575206c65637475732e0a0a5300757370656e64697373652076656c206d61676e61206469676e697373696d2c002064696374756d206e657175652073757363697069742c20626962656e6475006d206c616375732e205175697371756520717569732066656c69732061726300752e2050686173656c6c75732065726174206c656f2c2073656d7065722061007420646f6c6f7220656765742c2076656e656e617469732072686f6e637573002065782e2043726173206d6f6c6c6973206e696268207365642061756775650020736f64616c65732c2073697420616d6574206d6f6c6c6973207075727573002070686172657472612e2043726173206e6563206d692071756973206c656f0020696d7065726469657420616363756d73616e207574206964207175616d2e00204e616d206e69736c20656c69742c206f726e61726520657520756c747269006365732076697461652c20706f72747469746f72206574206c6967756c612e002050656c6c656e746573717565207665686963756c6120656c69742065742000697073756d20636f6e7365717561742c206e6563206d6f6c6c6973206573740020696e74657264756d2e2055742074656d706f7220637572737573206d6f6c0065737469652e204d61757269732074696e636964756e7420616363756d7361006e206e756e6320696420696d706572646965742e20457469616d206d616c650073756164612c206e6973692061632076756c70757461746520696163756c6900732c206e697369206f72636920706c616365726174206e756c6c612c206e6500632074696e636964756e742074656c6c757320656c69742071756973207572006e612e20457469616d206c61637573206d617373612c2068656e6472657269007420757420636f6d6d6f646f20612c20696e74657264756d206964206e6973006c2e20496e746567657220766974616520616e7465206672696e67696c6c6100206d692074696e636964756e7420636f6e73656374657475722e204e756c6c006120636f6e7365637465747572206f726e61726520626962656e64756d2e0a000a55742073697420616d657420657569736d6f642074656c6c75732e205065006c6c656e746573717565207072657469756d2074696e636964756e7420647500692065752073656d7065722e205365642076656c2065726f73206e6f6e2064006f6c6f7220696163756c697320696e74657264756d20736564207175697320006f7263692e20496e2073656d706572206c6f626f72746973206469676e69730073696d2e2053656420666175636962757320666575676961742070656c6c65006e7465737175652e2050656c6c656e74657371756520736f6c6c69636974750064696e206f64696f20736564206c65637475732073616769747469732c206e006f6e20756c7472696369657320697073756d2072757472756d2e205365642000736564206f726e6172652065782e0a0a5072616573656e7420766974616520006d6f6c6573746965207175616d2c20616320626c616e646974206f64696f2e0020457469616d2065676573746173206375727375732075726e612069642065007569736d6f642e204e616d20616c69717565742061726375206575206c756300747573206c616f726565742e20457469616d20696d7065726469657420717500616d2076656c20636f6e73657175617420626c616e6469742e204d61757269007320696e74657264756d2c206469616d20766172697573206c6163696e69610020616c69717565742c2076656c69742074656c6c757320706861726574726100206a7573746f2c20656765742073757363697069742075726e61206e756c6c00612071756973206c656f2e204e756c6c61206578206e69736c2c2066617563006962757320617420626c616e6469742061632c2063757273757320612069700073756d2e20566976616d75732071756973206469616d20636f6e6775652c2000657569736d6f642075726e612073697420616d65742c206672696e67696c6c006120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e677565206c00696265726f2074656d706f7220756c747269636965732e2050656c6c656e740065737175652070756c76696e61722073617069656e207669746165206e756e0063207363656c65726973717565206672696e67696c6c612e204675736365200068656e647265726974206566666963697475722066617563696275732e2041006c697175616d2070757275732061756775652c206c7563747573206e6f6e2000636f6e76616c6c697320717569732c206d6178696d7573206e6f6e20647569002e0a0a446f6e65632070656c6c656e74657371756520657261742065752065007374206c6163696e696120616363756d73616e2e2050726f696e206d6f6c6c0069732073656d20646f6c6f722c206964206d6f6c6c6973206c656374757320007669766572726120696e2e204e756e632071756973206d6173736120766172006975732c206665726d656e74756d206c656f2076697461652c206c6f626f7200746973206e657175652e205175697371756520756c6c616d636f7270657220006a7573746f20766974616520636f6e67756520656c656966656e642e2045740069616d206574206c61637573206573742e20496e7465676572207475727069007320617263752c20616363756d73616e2076656c20697073756d2065676574002c206d616c65737561646120756c6c616d636f72706572206a7573746f2e20004d6175726973206e6f6e2065782074696e636964756e742c20756c74726963006573206c616375732061742c20626c616e646974206f64696f2e2056657374006962756c756d2067726176696461206e65632073617069656e206e656320640069676e697373696d2e2053757370656e64697373652074656d706f7220696e00206e69736c2076656c206d6f6c6c69732e204d616563656e6173206772617600696461206c616375732074656c6c75732c20657420756c7472696369657320006e756c6c612074696e636964756e7420612e20416c697175616d20657261740020766f6c75747061742e20446f6e65632065726f73206c65637475732c20640069676e697373696d2069642073617069656e2061742c20706c6163657261740020666163696c697369732070757275732e20566976616d757320707265746900756d2c206d69206120756c6c616d636f727065722074696e636964756e742c00206475692074656c6c757320626c616e646974206d617373612c206e6563200066696e6962757320657374206e69736c2071756973206e6962682e2046757300636520646170696275732064756920696e20636f6e73656374657475722070006c6163657261742e20467573636520736f6c6c696369747564696e20656765007374617320657261742c2073697420616d657420616363756d73616e206c65006f2074696e636964756e7420696e2e204d6f7262692065666669636974757200206d61757269732069642064696374756d20666163696c697369732e0a0a5500742075726e61206d61676e612c20706f72747469746f722061632065666669006369747572206e6f6e2c20656666696369747572206174206d617373612e200041656e65616e2073656420656c6974206e6f6e2065782073757363697069740020616363756d73616e2e20416c697175616d207669746165206c656f207361006769747469732c2067726176696461206c6967756c612065742c2070756c7600696e617220646f6c6f722e20457469616d20616320746f72746f72206c6f7200656d2e2050686173656c6c7573206567657374617320696163756c69732067007261766964612e204e756e63206e6f6e206e756e63206e6962682e2056697600616d757320766974616520617563746f722073617069656e2e20437261732000706f7375657265206e756c6c61206f64696f2c20657520706f727461206578002076656e656e6174697320612e204e616d207269737573206e657175652c2000657569736d6f642075742063757273757320656765742c2066617563696275007320736f6c6c696369747564696e20746f72746f722e2043757261626974750072207574206d65747573206e6f6e206469616d20617563746f722074696e63006964756e742e20496e7465676572206d616c65737561646120707265746975006d2076656e656e617469732e20566976616d75732072686f6e637573207469006e636964756e74206c6f72656d207175697320756c747269636965732e205000686173656c6c7573206f726e6172652065726f732065742068656e6472657200697420636f6d6d6f646f2e0a0a43757261626974757220696163756c69732000636f6e7365717561742073656d20717569732070656c6c656e746573717565002e2050726f696e206d617474697320656e696d20696e2065737420736167690074746973207661726975732e204d6f726269206e65632074696e636964756e00742076656c69742c206575206469676e697373696d20657261742e20416c69007175616d206572617420766f6c75747061742e205072616573656e74206669006e696275732074656c6c757320696e2068656e6472657269742076657374690062756c756d2e20437572616269747572206d6f6c6c69732074656c6c757320006d692c206e6563206d616c6573756164612076656c6974207375736369706900742061742e205365642065726174206e657175652c2072757472756d2073650064206665726d656e74756d2076656c2c2070656c6c656e746573717565206e006f6e20616e74652e204e616d20736f64616c65732070756c76696e6172206c006f72656d2c2065742074696e636964756e74206d61737361206469676e69730073696d2061632e20457469616d206d61737361207175616d2c20766f6c757400706174206574206c6f626f727469732073697420616d65742c2076656e656e006174697320696420656e696d2e0a0a446f6e656320706f727461206e69736c0020657520697073756d20706f72747469746f722c20656765742070756c7669006e6172206c6f72656d206d6178696d75732e205574206163206e6571756520006c6f72656d2e204e756c6c612061206c6f72656d2065676574206c656f206d006f6c6c6973206469676e697373696d2e20566573746962756c756d20696d70006572646965742073656d706572206c65637475732e204e756c6c6120657420006469616d206574206e756c6c61206f726e61726520736f6c6c69636974756400696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c20766568006963756c61206a7573746f2061742c2074696e636964756e74207361706965006e2e2043757261626974757220657569736d6f642076697665727261207268006f6e6375732e204e756e6320766172697573206f726369206e6563206d617300736120766976657272612c2065676574206c7563747573206c616375732075006c7472696365732e204375726162697475722063757273757320656c69742000646f6c6f722e20467573636520616c6971756574206f726e6172652065726f00732c20612067726176696461206578206d616c6573756164612076656c2e20004e616d206163206d61676e6120636f6e7365717561742c2076617269757320006d61757269732065752c206665726d656e74756d206c696265726f2e0a0a500072616573656e7420657420646f6c6f722074656d706f72206475692074696e00636964756e742064696374756d2e2050656c6c656e746573717565206d617800696d757320697073756d20657520656765737461732074656d7075732e2046007573636520616c697175616d20696d7065726469657420616e74652065742000626c616e6469742e204d61757269732068656e647265726974206c6f626f7200746973206c616f726565742e2041656e65616e20706f72746120766f6c75740070617420697073756d2c206120736f6c6c696369747564696e20617263752000756c6c616d636f72706572206e6f6e2e205365642076617269757320706c6100636572617420656e696d206575207072657469756d2e20496e206a7573746f0020617263752c20656c656d656e74756d20757420616c69717565742065752c00206c616f72656574206964206c656f2e20496e7465676572207365642061720063752061206469616d206c75637475732072686f6e6375732e20557420656700657420636f6e677565206d657475732c2069642072757472756d206c6563740075732e0a0a4d6f726269207665686963756c6120616363756d73616e206e6900736c2c20617420706f727461206c616375732066617563696275732065676500742e2053757370656e64697373652076756c707574617465206d69206e6f6e0020766f6c757470617420666575676961742e2051756973717565206469637400756d20706f72747469746f72206f64696f2073697420616d657420636f6e670075652e2041656e65616e20657569736d6f64207072657469756d20656c69740020706f72747469746f722066696e696275732e204d616563656e617320736500642076756c7075746174652072697375732e2041656e65616e2065726f732000656e696d2c2076656e656e6174697320696420636f6e73657175617420612c002072686f6e637573206f726e6172652073656d2e20517569737175652062690062656e64756d20766f6c757470617420616e74652c20616320706f7375657200652073617069656e207375736369706974206566666963697475722e204e75006c6c61206f726e617265206e696268206163206d61757269732076756c707500746174652c206e6f6e207068617265747261206469616d2076697665727261002e20436c61737320617074656e742074616369746920736f63696f73717520006164206c69746f726120746f727175656e742070657220636f6e7562696120006e6f737472612c2070657220696e636570746f732068696d656e61656f732e002050726f696e20617420766573746962756c756d2076656c69742e205365640020766976657272612076656e656e61746973206d692c207574206d616c65730075616461206e756c6c612e2044756973207068617265747261206964206e6900626820617420636f6e6775652e20536564206c6163696e69612065726f73200061206572617420766976657272612c20612074696e636964756e742061756700756520616363756d73616e2e2050656c6c656e746573717565206c6f626f720074697320616363756d73616e2073656d2c2065676574206d616c65737561640061206e756c6c61206665726d656e74756d2073697420616d65742e20496e2000616363756d73616e206c616f72656574206e69736c2076697461652066657500676961742e20416c697175616d206572617420766f6c75747061742e0a0a440075697320696420616e7465206c6967756c612e2050686173656c6c75732073006167697474697320706c61636572617420706f73756572652e204d61656365006e61732076697461652076697665727261206c616375732c206d6f6c6c697300206d616c657375616461206c65637475732e2050656c6c656e7465737175650020696e20657374206c6163696e69612c20656c656d656e74756d206e756e630020656765742c2070656c6c656e746573717565206a7573746f2e20517569730071756520636f6e67756520747572706973206e6f6e206f64696f20626c616e00646974207361676974746973206772617669646120657420697073756d2e20004e756c6c616d206c6f626f72746973206e6571756520616320656c69742063006f6e76616c6c697320616363756d73616e2073697420616d65742070756c7600696e6172206d617373612e20446f6e656320657520636f6d6d6f646f20616e0074652c2073697420616d657420756c6c616d636f7270657220646f6c6f722e002044756973206d6175726973206c6967756c612c20656c656d656e74756d200061742066617563696275732061632c20616c697175616d20696e2066656c6900732e205072616573656e74206c6f626f727469732065782073697420616d650074206e69736c20756c74726963696573206c6163696e69612e20566976616d00757320617563746f722c2073656d207175697320766573746962756c756d20007363656c657269737175652c2073617069656e206e69736c2072757472756d00206c696265726f2c2073697420616d657420696e74657264756d206e69736c00206a7573746f207669746165206c65637475732e20566976616d757320696d0070657264696574206e756c6c6120657520657261742076656e656e61746973002c20736564206d6f6c657374696520646f6c6f72207665686963756c612e2000517569737175652076656c2061726375207365642073656d2073656d70657200206375727375732e2050656c6c656e746573717565206d617474697320656c00656966656e64207269737573206574206d6f6c6c69732e205574206c6f626f00727469732c2065737420736564206665726d656e74756d2073656d7065722c002075726e612072697375732064617069627573206475692c20612074656d70007573206d6175726973206e69736c206174206469616d2e20566976616d757300206469676e697373696d20666163696c6973697320636f6e7365637465747500722e20496e20706f737565726520736f6c6c696369747564696e20656c656d00656e74756d2e0a0a457469616d20697073756d206573742c206d616c65737500616461206120666575676961742073697420616d65742c206d6f6c65737469006520656765742066656c69732e2041656e65616e2074656d70757320667269006e67696c6c61206469616d20696e20616c697175616d2e20446f6e6563207300697420616d65742072757472756d206469616d2e2050686173656c6c75732000756c6c616d636f72706572206d617474697320616363756d73616e2e205375007370656e646973736520616c6971756574207669746165206e6973692061630020766f6c75747061742e2050726f696e207075727573206d61757269732c2000696d706572646965742073697420616d657420647569206e6f6e2c20766568006963756c6120637572737573206f7263692e20446f6e65632065742074656c006c7573206574206d6574757320766573746962756c756d20656c656d656e7400756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74657371750065206c6967756c61206e69736c2c20616c697175616d206163206c6967756c006120706f73756572652c20656c656d656e74756d2068656e64726572697420006d61757269732e204d617572697320666163696c697369732066656c69732000696e2072757472756d20696163756c69732e204e756e632066657567696174002073656d20612068656e6472657269742072757472756d2e20496e746567650072206d6f6c65737469652064696374756d2066696e696275732e2041656e6500616e206e656320766f6c7574706174206c6967756c612e205175697371756500206d617373612070757275732c20706861726574726120757420696163756c006973207365642c20706f72747469746f7220616320616e74652e20416c69710075616d206d6173736120656e696d2c2076756c707574617465206e6563206d00692069642c20756c6c616d636f72706572206665756769617420747572706900732e0a0a4e756e63207669766572726120647569206c6f72656d2c207369740020616d657420656666696369747572206d65747573207375736369706974200076656c2e20566573746962756c756d2073697420616d657420706f7274746900746f722065782e205574206d616c657375616461206c6563747573206e656300206d65747573206672696e67696c6c612c206e65632073656d706572207572006e61206d616c6573756164612e20557420756c6c616d636f72706572206e69007369206174206e69736c20696d706572646965742070756c76696e61722e2000566573746962756c756d2065726f7320646f6c6f722c20766f6c757470617400206964206f64696f2069642c2074656d70757320636f6e76616c6c6973207200697375732e2043726173206575206661756369627573206c696265726f2e200050656c6c656e74657371756520696163756c697320766573746962756c756d0020646f6c6f72206964206566666963697475722e2046757363652061206e75006e6320717569732075726e61206469676e697373696d20646170696275732e002050726f696e2076656c20696163756c69732073656d2c20617420636f6e7600616c6c6973206475692e20496e2069642066656c69732074656c6c75732e2000446f6e6563207068617265747261206d6f6c657374696520617263752c206100206d616c6573756164612065737420677261766964612069642e0a0a517569007371756520616c6971756574206c6967756c61207574206f72636920706f7300756572652c207365642074696e636964756e74206d61676e6120756c74726900636965732e204d616563656e61732073697420616d657420756c6c616d636f0072706572207475727069732e20536564206e6563206d6f6c657374696520710075616d2e20566976616d7573206d617474697320636f6e64696d656e74756d00206f7263692c206e6f6e206375727375732066656c69732074656d707573200065752e2053656420656765742072697375732075726e612e20566976616d750073206f726e61726520756c6c616d636f72706572206172637520616320616c0069717565742e205072616573656e74206d616c6573756164612070756c7669006e6172206c65637475732c2073697420616d65742064696374756d20726973007573206d616c6573756164612061742e204e756c6c612061206d616c65737500616461206c65637475732c2065676573746173206d616c657375616461206600656c69732e20496e20696420696e74657264756d206e756e632e20496e74650067657220666163696c69736973206469676e697373696d20616e74652071750069732070686172657472612e0a0a446f6e65632070656c6c656e7465737175006520656e696d20766974616520616e746520756c7472696365732c2061742000657569736d6f64206d617373612066696e696275732e20517569737175652000636f6e67756520756c7472696369657320706f72747469746f722e204375720061626974757220756c7472696369657320626c616e64697420637572737573002e204675736365206567657420647569206375727375732c2070686172657400726120617263752076656c2c20706c6163657261742070757275732e204372006173206e6563206d6175726973206c656f2e204e616d207072657469756d20007072657469756d20766f6c75747061742e2050686173656c6c7573206e65710075652074656c6c75732c206672696e67696c6c612073697420616d65742066006163696c6973697320717569732c20616363756d73616e207363656c65726900737175652073656d2e204e756e632076697461652066656c69732073656420006d6173736120756c747269636965732064617069627573206e6f6e2065752000656e696d2e20496e20706f72747469746f722074656d706f72206e69736c2c00206567657420666163696c697369732075726e612066696e69627573207669007461652e205365642070656c6c656e746573717565206e656320747572706900732075742073656d7065722e205072616573656e74206566666963697475720020656c656966656e64206f64696f2e0a0a4e756c6c6120617563746f722063006f6e64696d656e74756d206e756c6c612e204d616563656e6173206d616c65007375616461206d61757269732061206c6967756c6120756c7472696365732000636f6d6d6f646f2065742076656c206469616d2e2053757370656e64697373006520696e74657264756d2074696e636964756e74206c6967756c612c20612000626962656e64756d206d6920696163756c697320612e20536564206d616c65007375616461206d657475732076656c206c696265726f206469676e69737369006d2c2073697420616d657420636f6e677565207175616d2074696e63696475006e742e204375726162697475722066696e696275732074696e636964756e74002073616769747469732e20517569737175652073617069656e20656e696d2c0020736f64616c6573206163206469616d20612c206469676e697373696d206c006163696e69612074656c6c75732e20446f6e65632065666669636974757220006c616375732072686f6e637573206672696e67696c6c6120636f6d6d6f646f002e20496e20696420656c69742076656c206c6f72656d20736167697474697300206f726e6172652e204372617320757420646f6c6f72206c6967756c612e200053656420656c656966656e64206c6563747573207661726975732066696e69006275732072757472756d2e204675736365206e65632061756775652061206a007573746f207661726975732074656d706f7220736564207669746165206c6f0072656d2e204d6175726973206174206c696265726f20696e2065737420637500727375732064696374756d2075742076697461652065726f732e205068617300656c6c75732072757472756d2c206c656374757320766974616520696e7465007264756d20626c616e6469742c206c6f72656d2075726e61207669766572720061206d617373612c2071756973207363656c657269737175652066656c697300206c6563747573206574206f64696f2e204d617572697320666163696c6973006973206c656f207475727069732c20696d70657264696574206665756769610074206475692074656d706f722073697420616d65742e0a0a4d616563656e6100732061206c656f2061756775652e20437572616269747572206e6f6e2069700073756d2073697420616d657420656c6974206c616f726565742076656e656e00617469732065676574206e6f6e206d61676e612e204375726162697475722000616c697175616d20696163756c697320706f72747469746f722e2053656420006163206c6f72656d206120646f6c6f7220616c6971756574206c7563747573002e2050726f696e206c6163696e696120697073756d20616e74652c207369740020616d657420696d70657264696574206c6563747573206469676e69737369006d20656765742e20566573746962756c756d20656666696369747572207369007420616d65742073656d207175697320736f64616c65732e20566976616d7500732070756c76696e6172207068617265747261206e69736c2076697461652000616363756d73616e2e204475697320696e74657264756d20636f6e67756520007661726975732e20446f6e65632061207361676974746973206e6973692c20007175697320656c656d656e74756d206475692e20536564206c756374757320006c616f72656574206c656f206567657420756c7472696365732e0a0a446f6e006563206120617567756520656765737461732c2076756c70757461746520650073742076656c2c206c616f72656574206c616375732e20416c697175616d2000646f6c6f7220646f6c6f722c20706c61636572617420696e2065676573746100732073697420616d65742c20616c69717565742061206f7263692e20496e200076756c70757461746520626c616e64697420656c69742c2068656e6472657200697420636f6d6d6f646f2075726e6120626962656e64756d2065752e2045740069616d20617567756520616e74652c206d6f6c65737469652071756973206f0064696f2065752c2074656d70757320636f6d6d6f646f206e6962682e20557400206d6174746973206c6163696e69612073617069656e2075742064617069620075732e20457469616d20636f6e736571756174206e6f6e206f64696f207175006973206375727375732e204e756e6320616c697175657420626962656e6475006d20646f6c6f722065752073656d7065722e20566976616d7573206163206d00692073697420616d65742061726375206c6163696e69612072757472756d200073697420616d65742061206e756c6c612e2050686173656c6c75732065726100742072697375732c206c75637475732065676574206c6f72656d207669746100652c206d616c65737561646120626962656e64756d206d657475732e204e61006d206964206d617474697320656e696d2c206665756769617420736167697400746973206d657475732e2050686173656c6c7573206c7563747573207475720070697320657261742c20657420766172697573206d61676e612072686f6e630075732069642e0a0a4372617320766172697573207361676974746973206f6400696f20757420677261766964612e20536564206f726e61726520706f727461002076756c7075746174652e20496e746567657220706f7375657265206172630075206c6f72656d2c206964207363656c657269737175652073656d206566660069636974757220612e205365642076656c20617563746f7220697073756d2e002050656c6c656e7465737175652069642065726f73206574206c6f72656d2000616363756d73616e20616363756d73616e206567657420717569732065726f00732e204e756e632063757273757320636f6e64696d656e74756d206d692c20006e65632066617563696275732070757275732070756c76696e6172207068610072657472612e205365642073656420736f64616c6573206e756e632e204675007363652070756c76696e617220756c747269636573206d692c206964207275007472756d206d69206672696e67696c6c612061632e2053656420697073756d00207175616d2c20756c74726963696573207669746165206c6163696e6961200076697461652c206665726d656e74756d206e6f6e206d61757269732e20507200616573656e74206461706962757320756c6c616d636f72706572206c696775006c612c206567657420756c6c616d636f727065722073656d2064617069627500732065752e2046757363652073697420616d657420766573746962756c756d00206c616375732e205072616573656e74207365642074726973746971756520006c616375732c2076656c2070756c76696e6172206573742e0a0a467573636500206e6563206e6571756520646f6c6f722e20566573746962756c756d20616c00697175616d206c6967756c612075742064696374756d2073656d7065722e2000457469616d206d616c657375616461206d65747573206567657420656c69740020636f6e64696d656e74756d20636f6e7365717561742e2053757370656e64006973736520736167697474697320656e696d207175616d2c20696e20756c7400726963696573206c656f206461706962757320717569732e2050656c6c656e007465737175652063757273757320766172697573206e6973692c2076656c2000736167697474697320656c6974206d6178696d7573206e6f6e2e205375737000656e646973736520746f72746f72206f64696f2c207068617265747261207600656c206475692061632c20656c656d656e74756d2076756c707574617465200074656c6c75732e20416c697175616d20696420666163696c69736973206578002e2044756973206e6563206672696e67696c6c61206e69736c2e2046757363006520736564206672696e67696c6c612065782e204675736365207574206d610075726973206574207175616d207669766572726120696e74657264756d2061002061742065726f732e20416c697175616d20616363756d73616e2065726174002075742074656c6c7573206469676e697373696d20696163756c6973207365006420657420746f72746f722e2050726f696e20736564206175677565207369007420616d6574206d657475732072757472756d206772617669646120696e200076656c206e69736c2e20496e746567657220706f73756572652061726375200069642065726f73206665726d656e74756d2074656d706f722e0a0a55742075006c74726963657320697073756d206f7263692e204d61757269732061756374006f72206d6178696d75732072697375732c20717569732066696e6962757320006e756c6c612065666669636974757220696e2e204e616d20756c74726963650073206e6571756520616320657820666163696c697369732c20696e2074656d00707573206c6967756c61206c6f626f727469732e204372617320706861726500747261206c6f72656d20696e74657264756d206e657175652068656e6472650072697420617563746f722e2050686173656c6c7573206e6f6e207275747275006d206c696265726f2c20617420736f64616c657320697073756d2e20496e2000756c6c616d636f72706572206578206c65637475732c2073697420616d657400207068617265747261206e756c6c6120636f6e76616c6c69732072686f6e630075732e2053757370656e6469737365206e6f6e20656c6974206c6f72656d2e00205072616573656e7420756c6c616d636f72706572206e756c6c612076656c0020637572737573206469676e697373696d2e2041656e65616e20736f64616c00657320746f72746f72206f64696f2c20617420656c656966656e64206c696700756c61206469676e697373696d2073697420616d65742e2044756973207665006c20736f6c6c696369747564696e2074656c6c75732e204d616563656e61730020717569732070656c6c656e746573717565206475692e204d6175726973200071756973207361676974746973206e756e632e20447569732072757472756d00206d616c657375616461206c6967756c612065752070756c76696e61722e0a000a41656e65616e206772617669646120706f727461207175616d20736564200070656c6c656e7465737175652e2050656c6c656e7465737175652076657374006962756c756d20626962656e64756d207472697374697175652e2056657374006962756c756d20696e206572617420656e696d2e2050726f696e2065726f7300206f7263692c2072686f6e63757320616320616c697175616d206e6f6e2c20007072657469756d2061206f7263692e20566573746962756c756d2074656d700075732c2076656c6974206d616c657375616461206c6163696e69612064617000696275732c2075726e61206c6f72656d206672696e67696c6c61206d61737300612c20696e206d6178696d757320656e696d20656e696d206574206e69736c002e204e616d207669766572726120636f6e64696d656e74756d206c6967756c006120696e20696d706572646965742e20536564207175697320656c656d656e0074756d206a7573746f2e204e756c6c61206f726e61726520636f6e73656374006574757220656e696d2061742074696e636964756e742e20457469616d207300697420616d6574206c616f7265657420697073756d2e0a0a457469616d2066006163696c697369732065737420706f72747469746f722c2066696e69627573002066656c69732065742c207375736369706974206c65637475732e2041656e0065616e20706c616365726174206567657374617320616c69717565742e204d00617572697320657420656e696d206c65637475732e204d616563656e6173200070656c6c656e746573717565206d6f6c6c6973206d692064696374756d2063006f6e6775652e205072616573656e742076656c2066656c6973206c616f72650065742c20636f6e7365637465747572206e756c6c61206e6f6e2c2066657567006961742074656c6c75732e2053656420616c697175616d2076656c697420730065642073656d20706c616365726174207361676974746973206174207369740020616d6574206c696265726f2e2051756973717565206d6174746973207275007472756d20656e696d2c2073656420656c656d656e74756d2076656c69742e002050686173656c6c7573206e6f6e206c616f72656574206f64696f2e204375007261626974757220656c656966656e64206f64696f2073697420616d65742000756c7472696369657320756c6c616d636f727065722e20496e20656765742000726973757320756c7472696365732c207665686963756c61206c65637475730020696e2c20616c6971756574207475727069732e0a0a50686173656c6c757300206e6f6e206d6574757320617563746f722c20636f6e736563746574757220006e69736c2061742c207361676974746973207175616d2e205072616573656e007420746f72746f722074656c6c75732c2074656d706f72206e6f6e207068610072657472612069642c207661726975732061742070757275732e2053656420006120636f6e64696d656e74756d206e6962682e205072616573656e74206c65006f206e756e632c20756c6c616d636f72706572207665686963756c612076650073746962756c756d2074696e636964756e742c206665726d656e74756d2075007420616e74652e20496e206f726e617265206c61637573206e6f6e206c69620065726f20736f6c6c696369747564696e2c2065752066657567696174206e75006c6c6120626c616e6469742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e204e756e632065676574206e756e63207369007420616d6574206d617572697320706861726574726120766573746962756c00756d20657520766974616520656e696d2e20496e20766f6c7574706174207300617069656e2065676574206c65637475732074696e636964756e7420766f6c0075747061742e20416c697175616d2073656420766976657272612075726e61002e204675736365206c6563747573206d657475732c20756c747269636573200076656c20657569736d6f642065742c20616c69717565742073656420746f7200746f722e2050686173656c6c757320626c616e6469742070656c6c656e7465007371756520756c747269636965732e204f72636920766172697573206e6174006f7175652070656e617469627573206574206d61676e697320646973207061007274757269656e74206d6f6e7465732c206e6173636574757220726964696300756c7573206d75732e204e756c6c61206469676e697373696d2c2076656c690074207175697320666163696c697369732072686f6e6375732c206e756c6c61002066656c697320747269737469717565206d61757269732c20657520636f6d006d6f646f206c656f206f726369206174206e6973692e20467573636520636f006e736563746574757220746f72746f7220657420706861726574726120766500686963756c612e204e756e63207665686963756c612c206d65747573207369007420616d657420657569736d6f642064696374756d2c20646f6c6f72206d650074757320616363756d73616e206573742c20696e20696163756c6973206d6100737361206c696265726f206e6f6e206c65637475732e0a0a496e2061742063006f6e736571756174207475727069732e204675736365206d69206e756c6c61002c206672696e67696c6c61207574207661726975732076697461652c2074720069737469717565206174206e6973692e204e756c6c61206964206d69206572006f732e204d6f726269206469616d20616e74652c2076656e656e617469732000696e2073757363697069742076656c2c2074696e636964756e7420766974610065206f64696f2e204d61757269732068656e647265726974206e6f6e20617200637520696420636f6e73656374657475722e205072616573656e7420616c69007175616d206e756e632076656c206d61676e61207665686963756c6120616c0069717565742e204e616d20636f6e7365637465747572206e756c6c612071750069732075726e6120696163756c697320756c6c616d636f727065722070656c006c656e74657371756520657420617263752e20496e7465676572206163206c00616f726565742076656c69742e2050656c6c656e7465737175652075742061006e7465207175616d2e20566976616d75732061206d6174746973206c656f2c002069642074656d707573206d692e204675736365207363656c657269737175006520646170696275732070757275732073656420616c697175616d2e0a0a4600757363652076656c20656e696d2070656c6c656e7465737175652c20656c65006d656e74756d206469616d2065752c2076756c7075746174652076656c6974002e204e756e63206c696265726f2074656c6c75732c20656c656d656e74756d00206964207175616d2073697420616d65742c20617563746f7220706f7274740069746f722070757275732e204c6f72656d20697073756d20646f6c6f72207300697420616d65742c20636f6e73656374657475722061646970697363696e670020656c69742e20457469616d206d6f6c6573746965206e756e6320736f6461006c657320636f6d6d6f646f20696163756c69732e204e616d20717569732065006c69742061206c696265726f20616c697175657420636f6e64696d656e7475006d207669746165206163206d692e20457469616d20756c7472696365732075006c74726963696573206d61676e6120766974616520706f73756572652e2056006976616d757320757420657569736d6f642076656c69742e20437261732073006f64616c6573206c6163696e6961206d61676e612c2071756973206665726d00656e74756d20657261742064696374756d2073697420616d65742e204675730063652074696e636964756e74206c696265726f206574206e657175652074720069737469717565206375727375732e204372617320616320646f6c6f72206c006967756c612e2050726f696e206567657420696d70657264696574206d6175007269732e20416c697175616d206469616d20646f6c6f722c20666163696c69007369732076656c206e69626820656765742c20636f6e7365717561742076650073746962756c756d206c696265726f2e204375726162697475722076756c700075746174652066617563696275732061756775652065676574207375736369007069742e204e756e632074696e636964756e742074656c6c7573207574206d006f6c6c6973206d6178696d75732e2050726f696e20766573746962756c756d00206c616f726565742073617069656e2c206e6563206672696e67696c6c6120006e6973692074656d70757320696e2e0a0a566573746962756c756d20616e74006520697073756d207072696d697320696e206661756369627573206f72636900206c756374757320657420756c74726963657320706f73756572652063756200696c69612063757261653b20566573746962756c756d20666163696c69736900732c20707572757320657520706f7375657265206c6163696e69612c2070750072757320657374206c616f72656574206e69736c2c206e656320766f6c75740070617420616e746520657261742076697665727261206e756c6c612e204e75006c6c6120666163696c6973692e20496e206e656320706f727461206d65747500732e20446f6e656320666163696c6973697320646f6c6f722073697420616d006574206f64696f20616c697175616d2c206567657420706f72747469746f720020697073756d2076756c7075746174652e204d61757269732076656e656e6100746973206d61676e61206575206578206f726e6172652c20696420736f6c6c00696369747564696e20616e746520636f6e6775652e2050656c6c656e746573007175652075726e61206f7263692c20756c747269636965732076697461652000706f73756572652075742c20756c74726963657320717569732074656c6c7500732e20536564206e6f6e20656c656966656e64206d692c20657520747269730074697175652073656d2e2041656e65616e2074656d707573206d61737361200065752067726176696461206d616c6573756164612e2050726f696e206e6563002076756c707574617465206e756e632e204e756e63206d616c657375616461002c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c207175616d00206e69736c2074696e636964756e74206c616375732c2073697420616d6574002066657567696174206c6f72656d206e756c6c61206e656320697073756d2e000a0a4d617572697320736564206d6574757320617420646f6c6f7220636f6e0064696d656e74756d20636f6e73657175617420616363756d73616e2061632000646f6c6f722e2053757370656e6469737365206c756374757320626c616e640069742065782c20617420656c656d656e74756d206d692064696374756d206500752e20416c697175616d2074696e636964756e7420656c656d656e74756d20006d61676e6120766974616520616c69717565742e20446f6e656320696e206f00726e617265206d61757269732e20496e206c6163696e69612073697420616d006574206e756c6c61207669746165206665726d656e74756d2e20446f6e656300206e6563206665726d656e74756d2075726e612c206174206672696e67696c006c612076656c69742e20416c697175616d206572617420766f6c7574706174002e20566573746962756c756d2073656420747572706973206e657175652e2000496e74656765722076656c207375736369706974207475727069732e2053650064206e656320636f6e64696d656e74756d206e657175652e2041656e65616e0020636f6e76616c6c697320766f6c757470617420706f73756572652e205068006173656c6c7573206c6f626f72746973206c6967756c612076656c2072686f006e637573206c616f726565742e2041656e65616e2065676574206573742069006163756c69732c2076656e656e61746973206f64696f2075742c206469637400756d2074656c6c75732e2044756973207669746165206572617420766974610065206e69736920637572737573206d61747469732e204e756e6320626c616e006469742070656c6c656e7465737175652072697375732c206c7563747573200074696e636964756e74206d61676e6120706f7274612061632e204372617320007669766572726120616c697175657420706f73756572652e0a0a4c6f72656d0020697073756d20646f6c6f722073697420616d65742c20636f6e7365637465007475722061646970697363696e6720656c69742e204e756c6c616d20657520006c61637573206c65637475732e20467573636520612074656c6c7573206c61006375732e20496e74657264756d206574206d616c6573756164612066616d65007320616320616e746520697073756d207072696d697320696e206661756369006275732e204e756c6c616d2070656c6c656e746573717565206c6f72656d20007175616d2c2076656c2074656d706f7220746f72746f72207072657469756d002076697461652e20566573746962756c756d20736f6c6c696369747564696e002071756973206d692061632072757472756d2e20496e746567657220646967006e697373696d206c696265726f20616c697175616d206672696e67696c6c610020616363756d73616e2e20446f6e656320666163696c697369732064756920006e6f6e206c656f2074656d707573206c75637475732e20536564206d616c65007375616461207665686963756c6120756c7472696365732e20557420616e74006520616e74652c20616c69717565742073697420616d657420736f6c6c69630069747564696e2066696e696275732c20626c616e64697420756c747269636500732061756775652e20536564206e6563206e69736920717569732076656c69007420636f6e64696d656e74756d20677261766964612e2041656e65616e2061006c697175657420657569736d6f64206475692c207574207665686963756c610020697073756d2066617563696275732065752e0a0a46757363652076656c6900742073617069656e2c2073656d706572206574206469676e697373696d207600656c2c20696163756c69732069642076656c69742e205072616573656e7420006e6f6e206e69736c206567657420616e746520736f6c6c696369747564696e002072757472756d206e6563206e6563206573742e205365642076697665727200612066656c6973206e69736c2c206e65632065676573746173206573742073006f64616c65732065742e204e616d20636f6e67756520617567756520737573006369706974206578206c616f7265657420706f72747469746f722e2046757300636520626962656e64756d20697073756d206e657175652c206163206d617800696d757320646f6c6f72206672696e67696c6c612075742e2043757261626900747572206120636f6e736571756174206c6967756c612e204e616d20766f6c00757470617420636f6e736571756174206c696265726f20657520626c616e640069742e204e616d20696e74657264756d2074656c6c7573207574206f64696f0020636f6e736571756174206f726e6172652e204e756c6c6120666163696c690073692e204d616563656e6173206c756374757320616e74652065676574206f0064696f20636f6e64696d656e74756d206672696e67696c6c612e20496e7465006765722065676574206d61676e612073697420616d6574206d61676e6120660065726d656e74756d20677261766964612e0a0a4d6f72626920736f64616c6500732076656c6974206e6973692c2061206d6178696d75732064756920656c65006966656e64206e6f6e2e204d61757269732070757275732065726f732c2061007563746f722075742066696e6962757320656765742c20756c7472696369650073207175697320657261742e2041656e65616e207361676974746973207475007270697320696e206f72636920706f7274612c20696420706861726574726100206578206566666963697475722e20467573636520617420636f6e6775652000657261742e20566573746962756c756d206c756374757320656e696d20666500726d656e74756d206c656f2064696374756d207472697374697175652e2044006f6e6563206e65632066656c69732073697420616d65742064756920706f7200747469746f7220656c656d656e74756d2e205072616573656e74206c616f72006565742c2066656c6973207669746165207472697374697175652062696265006e64756d2c206c6f72656d206e6962682070656c6c656e746573717565207300617069656e2c20736564207363656c65726973717565206c6f72656d206e690062682076656c2073656d2e204675736365206e6f6e2076656e656e6174697300206e657175652e20446f6e6563207363656c65726973717565206469676e69007373696d20726973757320696420706f7274612e0a0a53757370656e6469730073652072686f6e637573206c696265726f2076656c2066656c6973206c616300696e69612074656d7075732e2046757363652064696374756d206e657175650020736564206e69626820677261766964612c20626962656e64756d206c6f62006f727469732075726e6120616c69717565742e204375726162697475722065007420657569736d6f6420656e696d2e2050656c6c656e74657371756520696d0070657264696574206175677565206c6f72656d2c2075742068656e64726572006974206e657175652073656d7065722076656c2e2050686173656c6c75732000636f6d6d6f646f20647569206e6f6e206c6f626f727469732076656e656e61007469732e20437261732076697665727261207361676974746973206e69736c002c207669746165206c6f626f72746973206d6574757320756c747269636965007320696e2e20416c697175616d207669746165206469676e697373696d207000757275732c206661756369627573207072657469756d2072697375732e20500072616573656e74206163206d61676e6120617563746f722c206d616c65737500616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f20647569002e205072616573656e7420617420746f72746f7220697073756d2e204675730063652074656d7075732c2066656c697320696e20616363756d73616e206661007563696275732c206c696265726f20656e696d206d6f6c6c697320656e696d002c20696420656c656d656e74756d206d657475732070757275732061206d6100676e612e204375726162697475722073697420616d657420636f6e64696d65006e74756d2075726e612e20496e2075726e612066656c69732c20636f6e6469006d656e74756d207669746165206e756c6c612065752c20706f73756572652000636f6e64696d656e74756d206e6962682e2050656c6c656e746573717565200067726176696461206f64696f20656c69742c2076656c20616c69717565742000726973757320636f6e7365637465747572206e6f6e2e204d616563656e6173002074656d706f722c206d61676e6120616320706861726574726120616c69710075616d2c20616e7465206c6967756c612066657567696174207175616d2c20006575206d6174746973206e756c6c61206e69736c206e6f6e206d617373612e000a0a496e746567657220756c74726963657320736f64616c6573206a757374006f2e20416c697175616d20626962656e64756d207068617265747261207269007375732c2061632076697665727261206e69736920616363756d73616e207500742e20457469616d2067726176696461206665726d656e74756d206d692069006e207363656c657269737175652e20467573636520696e74657264756d2c20006c656f207175697320626962656e64756d206d61747469732c206a7573746f00206d65747573206672696e67696c6c6120656c69742c20616320706c6163650072617420747572706973206469616d206661756369627573206e69736c2e2000457469616d206c616f72656574206c696265726f206c6f72656d2c2076656c002074656d707573206f64696f206469676e697373696d2065742e204e756c6c006120666163696c6973692e20496e74656765722064617069627573206d6f6c00657374696520656e696d2c2061632074696e636964756e742073617069656e0020636f6e76616c6c69732075742e2043726173206d6f6c6c697320636f6e73006563746574757220666163696c697369732e2043757261626974757220747200697374697175652c20726973757320706f72747469746f722076756c7075740061746520756c7472696365732c206c6f72656d2073656d206469676e69737300696d206e657175652c20657520706f72747469746f72206d61676e61206e69007369207669746165207475727069732e20446f6e656320636f6e7365717561007420657374206575206469616d20666575676961742c2076656c2076657374006962756c756d206469616d206c6163696e69612e20457469616d20756c74720069636573206c65637475732073697420616d6574206f726369207361676974007469732c2076656c20616c69717565742065726f73206c6163696e69612e2000496e74656765722070686172657472612c206172637520657520626c616e640069742064696374756d2c2076656c6974206f64696f20636f6d6d6f646f206f0064696f2c20757420636f6e7365717561742074656c6c7573207175616d206e006563206a7573746f2e2053656420656666696369747572207365642066656c0069732061206d6178696d75732e204e756c6c616d20656c656966656e6420730063656c65726973717565206c6f72656d2c20696e206d6f6c65737469652074006f72746f72206d616c6573756164612076697461652e20457469616d20636f006e64696d656e74756d2c20617567756520657420696163756c69732064617000696275732c206469616d206172637520706f72747469746f722075726e612c0020616320636f6e76616c6c6973206d61676e61206175677565207365642064006f6c6f722e2050686173656c6c75732076656c206f64696f2070757275732e000a0a457469616d20656c656966656e64206469676e697373696d206e697369002066657567696174206c6163696e69612e2051756973717565206574206c6100637573207669746165206172637520706f73756572652074656d7075732e20004e616d20636f6e73657175617420657820696e206172637520756c747269630065732c2076656c2076656e656e61746973206e756e63206672696e67696c6c00612e20496e7465676572206575206a7573746f206964206e6962682062696200656e64756d2072757472756d2e20457469616d207363656c657269737175650020747572706973206c656f2c2061632074696e636964756e74207175616d200064696374756d2065752e204475697320636f6e73657175617420636f6e67750065206a7573746f2c206469676e697373696d20626962656e64756d207361700069656e20656c656966656e6420656765742e204d616563656e617320646967006e697373696d206d6173736120757420626c616e646974206c6163696e6961002e2050726f696e2066657567696174206e756e6320736564206c6f72656d2000616c697175616d2070756c76696e61722e20416c697175616d207661726975007320616e7465207365642073617069656e206469676e697373696d2c206574002064696374756d2073617069656e20696e74657264756d2e2041656e65616e00206574206c656f2061756775652e2053656420756c74726963696573207469006e636964756e742065726f732c2073656420706f727461206d6175726973200066696e69627573206e65632e0a0a53757370656e6469737365206e6563206c006f72656d206c696265726f2e204d616563656e6173206e6563206c6967756c0061206e6f6e20657820626c616e6469742073757363697069742e2050656c6c00656e746573717565206c616375732072697375732c206f726e6172652061200063757273757320656765742c2074656d706f72207669746165206e69736c2e00204375726162697475722072757472756d20766f6c757470617420657820610020706c6163657261742e204d6f726269206d616c6573756164612074656c6c0075732065752061726375206d6f6c6573746965206d61747469732e2045746900616d207363656c6572697371756520636f6d6d6f646f2061756775652c20710075697320636f6d6d6f646f2076656c697420656c656966656e642069642e20004d617572697320617563746f72207669746165206d657475732071756973200076656e656e617469732e2050726f696e20626962656e64756d206661756369006275732074656c6c75732c20736f6c6c696369747564696e20696d7065726400696574206e69736920766f6c75747061742076656c2e20446f6e656320666100756369627573206d6f6c6573746965207175616d2c206574206672696e6769006c6c61206469616d2e0a0a446f6e656320696d706572646965742065726174002061206e6973692066696e696275732c207574206469676e697373696d206e0069736920666163696c697369732e204e756c6c6120696163756c697320757400207175616d20616c69717565742068656e6472657269742e2050656c6c656e0074657371756520757420656c656966656e64206e657175652e20446f6e656300206575206c6563747573206574206c656f20696e74657264756d2074696e63006964756e742e204e616d20756c74726963657320656c6974206e6973692c200065676574206d6178696d7573207269737573206672696e67696c6c612071750069732e205365642076656c206e69736920617420747572706973207275747200756d2074696e636964756e742e204e756c6c6120636f6e677565206572617400206c6f72656d2c207365642066696e69627573206c6163757320616c6971750065742065742e2050656c6c656e746573717565207574207175616d20696e20006f72636920736f64616c65732074656d706f72207574206575206e65717565002e2051756973717565206d616c65737561646120736167697474697320726900737573206e6f6e2076656e656e617469732e204e756e632066696e696275730020756c74726963696573206e69626820706f737565726520636f6e7365637400657475722e20496e7465676572206e6563206c6967756c61206e756e632e20005574206e6563206d617373612076656c206c6967756c612074726973746971007565206665726d656e74756d20696e2065752074656c6c75732e0a0a4d61750072697320736f64616c6573206469616d2069642066656c6973206c616f72650065742c207175697320736f6c6c696369747564696e2074757270697320756c006c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207361706965006e20657420756c6c616d636f7270657220736f6c6c696369747564696e2c200073656d206c6563747573206672696e67696c6c61207175616d2c2061742070006c6163657261742065782065726f732075742073617069656e2e20496e206f0064696f206e6973692c207661726975732073697420616d657420646f6c6f72002076656c2c20756c74726963657320706c6163657261742074656c6c75732e0020557420646f6c6f72206d692c2073656d706572206e6f6e206d6178696d7500732076656c2c2070756c76696e61722061742066656c69732e20457469616d00207269737573206e756c6c612c20656666696369747572206174206c6f7265006d206c6f626f727469732c20706f72746120656c656966656e64206c6f7265006d2e20566976616d757320617420636f6e64696d656e74756d2065726f732e00204475697320657420696163756c6973206d692c20766974616520636f6e73006563746574757220617263752e20496e2065726f73206d61757269732c207400656d706f7220717569732070656c6c656e74657371756520696e2c207068610072657472612076656c206c65637475732e204d6f72626920706f7274612c20006c696265726f20617420736f64616c657320656c656966656e642c206c6163007573206c6f72656d20626962656e64756d206f64696f2c206e656320706f7200747469746f72206c65637475732074656c6c75732076656c2073656d2e204e00756c6c61207363656c657269737175652065742075726e61206575206469630074756d2e205574206f726e617265206d61747469732074656d7075732e2055007420626c616e646974206f64696f2061206d61737361206d6178696d75732c00206e6563206d616c657375616461206c696265726f2066617563696275732e000a0a5574206d6178696d757320756c7472696369657320747269737469717500652e20457469616d206163206469616d206174206e756c6c61206c75637475007320756c6c616d636f7270657220696e20657520656c69742e2053656420650074206d617373612076656c206e6962682072686f6e6375732074696e63696400756e742e2053656420636f6e677565207363656c657269737175652074656d007075732e205175697371756520766f6c7574706174206d61737361206c6f7200656d2c2076656c2072757472756d20656e696d20636f6e64696d656e74756d00206e65632e20416c697175616d2074757270697320646f6c6f722c2065666600696369747572207365642064696374756d20616c697175616d2c206d617474006973206964206c616375732e204d616563656e61732066657567696174206e006973692071756973206d6178696d757320636f6e76616c6c69732e0a0a536500642074696e636964756e74207574206a7573746f2076697461652066696e69006275732e204d617572697320626c616e6469742065726174206e756e632c2000766974616520616363756d73616e2061726375206672696e67696c6c612071007569732e2053656420756c7472696365732074696e636964756e7420646961006d2073697420616d657420626962656e64756d2e20416c697175616d20666100756369627573206c61637573206567657420766573746962756c756d206865006e6472657269742e204e756c6c616d20766172697573206e6563206e657175006520657420656c656966656e642e2053656420766974616520747572706973002065742074757270697320656c656966656e642074656d706f722e2050656c006c656e74657371756520766573746962756c756d206172637520612065756900736d6f64206d61747469732e205072616573656e74206e6563207269737573002073697420616d6574207475727069732064617069627573207375736369700069742e20446f6e656320626962656e64756d2074656d707573206d6920696e002072757472756d2e20566573746962756c756d206d61737361206d65747573002c20696d7065726469657420657520736f64616c657320717569732c2061630063756d73616e2076656e656e6174697320617263752e20496e206e6f6e2070006f7375657265206c696265726f2c2076656c2073757363697069742075726e00612e0a0a53757370656e64697373652073617069656e206d657475732c207000756c76696e6172206e6563206c61637573206d6f6c65737469652c20656765007374617320766573746962756c756d2065782e20566573746962756c756d200074656d706f7220616e7465206e6563206e756e632074696e636964756e742000666163696c697369732e20457469616d20626962656e64756d2c20616e74650020696e207072657469756d20636f6e6775652c206d61737361206c6f72656d00206c6f626f727469732065782c206e65632072686f6e63757320746f72746f0072206d61757269732061632070757275732e20496e2072686f6e637573207600756c707574617465206d61676e6120617420657569736d6f642e204d61656300656e61732076656c206c616f72656574206a7573746f2c20696e206c616369006e6961206f64696f2e2050656c6c656e74657371756520616c697175657420006c616375732061632076656e656e61746973206c75637475732e20496e7465007264756d206574206d616c6573756164612066616d657320616320616e74650020697073756d207072696d697320696e2066617563696275732e205175697300717565206c6163696e6961207072657469756d2075726e6120736f64616c650073206d6178696d75732e20496e7465676572206469676e697373696d20707200657469756d206d6f6c6c69732e20536564206c656374757320656c69742c2000616c697175616d2061206469616d2069642c20646170696275732076617269007573206c6967756c612e204d6f726269206c6163696e696120736f64616c650073206c6f72656d2c20696420616c697175616d206e69736c20706f73756572006520656765742e0a0a41656e65616e2070686172657472612c2074656c6c750073206163206469676e697373696d20656765737461732c206175677565206500737420656c656d656e74756d2066656c69732c2076656c206c6f626f7274690073206e69736920656e696d20636f6d6d6f646f207475727069732e205375730070656e6469737365206e756e63207475727069732c206c6f626f727469732000736564206d61757269732069642c20706f72746120736f6c6c69636974756400696e206a7573746f2e2050726f696e20656c656d656e74756d206d6175726900732073697420616d6574206f72636920696e74657264756d2074696e63696400756e742e2053656420706f7274612075726e612066656c69732c206964207600656e656e617469732073617069656e207363656c657269737175652065742e0020566976616d7573206461706962757320706f72747469746f72206a757374006f2c206964206d6f6c6573746965206e69736c20696163756c69732074696e00636964756e742e20496e206d6174746973206d61757269732073697420616d00657420636f6e76616c6c697320756c747269636965732e20446f6e65632063006f6d6d6f646f2065676573746173206572617420766974616520617563746f00722e204e756c6c616d2066657567696174206d61676e61206573742c2065740020706f72747469746f72206573742074656d706f722061632e20416c69717500616d20766172697573206d69206575206c61637573206d61747469732c207300697420616d6574207375736369706974206e69736920736f64616c65732e200041656e65616e2065742068656e6472657269742076656c69742c20696e2070006c616365726174206e6973692e20446f6e656320717569732076656c697420006d692e20457469616d20706c61636572617420657261742076656c2065726f0073206672696e67696c6c6120636f6d6d6f646f2e0a0a50686173656c6c757300207669746165206475692066656c69732e205072616573656e7420707265740069756d206d6174746973206e657175652c2065676574206672696e67696c6c00612066656c69732074656d706f722061742e204372617320617563746f7220006e69736c206e65632073656d206c6f626f72746973206d61747469732e205000656c6c656e746573717565206d61747469732074696e636964756e74207465006d7075732e2050726f696e206c616f726565742073656d206120766f6c7574007061742072686f6e6375732e204d6f726269206575206d6175726973207369007420616d65742072697375732074696e636964756e74206f726e6172652e200041656e65616e20756c6c616d636f72706572206c61637573206e6f6e206e75006e6320696d706572646965742c20657420656c656966656e642074656c6c75007320706c6163657261742e2043726173206574206d6920696e206469616d20006567657374617320706c616365726174206e6f6e2073697420616d6574206c0065637475732e20416c697175616d20696163756c6973207075727573206c6f00626f727469732c207363656c657269737175652065726f7320656765742c200076617269757320646f6c6f722e2043757261626974757220737573636970690074206e6571756520736564206567657374617320636f6e7365717561742e2000496e2076656c20616c697175616d206d657475732c206c756374757320636f006d6d6f646f206e6962682e2053656420636f6e7365717561742070756c7669006e6172206d692c20736167697474697320616c69717565742065726f73206d006178696d75732076756c7075746174652e2055742065742074656d70757320006c616375732e0a0a53757370656e646973736520706f74656e74692e2044750069732076656c2076756c707574617465206d61757269732c20757420736f6c006c696369747564696e206d692e20446f6e65632076656c20616c697175616d00206c6967756c612c20656765742072686f6e6375732074656c6c75732e20500072616573656e74206e65632065726f732076697461652065726f732076756c0070757461746520617563746f722e204e756e632073757363697069742c206d00617572697320696420696e74657264756d20756c6c616d636f727065722c2000746f72746f72206a7573746f20646170696275732073617069656e2c20766900746165206c6163696e6961206c656f2075726e612076697665727261206e690062682e205175697371756520626962656e64756d20617563746f722065726f00732c206964206d6174746973206d617373612064696374756d20612e20557400206964206d69206e69736c2e20566573746962756c756d206575206c756374007573206c616375732e20446f6e65632061206d6178696d75732066656c6973002e0a0a446f6e65632073656d206e69736c2c20756c7472696365732061207400656c6c75732075742c2070656c6c656e74657371756520666163696c6973690073206e756c6c612e205365642065742073617069656e2075742065726f732000636f6e64696d656e74756d20706f72747469746f722e204675736365207369007420616d6574206d657475732065782e20496e20612065782073697420616d0065742074656c6c75732070756c76696e617220636f6e73657175617420612000696420656e696d2e204d616563656e617320756c6c616d636f727065722073006f64616c6573207475727069732c207175697320756c6c616d636f72706572002065726f7320636f6e7365717561742065742e20496e746567657220736f6400616c6573206573742073697420616d657420616e74652074656d7075732c2000696420616c69717565742066656c69732072757472756d2e204c6f72656d2000697073756d20646f6c6f722073697420616d65742c20636f6e7365637465740075722061646970697363696e6720656c69742e204d616563656e61732069640020747572706973207669746165206573742076656e656e6174697320656c65006d656e74756d2e0a0a446f6e656320696163756c697320677261766964612000636f6e73656374657475722e20457469616d20657569736d6f642065726f7300206567657420766573746962756c756d206672696e67696c6c612e20496e2000706f7274612c206572617420766974616520656c656d656e74756d2067726100766964612c20747572706973206c6f72656d206d6f6c6573746965206e696200682c20696420706861726574726120746f72746f72206d65747573206c616300696e6961207475727069732e204d6175726973207072657469756d2076617200697573207475727069732c2065742063757273757320657820766976657272006120717569732e20536564206d616c657375616461206c656f206574206d61007373612074656d707573206c6163696e69612e204e756e632073697420616d00657420656e696d2073656d2e20446f6e65632076656c206772617669646120007175616d2c2076656e656e61746973207665686963756c6120657261742e0a000a496e206e6f6e206c61637573206d616c6573756164612c206d6178696d750073206e696268206e65632c20636f6e73656374657475722076656c69742e20004e756c6c61206575206772617669646120746f72746f722e2050686173656c006c757320696e74657264756d206665726d656e74756d207661726975732e20004d6f726269207661726975732076656c697420696e206c6163757320736365006c65726973717565206d616c6573756164612e2050686173656c6c75732073007573636970697420616c697175616d2065726f7320696e20747269737469710075652e20566573746962756c756d2061632075726e61206e756e632e204d610075726973207072657469756d20746f72746f72206469616d2c206120667269006e67696c6c61206c65637475732074656d7075732061632e0a0a4d6f7262690020696d70657264696574206d6f6c6c697320646f6c6f722c206e65632065660066696369747572207175616d20616c697175657420612e20566976616d757300206c75637475732070757275732076656c206e69736c20657569736d6f642000706f72747469746f722061632076697461652074656c6c75732e2043726173002073757363697069742074726973746971756520707572757320757420736300656c657269737175652e2050656c6c656e7465737175652073697420616d65007420656c6974206964206c696265726f206665726d656e74756d20736f6461006c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c6120696e00207175616d207072657469756d2c20696420616c6971756574206e6962682000636f6e7365717561742e204e756c6c6120666163696c6973692e2041656e6500616e206f726369206c696265726f2c2068656e647265726974207574206c6f0072656d2076656c2c20706f72747469746f7220706f72747469746f72206c69006265726f2e20557420696420616363756d73616e206d617373612e20536564002073617069656e206c656f2c2074696e636964756e74207072657469756d200061756775652076697461652c207669766572726120766f6c7574706174207300617069656e2e204d6f726269206d6f6c6c6973206f7263692073656420756c0074726963657320636f6e64696d656e74756d2e204372617320616363756d7300616e20736167697474697320696d706572646965742e204e616d2074656d70006f7220766573746962756c756d207475727069732c20636f6e64696d656e7400756d2074656d706f72206f64696f20656c656d656e74756d2076656c2e2056006573746962756c756d20737573636970697420616e7465206120617263752000616363756d73616e2c2076656c20636f6e677565206d61757269732067726100766964612e0a0a50686173656c6c757320766f6c7574706174206d6175726900732065676574206c696265726f206c616f7265657420616c697175616d2e2000566573746962756c756d207269737573206e69736c2c2074656d7075732061007420766f6c75747061742076697461652c2074696e636964756e74207669740061652065726f732e20416c697175616d2076656e656e6174697320616e74650020626c616e64697420707572757320666575676961742c206120616c69717500616d20616e746520626962656e64756d2e2050726f696e20696e7465726475006d20697073756d206e6962682c2076656c20706f7274612066656c69732065007569736d6f642065742e20457469616d20717569732074656c6c757320646f006c6f722e2044756973206964206c616f72656574206f64696f2c20657420630075727375732072697375732e2053757370656e6469737365206c616f726565007420646f6c6f72206575206e756c6c6120666575676961742c20736564206600657567696174206e756c6c6120626c616e6469742e20416c697175616d2071007569732061726375207175697320617567756520756c7472696365732069610063756c69732e20446f6e65632069642065726f73206e6f6e206e6973692061006363756d73616e206f726e6172652076656c20757420657261742e205365640020636f6d6d6f646f206c756374757320616e746520717569732070756c7669006e61722e205072616573656e7420616c697175616d206d6f6c6c6973207075007275732072686f6e63757320636f6e7365717561742e2055742076697461650020636f6e6775652072697375732e20496e206d6f6c6c6973206120707572750073206964206c6163696e69612e0a0a467573636520616c697175616d206175006775652073697420616d6574206a7573746f2070656c6c656e746573717565002c20756c6c616d636f7270657220706f7274612064756920696163756c6973002e2050726f696e20656765737461732076756c707574617465206e69736c2c002076656c20637572737573206d6173736120706f72747469746f722061742e0020536564206e6f6e2074656c6c75732076656c206e756c6c6120626c616e6400697420666163696c697369732e204d616563656e6173206572617420656e69006d2c20736f64616c65732061206c6163696e69612076656c2c20616c697175006574207574206e756c6c612e20496e74656765722066656c69732061726375002c20736f64616c65732076656c2066617563696275732073697420616d6574002c20766573746962756c756d2065676574206c6f72656d2e204e756c6c61200076697665727261206f64696f206163206e756e63206c75637475732c2065750020706c6163657261742074656c6c757320616c697175616d2e204d6f72626900206e65632073656d20657520616e746520706f737565726520736f6c6c69630069747564696e2e204e756c6c6120616363756d73616e20636f6e7365637465007475722065737420766974616520756c747269636965732e20447569732066006163696c69736973207363656c65726973717565206d61757269732c206e6f006e20636f6e64696d656e74756d2064756920766f6c757470617420696e2e0a000a4d617572697320717569732066696e6962757320656e696d2e204e756e630020656765742065726f7320616c69717565742c206d6178696d7573206c6f7200656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e204d6f720062692065676574206e756e6320696420726973757320657569736d6f642062006c616e6469742076656c20612072697375732e204d6175726973206120736f0064616c65732074656c6c75732e2043757261626974757220626c616e64697400206174206e756e63206174206566666963697475722e204475697320657520006c696265726f206e656320647569206d6174746973206d6178696d75732e200053656420636f6e7365717561742065726174206d61757269732c2075742070006f727461206c6563747573206665756769617420717569732e2056657374690062756c756d2076656c2074656c6c7573206e65632073617069656e20636f6e006775652076656e656e617469732e20446f6e656320706c6163657261742075006c747269636573206d692e204675736365206c7563747573206e6f6e206d610075726973206163206375727375732e204e756c6c612065676574206d61676e006120766974616520747572706973206d616c6573756164612076697665727200612e2050656c6c656e746573717565206174206c6563747573206964206d6100676e612064617069627573206d61747469732076697461652061207175616d002e0a0a496e206572617420657261742c20696d7065726469657420757420710075616d206e65632c20756c6c616d636f727065722072757472756d20747572007069732e204d6f72626920706c61636572617420656c6974206174206e697300692070656c6c656e74657371756520706c6163657261742e2050726f696e20007669766572726120736f6c6c696369747564696e206375727375732e204675007363652076656e656e6174697320626c616e646974206e69736c207365642000636f6e6775652e204675736365206d6f6c65737469652c2075726e61207665006c20636f6e76616c6c69732072686f6e6375732c20656c6974206d657475730020657569736d6f642065782c2071756973207665686963756c61206d6173730061207075727573206163206475692e2041656e65616e206e6f6e206c6163750073207665686963756c612c20656c656966656e6420656c697420736f64616c0065732c207661726975732073617069656e2e20536564206e756c6c61206a750073746f2c206665726d656e74756d20706f72747469746f722076697665727200612075742c20706f727461206567657420656e696d2e2050656c6c656e7465007371756520636f6e736563746574757220736167697474697320747572706900732c206174206375727375732064756920706f737565726520696e2e20517500697371756520612073757363697069742065726f732e20457469616d20616c0069717565742c20646f6c6f722061742064696374756d2072686f6e6375732c00206d692065737420756c6c616d636f727065722072697375732c2061207469006e636964756e742074757270697320746f72746f72206e6f6e206e6962682e002053656420636f6d6d6f646f206469616d206163206f72636920766f6c7574007061742c207669746165206c6f626f72746973206d61676e6120706f7375650072652e204475697320636f6d6d6f646f20656c697420696420657820766172006975732c206567657420706f737565726520697073756d20617563746f722e0020467573636520756c74726963696573206f64696f20657520636f6e6775650020616c69717565742e2055742071756973206573742070756c76696e61722c002076756c707574617465206c65637475732076756c7075746174652c20636f006e7365717561742073617069656e2e0a0a446f6e656320636f6e76616c6c690073206d61757269732074656d7075732076617269757320617563746f722e2000416c697175616d207472697374697175652064696374756d2070757275732c0020696420677261766964612075726e6120616c69717565742075742e2056690076616d75732065752076656e656e6174697320616e74652c206d6178696d7500732074696e636964756e74206f7263692e20557420617420616c697175616d00206c6f72656d2e20416c697175616d206e6f6e206c61637573206e756c6c61002e204d6f72626920766974616520656666696369747572206d617373612c200076697461652072686f6e63757320657261742e2041656e65616e206e6f6e2000657261742071756973206d617572697320657569736d6f6420626c616e646900742e205574207669746165206e756c6c612073697420616d65742074656c6c007573206567657374617320636f6e7365717561742e205574206c696265726f00206c65637475732c20626c616e6469742070756c76696e6172207375736369007069742065752c20636f6e7365637465747572207669746165207361706965006e2e2043757261626974757220706f727461206e756e632066656c69732c2000717569732070656c6c656e746573717565206c656f206469676e697373696d002061742e204d6f7262692076656c20696163756c6973206e6962682e20446f006e65632074696e636964756e742065737420657520696d706572646965742000706f72747469746f722e20566573746962756c756d20696e207475727069730020746f72746f722e0a0a50726f696e2076697461652061726375206e696268002e205072616573656e74206573742073617069656e2c2074696e636964756e007420617420617263752076697461652c2076656e656e6174697320736f6c6c00696369747564696e20746f72746f722e2050656c6c656e7465737175652066006163696c697369732c206f64696f20696e2074726973746971756520736f6400616c65732c20657374206e6571756520657569736d6f6420697073756d2c2000657520656c656d656e74756d206f726369206e65717565207669746165206c00696265726f2e20446f6e65632074656d706f72206c696265726f20696e206c00656f20636f6d6d6f646f2c2075742076756c707574617465206d61676e6120006c616f726565742e204d616563656e61732072757472756d20656c656d656e0074756d20766f6c75747061742e20536564206d6f6c65737469652c206d657400757320657520656c656d656e74756d20616363756d73616e2c2073656d20710075616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d616c6573007561646120616e7465206c61637573206c6f626f7274697320746f72746f72002e205365642076656c697420646f6c6f722c20636f6e73656374657475722000617563746f7220616c697175657420696e2c206f726e617265206575207361007069656e2e204e756c6c61206574206c65637475732061207075727573207300656d706572206d61747469732e204e756c6c616d206d617474697320656c65006966656e64206d6f6c65737469652e0a0a4d6175726973206c6f626f72746900732065726174206c616375732c20757420766573746962756c756d20617567007565207072657469756d2065752e20446f6e65632065742073656d70657220006d61757269732c2073697420616d65742067726176696461206c6563747573002e20447569732076656e656e61746973206d69206f7263692c2061206566660069636974757220646f6c6f7220617563746f722069642e204e756c6c61206e006f6e2075726e612075742065726174207665686963756c612074696e63696400756e74207574206964206a7573746f2e2041656e65616e206c6163696e69610020657374206964206c7563747573206d616c6573756164612e205574206f72006e61726520647569207175697320636f6e736563746574757220707265746900756d2e20496e206163206a7573746f206163206e756c6c61207669766572720061207665686963756c612e2053757370656e646973736520696e2076657374006962756c756d206d657475732c206120736f64616c6573206c6f72656d2e20004d6f726269206e6f6e206c6967756c612076697461652074656c6c7573206600696e69627573207363656c6572697371756520617420696e20616e74652e20005175697371756520696e2073656d70657220646f6c6f722e20457469616d20006d6f6c6c69732c206d6574757320696420766f6c75747061742073656d706500722c206d61737361206e65717565206c6163696e69612073656d2c20696e2000656666696369747572206c656374757320656c6974207574206e756e632e200050726f696e206c6163696e6961206c6f72656d2071756973207475727069730020756c7472696365732c20757420666175636962757320646f6c6f7220656c00656966656e642e20446f6e6563206c6f626f7274697320697073756d20657500206572617420616c69717565742c2065752065676573746173206c6967756c006120656c656d656e74756d2e205072616573656e742069642065726f73206600696e696275732c206d6f6c6c69732074757270697320696e2c206d6f6c6c690073207175616d2e2050686173656c6c757320626c616e64697420636f6d6d6f00646f206e756e6320696e20626c616e6469742e204e616d207175697320726900737573207574206469616d206c6f626f727469732073616769747469732e0a000a50726f696e20766f6c75747061742074656d7075732072757472756d2e200050726f696e20696d7065726469657420626c616e6469742073617069656e20007175697320706c6163657261742e204e756c6c6120706f73756572652064750069206964206f64696f20657569736d6f642c20696420696163756c6973207500726e6120646170696275732e20446f6e65632070656c6c656e74657371756500206d617373612069642076697665727261206c616f726565742e204e756c6c00616d2071756973206c6163757320636f6e76616c6c69732c20626c616e64690074206c656f206e6f6e2c20616c697175616d206c696265726f2e2053656420006461706962757320617567756520696e2075726e612070686172657472612c002061742073656d706572206c656374757320706c6163657261742e205365640020756c74726963657320726973757320696420696163756c69732074656d700075732e20496e7465676572206665726d656e74756d2c2072697375732065740020636f6e736563746574757220636f6e6775652c206e756e63206573742069006163756c69732072697375732c20706f73756572652076656e656e61746973002065726f7320616e74652076656c2070757275732e20496e7465676572206c006163696e69612074656c6c7573207669766572726120726973757320736167006974746973206672696e67696c6c612e2043726173206e6f6e20697073756d002071756973206e65717565207669766572726120666163696c69736973206e006f6e20736564206475692e20467573636520636f6d6d6f646f20656c65696600656e64206a7573746f207175697320636f6e6775652e0a0a566976616d757300207363656c657269737175652074696e636964756e74206e756e6320646967006e697373696d20636f6e64696d656e74756d2e2051756973717565206172630075206e69736c2c20756c6c616d636f72706572206e6563206c65637475732000717569732c20636f6e67756520616363756d73616e20657261742e2043757200616269747572207574206e697369207475727069732e20496e20766974616500206573742071756973206d657475732074656d70757320766573746962756c00756d206575206e656320617263752e2055742073656d206a7573746f2c20660065756769617420657520636f6e73657175617420656765742c20756c6c616d00636f72706572206567657420697073756d2e205072616573656e7420707265007469756d206d6174746973206c656f2c20677261766964612068656e64726500726974206c696265726f2065666669636974757220656765742e204d61656300656e617320626c616e646974206e696268206469616d2c206e6563206c616300696e69612061726375206c6163696e69612065742e0a0a4675736365207469006e636964756e7420746f72746f722066656c69732e20536564206469616d20006e6962682c20637572737573206e6563206461706962757320656765742c20006f726e61726520656666696369747572206d692e20446f6e65632069642074006f72746f72207669746165206d692064696374756d20766573746962756c75006d2e2050726f696e206964206c696265726f20616c697175616d2076656c6900742074656d706f7220696d706572646965742073697420616d657420766974006165206c616375732e20437261732073697420616d65742065782068656e640072657269742c206672696e67696c6c6120617567756520696e2c206c616f7200656574206f7263692e204d616563656e6173206c61637573206d657475732c0020656c656966656e6420736564206d657475732075742c20657569736d6f640020657569736d6f642076656c69742e20496e746567657220696e2061636375006d73616e206d692e0a0a41656e65616e20696163756c69732076656c206a750073746f20756c7472696369657320766f6c75747061742e204372617320636f006e73656374657475722c2065726f73206e6f6e20756c6c616d636f727065720020696163756c69732c2076656c6974206578207665686963756c612076656c0069742c2073697420616d657420696163756c6973206a7573746f206469616d00206567657420657261742e20496e74656765722066696e6962757320736f6400616c6573206d617373612073697420616d6574206d616c6573756164612e2000496e2072686f6e6375732073617069656e206964207175616d207669766572007261207665686963756c612e20496e20686163206861626974617373652070006c617465612064696374756d73742e20446f6e656320616320706f7274746900746f72206e657175652c2073656420656666696369747572206c6967756c61002e20446f6e6563206567657420616c697175616d206c616375732c206e6f6e00207665686963756c61206e69736c2e2053656420706c616365726174206d61007474697320636f6e76616c6c69732e20496e746567657220736f64616c6573002c206e69736c2061207665686963756c61206469676e697373696d2c207665006c69742074656c6c7573206566666963697475722070757275732c20612076006573746962756c756d206f64696f206c61637573206964206469616d2e204e00756c6c616d20766974616520626c616e64697420656c69742e20507261657300656e742074696e636964756e74206c656374757320656c69742c206e6f6e200074656d707573206e69736c20677261766964612076697461652e204e756c6c0061206469616d2070757275732c206c616f7265657420766974616520656765007374617320696e2c20636f6e7365637465747572206574206d61757269732e002053656420766172697573206d6f6c6c697320656c656d656e74756d2e204e00616d2073697420616d6574206d61676e6120677261766964612c2068656e6400726572697420697073756d206e6f6e2c2074656d7075732073656d2e204d61006563656e6173206469676e697373696d206d6f6c6c69732072686f6e637573002e205365642066656c6973206e69736c2c2073656d7065722061742074656c006c75732065742c206d616c65737561646120616c697175616d20697073756d002e0a0a496e74656765722073757363697069742076656c6974206964207365006d206665726d656e74756d2c207175697320756c7472696365732073656d200074696e636964756e742e2041656e65616e2076656c20646f6c6f72206e6563002074757270697320656c656d656e74756d207363656c657269737175652e200050726f696e206f64696f20746f72746f722c20616c697175657420656765740020696d7065726469657420717569732c20736f6c6c696369747564696e20690064206c616375732e2050656c6c656e74657371756520656e696d20656c6974002c207375736369706974206964207175616d206e65632c206375727375732000616c697175616d2065726f732e20446f6e656320626962656e64756d207369007420616d6574206d657475732071756973207363656c657269737175652e20004e756e6320616320747572706973206a7573746f2e2053656420706c6163650072617420746f72746f72206e6563206c6163757320736f6c6c69636974756400696e207363656c657269737175652e2050686173656c6c7573207669746165002063757273757320657261742c20616320756c7472696369657320746f7274006f722e0a0a43726173206d616c6573756164612067726176696461206a757300746f2076656c207661726975732e204e756c6c616d206c616f7265657420690064206d617572697320696e20646170696275732e20437572616269747572200073757363697069742065782065676574207361676974746973206c7563747500732e20447569732071756973207669766572726120656c69742c20717569730020756c6c616d636f72706572206e756e632e204d617572697320656c65696600656e642c206d6173736120696e20626962656e64756d20616363756d73616e002c206578206e69736920766573746962756c756d206469616d2c2075742069006163756c697320647569206f72636920736564207475727069732e204e756c006c6120626962656e64756d2c2076656c697420657520636f6e76616c6c6973002073656d7065722c206d65747573206e69736c20706f7375657265206175670075652c2068656e64726572697420696163756c69732073617069656e20717500616d206574206469616d2e2050726f696e2076656c206e69736c206175677500652e20566976616d75732076656e656e61746973206d657475732073656420006d617572697320706f73756572652c20612068656e64726572697420656e69006d20766976657272612e204475697320636f6d6d6f646f206172637520657400206d61676e6120756c7472696365732070656c6c656e7465737175652e204e00616d20696e206c696265726f2076656e656e617469732c2076657374696275006c756d206175677565206c6163696e69612c20766172697573206c6f72656d002e20457469616d206574206c7563747573206c616375732e205175697371750065206d6f6c65737469652c206e69626820617420756c747269636573206d6100747469732c206c616375732075726e6120636f6e76616c6c6973206e756c6c00612c20696e206d616c657375616461206e756c6c61206c6563747573206e6f006e206469616d2e20457469616d206567657420697073756d206d61676e612e002050686173656c6c75732066656c6973207175616d2c20626962656e64756d002073697420616d657420726973757320717569732c20677261766964612065007569736d6f642066656c69732e0a0a46757363652076656e656e617469732000696e74657264756d20656c69742c20717569732072757472756d206f7263690020706f7375657265206e6f6e2e20496e20656c656966656e6420657374207100756973206469616d20666163696c697369732c206163206d616c65737561640061206d61737361206f726e6172652e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e205365642063757273757320616c697175616d206f0064696f2076656c2073757363697069742e2050656c6c656e74657371756520006163206c696265726f206163206572617420616c6971756574207361676974007469732e204d616563656e617320616e7465206c616375732c207363656c6500726973717565206574207472697374697175652076697461652c20656666690063697475722065676574207175616d2e2050686173656c6c7573207275747200756d20656c69742061756775652c2071756973206c6163696e6961206f726300692074696e636964756e74206e65632e20496e20636f6e736563746574757200206964206f726369206575207363656c657269737175652e2050656c6c656e0074657371756520616c69717565742074656d707573206f64696f207574207600756c7075746174652e2051756973717565206c696265726f206e69736c2c200072757472756d2061742073617069656e206e65632c206c616f726565742074007269737469717565206a7573746f2e2043726173206c6163696e6961206e690062682069642065726f732072757472756d207363656c657269737175652e20004e756e63206e6f6e206d6175726973206f7263692e204e616d20696d70657200646965742064617069627573206a7573746f2e20496e2076656c206c616375007320706f72747469746f722c207661726975732072697375732075742c2061006c697175616d20746f72746f722e2043757261626974757220696e206d65740075732076656c2065782076656e656e6174697320706f7274612e0a0a5375730070656e6469737365207365642070756c76696e6172206573742e205068617300656c6c7573206e6563206d6920656c656966656e642c20666575676961742000617263752061742c20706f72747469746f72206e6973692e204475697320650067657420626c616e6469742065782e20437261732061206475692065726f73002e20496e74657264756d206574206d616c6573756164612066616d65732061006320616e746520697073756d207072696d697320696e206661756369627573002e20496e2073656d206c696265726f2c20766f6c757470617420656765742000647569207365642c2070656c6c656e746573717565206c7563747573206578002e20536564206574206c656f20656765742065726f7320696e74657264756d00206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c657374690065206c65637475732c206e6f6e207665686963756c61206c65637475732e2000446f6e656320656666696369747572206d616c657375616461206d6175726900732c2065676574207472697374697175652073656d206c6f626f727469732000612e204e616d2074656c6c75732075726e612c2072686f6e63757320666572006d656e74756d20737573636970697420717569732c20696d70657264696574002071756973206f7263692e20557420637572737573206572617420766974610065206665726d656e74756d20666163696c697369732e204e756e632075742000626c616e646974206c6f72656d2e20566573746962756c756d2074656c6c750073206469616d2c20636f6e67756520657520706f73756572652075742c206c006f626f7274697320612073656d2e204e756c6c616d206163206f726369206e006f6e2075726e6120656c656966656e6420696d706572646965742e0a0a507200616573656e74207669746165206e69736c206672696e67696c6c612c207375007363697069742065726174207365642c20656c656d656e74756d207269737500732e20446f6e656320696420756c74726963696573206f64696f2e2050726f00696e206d6174746973206d61757269732061206d61737361206d6178696d750073207472697374697175652e2050686173656c6c7573206567657420706f730075657265206e6962682e2050686173656c6c757320736564206d657475732000657420657820636f6d6d6f646f20766f6c75747061742e2041656e65616e20006c6163696e69612c206175677565206e6f6e2065666669636974757220636f006e6775652c206d617373612073656d2076697665727261206469616d2c20710075697320706f737565726520647569206c6f72656d2061206c6f72656d2e2000496e2076756c7075746174652064756920657520656c6974207375736369700069742074656d706f722e204372617320696d70657264696574206d6175726900732073656420657820637572737573206c616f726565742e20566976616d750073206e65717565206573742c20666163696c6973697320717569732066656c00697320717569732c20706f72747469746f7220706f72747469746f72206e75006e632e204675736365206e6f6e206c6f626f72746973206c6f72656d2e0a0a004d616563656e617320766f6c75747061742066617563696275732074656c6c00757320756c747269636965732070756c76696e61722e2050686173656c6c750073206120706f72747469746f7220617263752e20446f6e65632076756c7075007461746520656e696d207475727069732c20612074696e636964756e7420640069616d2074656d706f722065752e20446f6e656320736f6c6c69636974756400696e2c206578207669746165206c756374757320766573746962756c756d2c00206e69736c20616e746520756c6c616d636f72706572206d692c2061742075006c7472696369657320656e696d20646f6c6f722073656420656c69742e20500072616573656e74206d6f6c6c697320656666696369747572207269737573200071756973207072657469756d2e20566573746962756c756d2071756973206600696e69627573206475692c2065676574206f726e617265206c65637475732e0020457469616d2065676574206a7573746f20766573746962756c756d2c2062006c616e6469742073656d20696e2c206d6178696d75732065726f732e0a0a5000686173656c6c7573206120697073756d206575206d69206375727375732073006f64616c6573206e656320736564206e6973692e2044756973206672696e6700696c6c6120657374206163206c6967756c612070756c76696e61722067726100766964612e2050726f696e207669766572726120616363756d73616e207365006d2c2076656c2072757472756d206e69736c20636f6e736571756174207665006c2e204e756e63206672696e67696c6c61206d657475732076656c206661750063696275732074656d706f722e205072616573656e7420636f6e73656374650074757220646170696275732061756775652c206574207363656c6572697371007565206c656374757320636f6e64696d656e74756d206e65632e204e756e630020616363756d73616e2c2075726e61206e6f6e20706c61636572617420756c007472696365732c206d617572697320617567756520736f6c6c69636974756400696e20616e74652c2073697420616d657420616c697175616d206c61637573002076656c69742061632074656c6c75732e205365642076656e656e61746973002c2074656c6c7573206e656320617563746f7220646170696275732c206c6f0072656d2073617069656e2073656d70657220657261742c206575207669766500727261207175616d2075726e61207669746165206c6f72656d2e204d61656300656e6173207375736369706974206e756e63207574206d6f6c657374696520006d61747469732e20416c697175616d20766974616520657374206469676e69007373696d2064756920656c656d656e74756d20617563746f722e0a0a4d6f72006269206e756c6c61206c616375732c2073656d7065722073697420616d6574002066656c69732065742c2076756c707574617465206d616c65737561646120006475692e2050726f696e20656765742065726f73206c65637475732e20446f006e65632074696e636964756e7420656c69742076656c20736f6c6c69636974007564696e2073616769747469732e2050726f696e206163206d6f6c6573746900652073656d2e2053757370656e646973736520696163756c69732076657374006962756c756d2073656d206574206d61747469732e2050726f696e206c6f62006f72746973206c616f72656574206469616d2c2073656420706f737565726500206573742074656d706f722065742e2053656420696e20746f72746f7220710075697320657820696d70657264696574206c6163696e69612071756973206e006563206c6f72656d2e204d616563656e617320636f6e76616c6c69732065660066696369747572206f7263692c20657420706f72747469746f72206e69736c0020666163696c69736973206e6f6e2e205365642068656e647265726974207600656e656e617469732066656c697320666175636962757320656c656d656e7400756d2e204d6f7262692061632064756920736f64616c65732c2070656c6c65006e74657371756520697073756d2076656c2c20736f64616c65732076656c6900742e20457469616d20656e696d206c6f72656d2c2076656e656e6174697320006163206c616375732065742c2065676573746173206d616c65737561646120006c65637475732e20416c697175616d20736f64616c6573206e6962682065660066696369747572206c656374757320616c697175616d20766573746962756c00756d206e6f6e2061206f64696f2e204d61757269732069642066617563696200757320656c69742c2073656d70657220706f72747469746f72206e756c6c61002e204675736365206f726e6172652c206a7573746f20696e20766568696375006c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e677565200074656c6c75732c20757420666175636962757320697073756d207269737573002061206e756c6c612e20457469616d207669766572726120707572757320710075616d2c2076656c20706f72747469746f72206d6574757320696d70657264006965742065752e204d6f72626920636f6e76616c6c697320636f6e73657175006174206475692e0a0a4d61757269732074726973746971756520617263752000717569732072686f6e6375732064696374756d2e204e756e6320646f6c6f7200206c696265726f2c206d6178696d757320617420656e696d2075742c2067720061766964612072686f6e637573207175616d2e20566573746962756c756d20006d61747469732074696e636964756e7420666163696c697369732e20467573006365206e756c6c612061756775652c206567657374617320736564206c616300696e69612076697461652c206d616c657375616461206163206e756c6c612e00204d617572697320696163756c6973207072657469756d206c616375732c2000612066696e696275732075726e6120706f73756572652061632e204d6f7262006920696e74657264756d20666175636962757320657261742c2061206c616f0072656574206d61676e6120626c616e64697420612e2043726173206e656320006d61676e612071756973206c61637573206567657374617320696163756c6900732e0a0a4c6f72656d20697073756d20646f6c6f722073697420616d65742c0020636f6e73656374657475722061646970697363696e6720656c69742e2055007420756c74726963696573206f726369207175616d2c2073697420616d65740020656c656966656e6420616e7465206672696e67696c6c61206e65632e205000726f696e20616c697175616d20696e2074656c6c757320677261766964612000636f6e76616c6c69732e2050726f696e2072757472756d20636f6e7365717500617420656e696d20736564206d616c6573756164612e2041656e65616e206500676573746173206d657475732076697461652073656d20636f6e64696d656e0074756d2073757363697069742e2053757370656e6469737365206172637520006475692c206772617669646120696e2065726f732065742c206d61747469730020616c69717565742074656c6c75732e20496e74656765722070656c6c656e0074657371756520616e74652066696e69627573206d692072757472756d2061006c697175616d2e20496e7465676572206d6174746973206469616d2073656400206665756769617420696d706572646965742e2046757363652069642062690062656e64756d206d617373612e20496e74656765722061742074656d7075730020656e696d2e20416c697175616d206574206d6f6c6c6973206d61676e612e000a0a5365642073656d70657220656c656d656e74756d206d61737361206e6f006e20766976657272612e205365642073697420616d6574206d61676e612065007420697073756d207472697374697175652076756c7075746174652e205065006c6c656e74657371756520696e206c696265726f2073656d2e205375737065006e646973736520736f64616c65732074656d706f722061756775652074696e00636964756e7420666163696c697369732e204d616563656e6173207363656c006572697371756520697073756d20617420666575676961742064696374756d002e204d616563656e61732076656c2075726e6120736564206d657475732075006c74726963696573206d6f6c6c69732e204e756c6c61206c6f72656d206d6100757269732c2073757363697069742065676574206172637520696e2c207275007472756d2072757472756d206d617373612e204d616563656e61732061632000696d7065726469657420656c69742c207365642073757363697069742069700073756d2e2050726f696e206d6f6c6573746965206d6173736120617263752c00206120636f6e64696d656e74756d206f64696f20756c747269636573207369007420616d65742e205072616573656e742072686f6e637573206578207075720075732c2073656420706c616365726174206e756e63206f726e617265206574002e2050686173656c6c75732061206e696268206d616c6573756164612c2075006c6c616d636f72706572206e69736c2061742c2070656c6c656e74657371750065206c6f72656d2e2050686173656c6c7573206c6f72656d20697073756d2c0020756c6c616d636f727065722075742076756c70757461746520616c6971750065742c207661726975732065676574206c6f72656d2e0a0a4d6175726973200068656e6472657269742074696e636964756e74207175616d20616320696e7400657264756d2e20496e206120697073756d206e6f6e207175616d206d617869006d75732066696e696275732e20536564206f64696f2065782c206c6163696e00696120766974616520697073756d2073616769747469732c20766568696375006c6120656765737461732072697375732e204e756c6c616d20616320656c65006966656e6420646f6c6f722c20657520706f72747469746f722074656c6c7500732e204d616563656e617320746f72746f722076656c69742c20636f6e6469006d656e74756d20696420656e696d2076656c2c20657569736d6f64206f726e006172652072697375732e20416c697175616d206964206c6f72656d20696e7400657264756d2c20616c697175616d20707572757320696e2c20706861726574007261206a7573746f2e205574207669746165206c656f206469616d2e204e75006c6c6120656c656d656e74756d206e756e63206d657475732c206e65632076006172697573206f64696f2066696e69627573206e65632e20457469616d207100756973206e69736c20696e74657264756d2c20766f6c757470617420646f6c006f722065742c2072686f6e637573206e6962682e204d616563656e6173206e006f6e2072757472756d2061756775652c20657520656c656966656e64206d69002e20446f6e6563206c6f626f7274697320616e7465207669746165206175670075652070686172657472612c206174206c6163696e696120746f72746f7220007072657469756d2e0a0a4d616563656e61732061742074656d706f72206d6100676e612c20696e20737573636970697420656e696d2e204e756c6c6120656c00656d656e74756d2072757472756d2065782c206567657420736f64616c657300206e756c6c6120636f6e76616c6c69732076697461652e20566976616d757300206469676e697373696d2c2065726f7320657520656c656d656e74756d2073006f6c6c696369747564696e2c206c6f72656d20647569206c7563747573207300617069656e2c206163206d617474697320646f6c6f7220656e696d2073757300636970697420656c69742e204e756c6c61206567657420696d7065726469650074206d657475732e2043757261626974757220636f6e64696d656e74756d200061207075727573207363656c6572697371756520756c7472696365732e2041006c697175616d206c696265726f206d692c20766573746962756c756d206574002074656d706f722065752c2070686172657472612073697420616d65742065006c69742e20557420696420616c697175616d206c696265726f2e0a0a5365640020636f6e7365637465747572206c65637475732066696e69627573206c656300747573206f726e61726520706f7274612e20447569732073656420636f6e670075652073617069656e2c20757420696d7065726469657420656e696d2e205300656420656c656d656e74756d20696163756c6973206c6967756c612c206e6f006e2076656e656e617469732073617069656e206c75637475732069642e2053006564206566666963697475722c20616e7465207669746165206d6f6c657374006965206566666963697475722c20656c697420697073756d20636f6e64696d00656e74756d20697073756d2c2076656c206d6f6c6c6973206d61676e61206f0064696f207669746165206c616375732e2053757370656e64697373652065670065737461732073656d206f64696f2c20696e20766573746962756c756d206e0069736c20706f72747469746f722076656c2e20496e2074696e636964756e74002c206d657475732061206c6f626f7274697320756c7472696365732c2069700073756d206d6574757320766573746962756c756d206e756c6c612c2061742000696d7065726469657420746f72746f72206e6571756520736564206d692e20004d617572697320617420616e746520616e74652e20566573746962756c756d0020637572737573207665686963756c6120756c7472696365732e204d6f72620069206c7563747573206120657374206e656320696d706572646965742e20550074206e6f6e2075726e61206672696e67696c6c612c2065676573746173206d00657475732065752c2064696374756d20656c69742e20496e2064696374756d00207075727573206964206c656374757320616c69717565742074656d706f72002e20416c697175616d206572617420766f6c75747061742e204e616d206175006775652066656c69732c20696d70657264696574206174206d61676e61206e0065632c2070656c6c656e746573717565207661726975732074656c6c75732e000a0a4d616563656e617320656765742065782070656c6c656e746573717565002c20656c656d656e74756d206469616d2061742c20656c656966656e642064006f6c6f722e204e756c6c616d20626962656e64756d2065726f73206e65632000646f6c6f7220646170696275732c206174207361676974746973206573742000636f6e64696d656e74756d2e205072616573656e74206e6f6e2068656e647200657269742065726f732e204d616563656e617320636f6e736571756174206d006173736120766974616520647569207665686963756c612c20757420756c740072696365732072697375732073656d7065722e2053757370656e646973736500206461706962757320616e746520646f6c6f722c206120626962656e64756d002076656c69742074726973746971756520696e2e204d616563656e6173206e00656320696163756c697320656e696d2e20566573746962756c756d2073656400206f64696f2064696374756d2c20766573746962756c756d206f64696f2065006765742c20656c656966656e64206d657475732e204d617572697320616320006c696265726f20736564206c656f2070756c76696e617220636f6e76616c6c0069732e2044756973207665686963756c61206f72636920656c69742e2056650073746962756c756d206566666963697475722065676573746173206578206100206f726e6172652e2051756973717565206f726e617265206e6962682063750072737573206d6f6c65737469652070656c6c656e7465737175652e0a0a446f006e65632074696e636964756e7420666575676961742073757363697069742e0020566573746962756c756d20756c6c616d636f7270657220646f6c6f72206e006f6e206c6967756c6120766573746962756c756d2c20612070756c76696e610072206e756e6320636f6e7365717561742e20416c697175616d2070756c7669006e6172207661726975732074656c6c757320657520617563746f722e204d6100757269732076697665727261207665686963756c612065782c2076697461650020616c697175616d20617263752064696374756d2069642e205175697371750065207068617265747261207669746165206d61676e6120696e206f726e617200652e20566573746962756c756d207072657469756d207363656c6572697371007565206f64696f20696420636f6e73656374657475722e204e756c6c61207300656420656e696d207574207175616d20636f6e736563746574757220747269007374697175652e0a0a4e756c6c616d206f64696f206d61757269732c20666500756769617420657520666575676961742075742c20706f737565726520766900746165206d61676e612e205365642076697461652073656d70657220747572007069732c2073697420616d6574207363656c65726973717565206e756c6c61002e20517569737175652074656d707573206e6f6e206d692073656420706f7200747469746f722e2050726f696e206c656f2065782c20706f73756572652065007520656765737461732076656c2c206d6f6c657374696520736564206d65740075732e204e616d20747269737469717565206c616375732065742069707375006d206d6178696d757320756c747269636965732e204e756c6c616d20706f7300756572652073697420616d65742073617069656e206d6f6c65737469652075006c6c616d636f727065722e204d6f72626920656765737461732c20657261740020616320626c616e6469742064696374756d2c2073617069656e206e69736c002066696e69627573206e6973692c2073656420656666696369747572206c6500637475732073656d20657520697073756d2e2050686173656c6c7573206c65006f2061756775652c2076756c70757461746520706c616365726174206175670075652065752c2074656d706f722074696e636964756e74206c6f72656d2e200046757363652073697420616d65742073656d70657220746f72746f722e0a0a0053757370656e646973736520706f74656e74692e204d616563656e6173206900642064617069627573207475727069732c206e6f6e2076756c707574617465002065782e204e756c6c616d2072757472756d206c6967756c61206e65632072006973757320737573636970697420766f6c75747061742e20416c697175616d00206c7563747573206e657175652073697420616d65742061726375207472690073746971756520766f6c75747061742e205365642076697461652066656c690073206c6f72656d2e20416c697175616d20706c61636572617420656c656d65006e74756d2073617069656e2c2076697461652076756c7075746174652072690073757320766f6c757470617420696e2e204d616563656e6173207669746165002064756920657261742e2050686173656c6c7573206672696e67696c6c61200073617069656e2073656420647569207665686963756c612c207661726975730020636f6e736563746574757220616e746520736f6c6c696369747564696e2e00204372617320696163756c69732c2073617069656e20696e74657264756d2000696d70657264696574206566666963697475722c20647569206d6175726973002070756c76696e617220697073756d2c2061742076656e656e61746973206e0069736c206f64696f2071756973207175616d2e204e756e63206566666963690074757220636f6e73656374657475722073656d7065722e204e756c6c616d2000706f7375657265206e756c6c612072686f6e6375732070756c76696e61722000756c747269636965732e204e756e632074656c6c757320617263752c206865006e64726572697420736f6c6c696369747564696e206469616d207669746165002c2068656e6472657269742066696e696275732065782e0a0a536564206c6f00626f72746973206d6174746973206c6967756c612c20766974616520636f6e0076616c6c6973206c656f2064617069627573206e6f6e2e204d616563656e610073207669746165206c61637573206575206e69736c20617563746f7220656c00656d656e74756d206e6563207669746165206c65637475732e204d61656365006e6173207669746165206f726369207669746165206d6920756c6c616d636f007270657220706f72747469746f72206964206c6f626f72746973206e69736c002e20446f6e6563206964206d617572697320697073756d2e20416c69717561006d206572617420766f6c75747061742e20566976616d7573206c6f626f7274006973206e696268207574206573742076756c7075746174652066657567696100742e20496e7465676572206c696265726f207175616d2c20756c74726963650073206174206f7263692061742c20636f6e677565206665726d656e74756d20006d617373612e20457469616d2069642065726f7320696163756c69732c2063006f6e64696d656e74756d206f7263692074696e636964756e742c206d617474006973206d657475732e204d616563656e617320756c747269636573207369740020616d657420646f6c6f722069642070656c6c656e7465737175652e2056650073746962756c756d20706f727461206d6178696d7573206e69736c2c20696e002066696e6962757320746f72746f7220766f6c75747061742075742e2055740020677261766964612c20646f6c6f7220756c7472696365732068656e6472650072697420666575676961742c20656e696d2073656d20696e74657264756d20006c6967756c612c20616320656666696369747572206572617420656c697420006964206c6f72656d2e20496e2073697420616d657420756c6c616d636f7270006572206c6f72656d2e0a0a50686173656c6c7573206c6967756c612075726e00612c20636f6e736571756174206574206c756374757320612c206f726e617200652065742061756775652e20566573746962756c756d20657420616e746520006174206c6163757320626962656e64756d20696d706572646965742e2045740069616d2074757270697320617263752c2063757273757320766974616520760069766572726120612c2068656e64726572697420766974616520617263752e002050726f696e206f726e617265206d6175726973207574206d61676e61206d006f6c6573746965206d61747469732e20446f6e65632074656d706f72206c6500637475732071756973206d617373612076756c70757461746520696e7465720064756d2e2050726f696e206575206c6967756c61206469616d2e204d61656300656e6173206461706962757320747572706973206c65637475732c2075742000666163696c6973697320656c6974206469676e697373696d2075742e204e75006e6320626c616e646974206f726369206120616e746520666163696c69736900732c20617420636f6e76616c6c69732066656c697320666163696c69736973002e20437572616269747572207375736369706974206d692061206c69626572006f20706f73756572652c2071756973206f726e617265206a7573746f2076690076657272612e2050656c6c656e746573717565206861626974616e74206d6f00726269207472697374697175652073656e6563747573206574206e6574757300206574206d616c6573756164612066616d6573206163207475727069732065006765737461732e204e756c6c612070756c76696e6172207363656c6572697300717565206d61676e612c2065676574206c6f626f72746973206e6962682063006f6d6d6f646f2061742e20447569732065676574207661726975732066656c0069732c20636f6e64696d656e74756d20706c616365726174206c6563747573002e20416c697175616d20617563746f722074656d706f722075726e61206575002070756c76696e61722e204d6f726269206375727375732074656d706f7220006e657175652c206e6f6e20626c616e64697420646f6c6f7220666163696c690073697320656765742e2053656420736564206c6f626f727469732073656d2e000a0a4d617572697320756c7472696369657320656c69742075726e612c207600656c20616c697175657420707572757320617563746f722076697461652e20005072616573656e742076697665727261206f64696f2074656c6c75732c20710075697320706f7375657265206e756c6c6120616c69717565742061742e204c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e20437572616269007475722065676574206d65747573206174206c6967756c6120656c65696665006e6420706861726574726120696e206d616c657375616461206475692e20440075697320636f6e7365637465747572206469616d2075742066657567696174002072757472756d2e20566976616d757320657569736d6f64206e69736c207600656c206d6178696d75732073616769747469732e20496e20636f6d6d6f646f002073697420616d6574206c6f72656d2065742074696e636964756e742e205500742070656c6c656e746573717565206e756c6c61206e6f6e206d61757269730020636f6e64696d656e74756d2c2069642076756c707574617465206f64696f0020626c616e6469742e2053757370656e6469737365206e6f6e20707265746900756d206d61757269732c206e65632074696e636964756e742073617069656e002e0a0a4675736365206461706962757320657569736d6f6420747572706973002c20757420656c656d656e74756d20656e696d20657569736d6f64206e6f6e002e204e616d2061206e6962682074656c6c75732e2050656c6c656e7465737100756520696163756c697320746f72746f722073656420706f72747469746f720020636f6e64696d656e74756d2e204375726162697475722066617563696275007320747572706973206d6178696d75732c2076656e656e6174697320616e740065207365642c206d6f6c6c69732072697375732e205365642074656d70757300206d61676e612065676574206e756e6320706f72747469746f722c206174200072757472756d207175616d20636f6d6d6f646f2e20496e746567657220626c00616e646974207661726975732074656c6c75732073697420616d6574207275007472756d2e2050726f696e206d6f6c6c697320747269737469717565206e6500717565207365642074656d7075732e204475697320706c6163657261742c20006f7263692069642064696374756d20766573746962756c756d2c206c696775006c6120646f6c6f7220766f6c7574706174206c656f2c2076697461652066610075636962757320656e696d206e756c6c6120717569732065782e20437261730020666175636962757320657374206573742c2073697420616d65742061636300756d73616e206c6163757320696d706572646965742069642e204e616d206d0061747469732c206e756e6320736564206469676e697373696d20706c616365007261742c206d617373612075726e6120696163756c69732076656c69742c200071756973206c7563747573206469616d206a7573746f206575206e6973692e0020416c697175616d206572617420766f6c75747061742e0a0a50656c6c656e00746573717565206e6571756520617263752c20636f6e677565206e6f6e2061007567756520717569732c2074726973746971756520696e74657264756d206e00756e632e2050726f696e20646f6c6f7220746f72746f722c206461706962750073207365642070656c6c656e74657371756520612c2072757472756d206567006574206e6973692e20437261732065742074656d7075732074656c6c75732e00204e756c6c6120706f72747469746f722c206e69736920657520617563746f0072207661726975732c206572617420746f72746f722072757472756d20747500727069732c206e6f6e2068656e64726572697420616e7465206e6571756520007574206573742e20416c697175616d2076756c7075746174652076656c69740020766974616520657569736d6f6420656765737461732e20496e7465676572002072757472756d206d6f6c6c697320617263752c20757420756c7472696369006573206a7573746f206d6f6c6c697320656765742e20457469616d206174200066696e6962757320656e696d2c206574206d6174746973206d61757269732e00204d616563656e617320696e20616c69717565742061756775652e204e616d0020756c74726963657320656c656d656e74756d20617263752076656c20616c00697175616d2e20566573746962756c756d20696e206c6967756c6120747269007374697175652c206661756369627573206f64696f20656765742c206c6f62006f72746973206a7573746f2e204d6f726269206575206e756e63207369742000616d657420726973757320636f6e73657175617420616c697175657420736500642061632065782e20496e2068656e64726572697420756c7472696369657300206c6967756c612c2071756973207375736369706974206c6563747573206400696374756d2065752e20536564206c616f7265657420636f6e67756520756c007472696365732e2050686173656c6c7573207375736369706974206d6173730061206120666163696c6973697320696d706572646965742e0a0a44756973200074696e636964756e742065726f732071756973206772617669646120766172006975732e2053757370656e6469737365206e6f6e206475692070757275732e0020496e74657264756d206574206d616c6573756164612066616d65732061630020616e746520697073756d207072696d697320696e2066617563696275732e0020446f6e65632061742070756c76696e61722066656c69732e20446f6e656300206e656320616c697175616d2065726f732c2064696374756d20626962656e0064756d20617263752e20496e206e656320646f6c6f722066696e696275732c00207072657469756d206c6967756c612065742c20636f6e736571756174206500782e20496e206861632068616269746173736520706c61746561206469637400756d73742e20457469616d2074656c6c757320656e696d2c20696e7465726400756d2073656d70657220697073756d20736f64616c65732c206772617669640061206672696e67696c6c6120646f6c6f722e204e756c6c61206c6163696e690061206a7573746f20736f6c6c696369747564696e206c616f72656574206d6f006c65737469652e20457469616d20616320766573746962756c756d20717561006d2c20696420657569736d6f6420697073756d2e205574206174206772617600696461206c6f72656d2e2053757370656e646973736520696e74657264756d0020656c656966656e64206c65637475732c2065752073656d7065722070757200757320766f6c757470617420612e0a0a55742076656c20617567756520756c007472696365732c2074696e636964756e74206d6173736120612c20736167690074746973206e69736c2e2050726f696e206567657420616e746520616c69710075616d2c206f726e6172652061756775652070656c6c656e7465737175652c0020646170696275732070757275732e20496e206574206d657475732061726300752e2050656c6c656e74657371756520616c697175616d20626c616e6469740020617263752071756973207472697374697175652e204d617572697320746f0072746f72206d617373612c206d6178696d75732071756973207661726975730020612c20706f72747469746f7220636f6e73656374657475722073656d2e200050726f696e207665686963756c6120707572757320657420696163756c69730020636f6e73656374657475722e20557420736f6c6c696369747564696e206600696e6962757320657820696e20656c656d656e74756d2e204f7263692076610072697573206e61746f7175652070656e617469627573206574206d61676e690073206469732070617274757269656e74206d6f6e7465732c206e6173636574007572207269646963756c7573206d75732e205072616573656e74206e65632000696d70657264696574206d61676e612e205574206d616c65737561646120690064207075727573206e656320766573746962756c756d2e2053757370656e64006973736520616363756d73616e2065726174206c656f2c20696e20666175630069627573206469616d20696163756c69732073697420616d65742e20447569007320736f6c6c696369747564696e206c6563747573207175697320656e696d00206c6163696e696120657569736d6f642076656c2075742061756775652e0a000a416c697175616d20756c7472696369657320636f6e76616c6c6973207465006c6c75732c206964206567657374617320656c69742073616769747469732000696e2e204372617320706f72747469746f72206e6973692065676574207361007069656e20636f6e76616c6c697320706f73756572652e204d6175726973200067726176696461206e65717565207669746165206c696265726f20637572730075732c20696420636f6e736571756174206e657175652072686f6e6375732e0020496e746567657220616c69717565742065676574206e696268206163207000686172657472612e204e756c6c616d20696163756c6973206e69736c206665006c69732c207175697320696d70657264696574206e756c6c6120756c74726900636573207365642e205175697371756520747269737469717565206c61637500732061742072686f6e63757320706f7274612e204e616d20616320636f6e6400696d656e74756d2075726e612e20536564206e656320706f72747469746f7200206e6962682e205365642067726176696461206d61676e612069642070757200757320706f737565726520766573746962756c756d206e6f6e20736564206e006973692e20566573746962756c756d2061726375207475727069732c2069610063756c69732076656c20636f6e7365717561742069642c206c6f626f72746900732073697420616d65742065782e205072616573656e742071756973207465006d706f722061756775652e204e756c6c61206567657420656e696d20656c65006966656e642c2074696e636964756e74206c696265726f2073697420616d6500742c206d6174746973206e6973692e20446f6e65632064756920657261742c002070756c76696e61722076656c207075727573206e65632c20666163696c69007369732066696e69627573206c6f72656d2e204e756c6c616d20756c7472690063657320707572757320766573746962756c756d20636f6d6d6f646f20616c00697175616d2e0a0a4f72636920766172697573206e61746f7175652070656e00617469627573206574206d61676e6973206469732070617274757269656e7400206d6f6e7465732c206e61736365747572207269646963756c7573206d7573002e204e756e6320626c616e646974206e756c6c612072697375732c2076656c0020736f64616c6573206c6f72656d206f726e6172652061632e20496e746567006572206e6f6e20646f6c6f7220626962656e64756d2c206f726e6172652074006f72746f7220656765742c20756c7472696369657320697073756d2e204165006e65616e2066696e69627573206469676e697373696d206f726e6172652e20004d61757269732074656d7075732c206572617420617420626962656e64756d0020617563746f722c206c656f20656c6974206c6163696e6961206f64696f2c002061742074656d7075732061726375206475692071756973206573742e20500072616573656e74206672696e67696c6c61206c6f72656d206d616c6573756100646120706f72747469746f7220696d706572646965742e20496e7465726475006d206574206d616c6573756164612066616d657320616320616e74652069700073756d207072696d697320696e2066617563696275732e204d6f7262692076006974616520666163696c69736973206c6f72656d2c20766974616520636f6e0073657175617420697073756d2e20457469616d20696420656c656d656e7475006d20657261742e204e616d20646f6c6f72206c656f2c2074656d706f722061006320657820717569732c206469676e697373696d206665726d656e74756d2000616e74652e0a0a446f6e65632061206e756c6c612072697375732e204d6175007269732066617563696275732c206e756e63206163206d6178696d7573207600656e656e617469732c206d61676e612076656c6974207072657469756d2061006e74652c206e6f6e206665726d656e74756d20656c6974206d617572697320006e6f6e206e756e632e20446f6e65632068656e6472657269742075726e61200061742074656c6c757320636f6e76616c6c69732c2061632066617563696275007320656c6974206c6f626f727469732e204e756c6c616d20626962656e6475006d20656c656966656e64206d61676e612073697420616d657420696e7465720064756d2e20496e20696e20736f64616c657320746f72746f722c206e6f6e20006c6f626f72746973206d692e205072616573656e742076656c2073656d206100206f64696f2076656e656e6174697320666163696c697369732e2056657374006962756c756d206163206d6f6c657374696520646f6c6f722c206174206669006e69627573206e6973692e0a0a566573746962756c756d20616e74652069700073756d207072696d697320696e206661756369627573206f726369206c75630074757320657420756c74726963657320706f737565726520637562696c6961002063757261653b2046757363652061632074656d70757320617263752c2076006974616520696163756c6973206e657175652e2055742061206e69736c207500742076656c697420636f6e73657175617420636f6e64696d656e74756d207600697461652065676574206e6962682e2044756973206574206d61676e612061006c69717565742c20636f6e76616c6c697320656c69742069642c20756c6c61006d636f72706572206d692e20566976616d757320696d70657264696574206600656c6973207175697320636f6e7365717561742072757472756d2e204d6f7200626920757420617263752073697420616d657420617567756520636f6e677500652074696e636964756e742e2053757370656e64697373652061206d617474006973206f7263692e204e756e6320656765737461732c2076656c69742073650064206469676e697373696d2073656d7065722c20656c6974206d61757269730020626962656e64756d206e657175652c206567657420616c697175616d206e00697369206e65717565206120616e74652e204e616d2066657567696174206e006571756520646f6c6f722e20566573746962756c756d20616e74652069707300756d207072696d697320696e206661756369627573206f726369206c75637400757320657420756c74726963657320706f737565726520637562696c6961200063757261653b20557420696e20636f6e736563746574757220646f6c6f722e002051756973717565206e6f6e20636f6e677565206e657175652e0a0a4e756c006c61207363656c657269737175652c206e65717565206567657420636f6e7600616c6c697320626962656e64756d2c206c6f72656d206d65747573207068610072657472612070757275732c2073656420626c616e6469742065726174206100726375206575206e6973692e204d617572697320706c616365726174206d6100737361206575206e6571756520766f6c75747061742c2073697420616d6574002076697665727261207269737573207363656c657269737175652e20496e200076656c20766573746962756c756d206e756c6c612e20416c697175616d207200686f6e6375732061632061756775652076656c2076756c7075746174652e20004d6175726973207669746165206469616d20696d706572646965742c20766f006c7574706174206e6962682065752c206661756369627573206d657475732e0020457469616d2070656c6c656e74657371756520747572706973206964206e0069626820636f6e73657175617420736f6c6c696369747564696e2e204e756e00632065676574206a7573746f2070756c76696e6172206d65747573207275740072756d206c75637475732073697420616d65742061206d657475732e204e75006c6c6120666163696c6973692e2053757370656e646973736520657520617500677565206c65637475732e2053757370656e646973736520736f6c6c69636900747564696e20657569736d6f64207661726975732e2050686173656c6c75730020616e746520657261742c20666175636962757320696420746f72746f7220006e65632c207363656c6572697371756520766172697573206e756e632e0a0a00457469616d206672696e67696c6c6120766f6c7574706174206d692c20706f00737565726520766573746962756c756d206c6967756c6120756c7472696365007320696e2e20446f6e6563207665686963756c612074757270697320717569007320756c74726963696573207661726975732e20446f6e65632073656d7065007220616e746520657261742c20616320666575676961742074656c6c75732000626962656e64756d2069642e20446f6e656320697073756d206e69736c2c200070756c76696e6172206e6563207175616d20696e2c20736f6c6c69636974750064696e20696e74657264756d20656e696d2e20566976616d7573206c616f72006565742074656c6c75732065676574206f72636920636f6e64696d656e7475006d207363656c657269737175652e2050726f696e20657420666175636962750073206f64696f2c206163206566666963697475722061756775652e2055742000696e74657264756d20747269737469717565206475692074656d7075732070006f7274612e20416c697175616d206672696e67696c6c6120707572757320760069746165206e6962682074656d706f7220626962656e64756d2e205175697300717565206574207361676974746973206f7263692c2061742074656d706f72002076656c69742e205365642066696e696275732073617069656e20657420740075727069732073656d7065722c206e6f6e206d6f6c6573746965206e756e6300206c75637475732e20536564206a7573746f206e6973692c20736f6c6c69630069747564696e20696e20697073756d20696e2c206665726d656e74756d20700072657469756d206f64696f2e204e756c6c6120757420766f6c7574706174200073656d2e0a0a436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e204e756c6c61206e6f6e206f726369206d692e2056657374696275006c756d207361676974746973206f72636920657520636f6e64696d656e7475006d20636f6e6775652e20446f6e656320736564206d61676e612070656c6c65006e7465737175652c20706c61636572617420697073756d207365642c20616c00697175616d2073656d2e2043757261626974757220696d706572646965742000617567756520657420656c697420706c6163657261742c2061742070756c7600696e617220617263752066617563696275732e20566573746962756c756d2000666575676961742c20697073756d20617420756c747269636573206d6f6c6500737469652c206e65717565206f64696f20656c656966656e642076656c6974002c2061742065676573746173206f72636920647569206574206573742e2049006e7465676572207574206a7573746f206c65637475732e204e756c6c616d20006665756769617420696e74657264756d206f726369206e656320617563746f00722e0a0a446f6e656320616c697175657420616363756d73616e206d61737300612c20766974616520666163696c697369732072697375732e20467573636500207072657469756d206e756e63206e6f6e20636f6e73657175617420656c65006d656e74756d2e204d616563656e617320636f6e64696d656e74756d20736300656c6572697371756520706f72747469746f722e204f7263692076617269750073206e61746f7175652070656e617469627573206574206d61676e697320640069732070617274757269656e74206d6f6e7465732c206e6173636574757220007269646963756c7573206d75732e204d6175726973206e6563207075727573002066617563696275732c2074656d707573206469616d206e65632c20756c74007269636573206f7263692e2041656e65616e2066617563696275732c207361007069656e20757420706f72747469746f7220616c69717565742c206e756e6300206572617420636f6e6775652061756775652c2071756973206469676e69730073696d2073656d20697073756d206574206469616d2e2053757370656e646900737365206772617669646120657569736d6f6420697073756d2c206120696d0070657264696574206e756c6c6120636f6e7365717561742061632e2050726f00696e207175697320636f6e73657175617420697073756d2c20696e20737573006369706974206e657175652e204e616d207669746165207669766572726120006c656f2e2041656e65616e20756c74726963657320706c6163657261742062006c616e6469742e20496e7465676572206e6571756520617263752c2066616300696c697369732073697420616d6574206f726369207365642c2076657374690062756c756d206672696e67696c6c6120746f72746f722e2050656c6c656e740065737175652066657567696174206575206c6967756c612065676574206c6f00626f727469732e20536564206575206d6f6c6c69732065782c20696e206461007069627573206c616375732e20467573636520616c697175616d2c206e657100756520636f6e73657175617420666163696c6973697320706c616365726174002c20697073756d206f72636920696163756c6973206a7573746f2c20696d700065726469657420706f7375657265206d61676e61206f64696f206e6563207500726e612e20437572616269747572206d6f6c6c69732c20657820696e2066610063696c6973697320766f6c75747061742c206e697369206a7573746f20656c00656966656e64206c696265726f2c20612070656c6c656e7465737175652065006e696d206d61676e612071756973206e6962682e204d617572697320756c7400726963696573206469616d2065676574206c616375732070756c76696e6172002c20657420636f6e64696d656e74756d206e6962682073656d7065722e0a0a00566976616d757320746f72746f72207175616d2c20616c697175657420696e00206e756e632075742c206f726e61726520756c74726963696573206e65717500652e2050656c6c656e74657371756520637572737573206163206a7573746f0020766974616520756c747269636965732e20446f6e65632065676574206e6900736c2071756973206f726369206772617669646120766f6c75747061742065007420696420656e696d2e2053656420706f72747469746f72206c616375732000717569732073656d20756c74726963657320666163696c6973697320757420006567657420656e696d2e20416c697175616d20696163756c6973206572617400206e6563206d617373612072686f6e6375732068656e6472657269742e2041006c697175616d206f726e6172652070686172657472612075726e612065752000617563746f722e20566976616d7573206964206469616d206120617567756500206567657374617320636f6e6775652e205072616573656e742068656e647200657269742073617069656e20696e206f72636920636f6e6775652c20656765007420636f6e6775652073617069656e20696d706572646965742e205365642000617563746f7220657374206163206c7563747573206c6163696e69612e2049006e7465676572206e65717565206e657175652c20656c656966656e64207665006c206c656f2069642c20626962656e64756d20756c6c616d636f72706572200073656d2e20566573746962756c756d2076656c20666163696c6973697320650073742e20536564207175697320766f6c7574706174207475727069732e0a0a004e616d206d6174746973206d6f6c6573746965206d61676e612c2076697461006520636f6e736571756174206d657475732e204e616d206d6178696d75732000657569736d6f6420656c6974206e6563206f726e6172652e204e756c6c6120006d6f6c6c697320696420707572757320717569732074656d706f722e205065006c6c656e7465737175652072686f6e63757320656765737461732066657567006961742e204475697320756c74726963657320656c6974207574206c6f7265006d2070756c76696e617220736f6c6c696369747564696e2e2043757261626900747572206672696e67696c6c612076756c7075746174652076656e656e61740069732e204d61757269732074656d706f7220617563746f722075726e612e0a000a496e206861632068616269746173736520706c617465612064696374756d0073742e204d616563656e617320617563746f72206d61747469732062696265006e64756d2e20566573746962756c756d2074656d7075732072686f6e63757300206c65637475732c2069642072686f6e637573206e69736c206d6178696d7500732061742e204475697320766172697573206672696e67696c6c6120617567007565206e656320666163696c697369732e204e756c6c6120696163756c69730020612070757275732065676574206665726d656e74756d2e20457469616d20006e6563207361676974746973206f7263692e205072616573656e74206d6174007469732066656c69732072697375732e204e616d206567657420656c656d65006e74756d206c6967756c612e20436c61737320617074656e74207461636974006920736f63696f737175206164206c69746f726120746f727175656e74207000657220636f6e75626961206e6f737472612c2070657220696e636570746f73002068696d656e61656f732e2050686173656c6c75732065676573746173207000757275732070656c6c656e7465737175652c2070656c6c656e746573717565002076656c6974206e6f6e2c206772617669646120656c69742e0a0a53656420006e6f6e2074656d7075732070757275732e2053757370656e6469737365207000756c76696e6172206d65747573206e657175652c206e6f6e207472697374690071756520697073756d20706f727461206e6f6e2e205574206567657420747500727069732074696e636964756e742c2074656d706f722073656d2071756973002c2076656e656e61746973206d61676e612e20566573746962756c756d20690064206d6178696d75732072697375732e204475697320616c69717565742070006f73756572652066656c697320696e20706c6163657261742e2051756973710075652076656c6974206f64696f2c20656666696369747572206174206d617300736120612c20747269737469717565206f726e61726520646f6c6f722e204e00756c6c616d206567657374617320706c61636572617420647569207574207300656d7065722e20416c697175616d20717569732073617069656e206d65747500732e204475697320656c656d656e74756d2c2065726174206e656320626c61006e6469742072686f6e6375732c2065726f7320656e696d207363656c65726900737175652061756775652c206e656320766976657272612065726f73206c65006f206575206c656f2e204d6f7262692073656420666163696c69736973206a007573746f2e20566976616d75732073697420616d6574206d61676e61206865006e647265726974206c656f206772617669646120617563746f722e0a0a4e75006e632063757273757320616c6971756574206f64696f2e204e756e632069610063756c69732065742074757270697320617420756c747269636965732e204e00616d2076756c70757461746520656e696d2065676574207075727573207465006d707573206f726e6172652e204e756c6c616d20636f6e736571756174206d006f6c6573746965206469616d2c20766974616520756c747269636573206e6900626820706f72747469746f722065742e20566573746962756c756d20766f6c007574706174207574206c6f72656d20656765742070656c6c656e746573717500652e204e616d2064617069627573206c696265726f206d692e2050656c6c65006e7465737175652074696e636964756e74206e696268206e657175652c20610020696e74657264756d206c6f72656d20636f6e6775652076656e656e61746900732e2050686173656c6c757320696e2073656d206574206d617373612066610075636962757320616363756d73616e2074696e636964756e742076656c206e006962682e0a0a4e756c6c61206d616c657375616461206e69736c206e69736c002c206575206d6f6c657374696520697073756d206d6f6c6c69732065676574002e20416c697175616d2076756c70757461746520707572757320736564206c006967756c6120736167697474697320616c69717565742e20496e20616c69710075616d206469616d20677261766964612072757472756d2070756c76696e6100722e20496e206d616c6573756164612075726e612065676574206f726e6172006520656765737461732e20566573746962756c756d20766974616520736365006c65726973717565206573742c206567657420766573746962756c756d206f007263692e2050656c6c656e746573717565206672696e67696c6c61206d616c0065737561646120706f73756572652e204e756c6c6120696e74657264756d20006c656f207669746165207072657469756d20706f73756572652e204e616d20006d6f6c6c69732065726f73207365642074656c6c7573206d6174746973207300616769747469732e0a0a53757370656e646973736520636f6e64696d656e7400756d206c6563747573206574206c6f72656d20657569736d6f6420637572730075732e204d6175726973206172637520617263752c2072757472756d20636f006e73657175617420707572757320696e2c206567657374617320696163756c006973206c696265726f2e204d6f726269207068617265747261206d6178696d007573206d617373612c206567657420626c616e64697420747572706973207000756c76696e61722065742e204d6175726973206e656320646f6c6f72207665006e656e617469732c2070656c6c656e746573717565206d61676e612069642c0020617563746f722075726e612e204d616563656e617320766976657272612000706f72747469746f72206e6973692c2076656c20756c74726963696573206500726174206375727375732061742e20467573636520636f6e6775652074656c006c75732076697461652073617069656e20747269737469717565206665726d00656e74756d2e20446f6e656320696d706572646965742073656d206e6f6e20006d617572697320756c7472696365732076656e656e617469732e20437261730020756c747269636573206c6f72656d206c656f2e2053656420736564207665006e656e61746973206e657175652c2076697461652065676573746173206665006c69732e205072616573656e7420617420616e746520706f7274612c20636f006e64696d656e74756d206c65637475732076697461652c20706f7274746974006f72206e657175652e204e616d2074656c6c7573206c616375732c20747269007374697175652074656d706f72206e756c6c61206e65632c20706c6163657200617420626962656e64756d2061756775652e204e756c6c616d20657569736d006f642076697665727261206f7263692c206575206772617669646120656e69006d20636f6e64696d656e74756d20626962656e64756d2e2053757370656e6400697373652065676574206c6f72656d20766974616520697073756d20706c610063657261742070656c6c656e74657371756520696420636f6d6d6f646f206f0064696f2e204675736365206d61747469732075726e61207574206475692063006f6d6d6f646f2c206e656320636f6d6d6f646f20647569207068617265747200612e0a0a496e206861632068616269746173736520706c61746561206469630074756d73742e204e616d206a7573746f206e6962682c207665686963756c61002061206c6967756c612065752c206d617474697320656c656966656e64206c006967756c612e205175697371756520656765742074757270697320612061750067756520747269737469717565206665726d656e74756d2e204e756c6c616d00207669746165206c61637573206d6f6c65737469652c207363656c65726973007175652061756775652061742c20656c656966656e64206e69736c2e204e75006c6c61206d61676e612065726f732c20636f6e76616c6c697320736564206f0064696f207363656c657269737175652c206c6f626f7274697320636f6e7661006c6c6973206e6962682e204e616d206174207361676974746973206175677500652c20657520766172697573206c6967756c612e204e756c6c616d20706f730075657265206d6178696d7573206e697369206e656320616c69717565742e2000457469616d207363656c657269737175652071756973206469616d20656765007420656765737461732e205072616573656e7420756c7472696369657320730063656c65726973717565206d69206e656320626962656e64756d2e2056657300746962756c756d20616c697175616d2074656c6c75732076656c206a757374006f206c616f726565742c207574207072657469756d2073656d206f726e617200652e204e616d20616e7465206e6962682c2066696e69627573206e6563207300617069656e20612c2076656e656e6174697320636f6e677565207269737573002e20496e2076656c206e65717565206120656e696d20636f6e7365637465740075722070656c6c656e7465737175652e20566976616d757320636f6e76616c006c697320657374207574206e756c6c6120736167697474697320706f7375650072652e2050656c6c656e74657371756520626962656e64756d20736f64616c00657320697073756d2065742068656e6472657269742e0a0a536564207269730075732066656c69732c20736f6c6c696369747564696e206575206d6f6c6573007469652065742c20657569736d6f6420656765742065782e20457469616d200065676574206e756c6c61206e6962682e2043726173206772617669646120610020746f72746f722076697665727261207661726975732e2050686173656c6c0075732066696e696275732c2073617069656e20657420616c697175616d2075006c7472696365732c206d61757269732065726f7320706f72747469746f72200065726f732c20616320636f6e677565206c656f206573742065676574206d6100757269732e20536564206e756e632076656c69742c2065676573746173207300656420656c69742065752c20657569736d6f64206d6178696d7573207361700069656e2e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b2000566573746962756c756d206c656f206a7573746f2c20636f6d6d6f646f2071007569732076756c7075746174652061742c20736f6c6c696369747564696e200073697420616d6574206573742e205365642070756c76696e61722c2076656c00697420736564206469676e697373696d20766976657272612c206d617373610020646f6c6f722073656d706572206c6f72656d2c206e6f6e206d6f6c657374006965206d6175726973206f64696f2065742070757275732e204d616563656e006173206c6f626f7274697320696e74657264756d206e756e63207574206d6f006c65737469652e20536564206d6f6c6c697320636f6d6d6f646f2076656e65006e617469732e20496e74657264756d206574206d616c657375616461206661006d657320616320616e746520697073756d207072696d697320696e206661750063696275732e2055742073656420617263752076656c69742e204d617572690073206175677565206e756c6c612c206f726e617265206e656320616c697175006574207365642c20636f6d6d6f646f20696e206475692e0a0a496e74656765007220736f6c6c696369747564696e2075726e612065676574206e756c6c61200070686172657472612c206e6f6e20766172697573206e657175652070756c7600696e61722e204e756c6c61207574206c656374757320736564206d61757269007320756c6c616d636f7270657220706f7274612e2051756973717565206e650063206469616d207472697374697175652c2064617069627573206c65637475007320612c20616c697175616d206e6962682e2043757261626974757220616c006971756574206d6f6c6c69732073617069656e207574206d6f6c6573746965002e2050686173656c6c7573207361676974746973206e69736c20766974616500206d6178696d75732066617563696275732e20446f6e6563206d6178696d750073206120647569206575207661726975732e20457469616d2072686f6e6375007320746f72746f722076656c206e756e63206665726d656e74756d2070756c0076696e617220736564206e656320657261742e20416c697175616d20757420006c656f206e6f6e206e69736920646170696275732076756c7075746174652e0020496e746567657220616363756d73616e20636f6e6775652072686f6e637500732e2055742076756c707574617465206f64696f20656c69742c20707265740069756d2073656d7065722065726174207375736369706974206e65632e205300757370656e6469737365206d6174746973207475727069732076656c206572006f732070756c76696e617220756c7472696365732072757472756d207369740020616d657420616e74652e204475697320656c656966656e64206d6178696d00757320617567756520696e207363656c657269737175652e20446f6e656320006e6f6e20746f72746f722073697420616d657420657261742066617563696200757320616c69717565742e205365642074656d70757320747269737469717500652072697375732c207072657469756d20747269737469717565206475692000636f6e76616c6c69732065752e0a0a50686173656c6c757320616c69717561006d20747572706973206174206c656f20706f73756572652c207365642061630063756d73616e206e69736c2074656d7075732e204d616563656e6173207669007461652073617069656e206a7573746f2e2050686173656c6c75732074656d00707573206672696e67696c6c612070656c6c656e7465737175652e2050656c006c656e74657371756520617420646f6c6f72206964206d6175726973206c61006f7265657420637572737573206e6f6e2071756973206d657475732e204475006973206163206d69206e6f6e2074656c6c7573206461706962757320706f7200747469746f72206e6f6e206574206c6967756c612e20457469616d20736f6400616c65732069642074757270697320696e20756c747269636965732e205365006420616e7465206c616375732c2068656e64726572697420757420706f7274007469746f722075742c206665726d656e74756d207669746165206c656f2e0a000a4372617320706861726574726120616e746520616e74652c2076756c7075007461746520666575676961742072697375732066617563696275732065676500742e2050726f696e2073697420616d65742074656c6c75732072686f6e637500732c207665686963756c61206469616d206e6f6e2c206567657374617320650073742e2043726173207669746165206c696265726f206e657175652e20446f006e656320697073756d2066656c69732c20696e74657264756d2076656c20650067657374617320656765742c20616c6971756574206e65632065726f732e2000446f6e6563206e697369206d617373612c20766573746962756c756d207665006c20656e696d2065742c206461706962757320636f6e67756520697073756d002e205072616573656e7420647569206573742c20636f6e67756520766974610065206d6f6c657374696520717569732c206d616c657375616461206567657400206469616d2e20457469616d206e6f6e2076697665727261206f7263692e2000566573746962756c756d206d6f6c6c69732065726f73206174206c65637475007320706f72747469746f7220756c6c616d636f727065722e20496e2066657500676961742066656c6973206e656320657820756c7472696365732c2073656400206665726d656e74756d206a7573746f2066696e696275732e204475697320006e6f6e20706f7375657265206e657175652c20657420636f6e73657175617400206f7263692e20416c697175616d206575206a7573746f20756c747269636500732c2076656e656e6174697320746f72746f722061632c2072757472756d2000656e696d2e0a0a496e7465676572206469676e697373696d207175616d20650075206d61757269732066696e6962757320666163696c697369732e204d617500726973206c6163696e6961206a7573746f206c65637475732c2076656c206c007563747573207175616d20766f6c757470617420766f6c75747061742e20550074206e6f6e206f726369206e756c6c612e2041656e65616e20617563746f72002073617069656e206120726973757320656c656d656e74756d206d616c657300756164612e204e616d2065676574206c6563747573206c696265726f2e2041006c697175616d20697073756d206d617373612c20736f6c6c69636974756469006e20616320696163756c697320612c206d6178696d757320657520747572700069732e204d616563656e61732076656c206e756e632076656c2065726f732000766f6c7574706174207472697374697175652076697461652061742065782e002043757261626974757220657420656e696d206d6f6c6c69732c20707265740069756d20646f6c6f7220717569732c2068656e647265726974206c61637573002e20496e2074656d70757320657569736d6f6420646f6c6f722c206964206400696374756d206d657475732072757472756d20717569732e0a0a43757261620069747572207072657469756d206c6f626f72746973207363656c65726973710075652e204d61757269732076656c206d69206120697073756d20766568696300756c61207363656c657269737175652e204e756c6c6120666163696c697369002e20446f6e656320636f6e736571756174206f64696f206120657261742075006c6c616d636f7270657220666163696c697369732e2044756973206d617373006120656e696d2c20756c74726963696573206e6f6e2075726e612071756973002c20657569736d6f64207072657469756d20746f72746f722e20457469616d002068656e647265726974206c656374757320766974616520656c656d656e7400756d2076756c7075746174652e20496e74657264756d206574206d616c657300756164612066616d657320616320616e746520697073756d207072696d69730020696e2066617563696275732e20536564206f64696f206d61676e612c2063006f6e73656374657475722073697420616d657420706f727461207669746165002c20766976657272612061206d61676e612e20437261732065752069707375006d20656c656966656e64206f64696f20766976657272612072757472756d20006574206e6f6e206c6f72656d2e20517569737175652071756973206c656f2000757420726973757320756c6c616d636f72706572207375736369706974207600656c206e6563206469616d2e20467573636520646170696275732065726f7300206e6f6e206e69736c2066617563696275732c20657420656666696369747500722073656d20706c6163657261742e20566573746962756c756d20616e74650020697073756d207072696d697320696e206661756369627573206f72636920006c756374757320657420756c74726963657320706f73756572652063756269006c69612063757261653b20416c697175616d2069642073656d206163206c6f0072656d20706f72747469746f72206c616f7265657420616320717569732065006c69742e0a0a446f6e65632076656c20646f6c6f72206d6178696d75732c20006d6f6c6c6973206d61676e612073697420616d65742c207068617265747261002076656c69742e2041656e65616e2070656c6c656e74657371756520737573006369706974206c6563747573206174207665686963756c612e20446f6e656300206e6563206661756369627573206469616d2e204e616d20656765742064750069206575206d6175726973206461706962757320616c697175616d206469630074756d206575206d61757269732e20446f6e6563206c6563747573206d65740075732c206d6f6c657374696520636f6e73657175617420756c747269636965007320656765742c206c616f72656574206e6563206475692e20446f6e656320006575206c656374757320717569732076656c697420656c656d656e74756d2000657569736d6f642e204d616563656e617320626962656e64756d206c61637500732073697420616d657420736f6c6c696369747564696e206c6163696e6961002e0a0a5175697371756520737573636970697420706f73756572652070757200757320636f6e64696d656e74756d20706f7274612e20457469616d2068656e00647265726974207574206c696265726f20696e2072757472756d2e204e756c006c616d20756c74726963696573206c696265726f20657420647569206c6f62006f72746973206672696e67696c6c612e20496e746567657220757420656c690074206d61676e612e2051756973717565207665686963756c61206d6f6c6c690073206c656f2c206964207665686963756c61206d61676e6120616c6971756500742075742e20457469616d206e6f6e20706f72747469746f72206e69736c2c002073697420616d65742076756c707574617465206469616d2e2050726f696e00206e6571756520657261742c20737573636970697420656765742066656c69007320696e2c20677261766964612066696e69627573207175616d2e205068610073656c6c7573206d617474697320746f72746f722072697375732c2075742000656c656d656e74756d206d6574757320737573636970697420626962656e6400756d2e0a0a4e756c6c616d207175616d2065782c20706f72746120696e2070007572757320696e2c206d6f6c65737469652074726973746971756520646f6c006f722e20457469616d207472697374697175652072697375732076656c206c0061637573206672696e67696c6c612c206174206c75637475732075726e612000616c697175616d2e20416c697175616d2065752066656c69732066657567690061742c20696163756c6973206c6f72656d2073697420616d65742c2070756c0076696e617220697073756d2e204e616d2076697461652074696e636964756e0074206d61676e612e204d617572697320756c6c616d636f727065722c206d650074757320636f6e64696d656e74756d20736f64616c657320756c6c616d636f00727065722c2073656d2074656c6c757320636f6e7365637465747572206c6500637475732c2061742074656d7075732073617069656e206d6175726973207600656e656e61746973206d61757269732e2041656e65616e2076657374696275006c756d20646f6c6f722065782c2076656c2076697665727261206e69626820006d6178696d7573207365642e20457469616d20636f6d6d6f646f206d616c65007375616461206f7263692e204e616d20616363756d73616e206469616d206e006563206e756e6320766f6c7574706174206566666963697475722e20467573006365207072657469756d20697073756d206c656f2c207175697320696e7465007264756d206172637520736f6c6c696369747564696e20656765742e205065006c6c656e746573717565206d617474697320617420697073756d206567657400207072657469756d2e0a0a536564206c656f206d692c207068617265747261002073697420616d657420696d706572646965742065752c2074696e63696475006e7420657420746f72746f722e2055742071756973207072657469756d206d0061676e612c20657520616c697175657420697073756d2e2050726f696e2061006320756c74726963657320697073756d2c2076656c206d6f6c6573746965200073617069656e2e20457469616d20736f64616c6573206e6571756520616320006f726e6172652070686172657472612e204d6f7262692071756973206175670075652073697420616d65742075726e6120706c6163657261742070756c7669006e61722e204375726162697475722076617269757320666163696c69736973002072697375732c206964207375736369706974207175616d20696d7065726400696574206d616c6573756164612e20416c697175616d20646170696275732c0020697073756d2076656c20636f6e64696d656e74756d206d61747469732c20006c6967756c6120657374206375727375732074656c6c75732c20657520696e0074657264756d20616e7465206c656f206e6f6e20616e74652e204e756c6c6100207175616d206e6973692c20706f737565726520657420616363756d73616e0020696e74657264756d2c2076756c707574617465206e6f6e2070757275732e00204e756e632076617269757320696d706572646965742066656c6973206e65006320696e74657264756d2e2050726f696e2076656e656e617469732061206c006967756c6120657420636f6e73656374657475722e2050686173656c6c757300206e65632065726f73206d6f6c6c69732c20756c7472696369657320656c690074206e6f6e2c206c6163696e6961206d692e2053757370656e646973736520006c6967756c6120617263752c206665726d656e74756d20617420617563746f007220717569732c20656c656966656e64207669746165206e69736c2e0a0a53006564206665726d656e74756d20707572757320696e206f64696f2070756c7600696e61722c20766573746962756c756d20656c656966656e64206573742063006f6d6d6f646f2e2046757363652076617269757320736564207475727069730020696e20666575676961742e20557420616320666163696c69736973206f6400696f2e20557420766f6c757470617420697073756d20646f6c6f722c20696e0020657569736d6f6420646f6c6f7220696e74657264756d2069642e20536564002073617069656e206573742c20696d70657264696574206575206f726e6172006520656765742c2074656d70757320656765742066656c69732e205068617300656c6c75732070656c6c656e7465737175652c206e756c6c61207369742061006d65742066696e6962757320677261766964612c207175616d206e69736c200064696374756d206a7573746f2c2073697420616d6574206672696e67696c6c0061206469616d206c616375732065676574206573742e20566573746962756c00756d20626c616e646974206d617572697320696e20616e7465206d6178696d00757320766f6c75747061742e2050656c6c656e74657371756520686162697400616e74206d6f726269207472697374697175652073656e656374757320657400206e65747573206574206d616c6573756164612066616d6573206163207475007270697320656765737461732e20566573746962756c756d2066656c6973200072697375732c2073616769747469732076656c20636f6d6d6f646f20736564002c20706f72746120617563746f722073656d2e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d616563656e6173206e65006320706f72747469746f722066656c69732e20446f6e656320656c656d656e0074756d2073656d206e756c6c612e0a0a416c697175616d20656c656d656e7400756d206575206c6f72656d206964206c75637475732e204e756e6320617420006e696268206573742e205072616573656e7420666175636962757320766172006975732065726174206e656320706f73756572652e204e756c6c616d20717500616d206c616375732c20766f6c7574706174206e6563206c616f7265657420006e6f6e2c20706f7375657265206163206c6967756c612e2050726f696e2071007569732065676573746173206e69736c2c20736564206c7563747573206665006c69732e204e756c6c61207072657469756d207175616d206e65632066696e006962757320656c656966656e642e20457469616d206d617572697320656e69006d2c2072686f6e6375732076656c206d616c657375616461207365642c2063006f6e64696d656e74756d2076697665727261206c696265726f2e20416c69710075616d207175616d2073656d2c2072757472756d2061742073617069656e20006e65632c206c616f7265657420666163696c69736973207475727069732e20004e616d206e65632074656d707573206573742e204d616563656e617320766100726975732c206e69626820617420636f6e73656374657475722074656d707500732c206e756e63206c6f72656d206672696e67696c6c6120617263752c2069006d706572646965742072757472756d206e69736c206475692061206175677500652e205072616573656e7420706c6163657261742073617069656e2073656400206d69206d6f6c6c697320666163696c697369732061206e6563207075727500732e205072616573656e7420736f6c6c696369747564696e2066656c697320006d617373612c2076656c206d6174746973206c656f2068656e647265726974002061632e2053757370656e646973736520657569736d6f642064696374756d002074696e636964756e742e0a0a416c697175616d2064617069627573206c6f0072656d20657520736f64616c65732066617563696275732e204e756c6c612000747269737469717565206f64696f2065742072697375732064696374756d2c0020756c74726963696573206c6f626f72746973206c6967756c61207361676900747469732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e204e756e632074656d7075732076656c206572617420766974610065206c6163696e69612e204e756c6c6120696e20656765737461732065726f00732e204e756c6c616d2076656c20646f6c6f722076656c2076656c69742070006c6163657261742076756c70757461746520696e20736564206c616375732e0020416c697175616d206c6f626f7274697320616e746520696e2074656c6c75007320696163756c69732c206120636f6d6d6f646f207175616d20616363756d0073616e2e2050726f696e2066657567696174206c6967756c61206964206e75006e632076756c70757461746520646170696275732e20457469616d20707265007469756d207669746165206475692073697420616d657420616c697175616d002e2041656e65616e206c6f626f727469732072757472756d206e6973692c2000612074656d7075732065726f7320666163696c697369732069642e204d617500726973206e6f6e2061726375206174206e6973692076697665727261206375007273757320657520616320646f6c6f722e0a0a4e756e6320696e206f64696f00206d692e204e616d206d617474697320736564206c6967756c61207369742000616d65742074656d706f722e20496e74656765722064696374756d207269730075732066617563696275732c2076656e656e6174697320616e74652065752c0020756c747269636573206d61757269732e20446f6e6563206e656320636f6e0064696d656e74756d2065782e2053656420666163696c69736973206f64696f00206475692c207669746165206672696e67696c6c61206d61757269732061750063746f72206e6f6e2e20496e74657264756d206574206d616c657375616461002066616d657320616320616e746520697073756d207072696d697320696e200066617563696275732e2053757370656e646973736520717569732074656c6c007573206c616f726565742c20756c7472696365732073656d206e65632c20730063656c6572697371756520656c69742e20536564207363656c65726973717500652065737420766f6c75747061742c20636f6e64696d656e74756d20616e74006520612c2076656e656e61746973206d617373612e204d6f726269206e65630020617563746f72206c65637475732c206163207072657469756d206e696268002e204675736365207363656c65726973717565206d61737361206e6f6e206300757273757320706f7274612e20566573746962756c756d206d65747573207000757275732c20636f6e736571756174206964206672696e67696c6c6120612c002074656d707573207068617265747261206c65637475732e2056657374696200756c756d20736f64616c6573206c6f626f7274697320756c7472696365732e000a0a4e616d2073697420616d657420626c616e646974206573742e204675730063652073697420616d65742074696e636964756e7420646f6c6f722e20446f006e65632076656c206e697369206c616375732e204d617572697320706f7375006572652075726e6120616320656c656966656e6420616c69717565742e205300757370656e6469737365206661756369627573206665726d656e74756d206c00696265726f2c20616320617563746f72206d617373612068656e647265726900742074656d706f722e20467573636520706f72747469746f72206172637520006163206c656374757320626962656e64756d20636f6d6d6f646f2e205365640020617563746f72206575206f64696f2076656c20616c69717565742e20436c0061737320617074656e742074616369746920736f63696f737175206164206c0069746f726120746f727175656e742070657220636f6e75626961206e6f73740072612c2070657220696e636570746f732068696d656e61656f732e2056697600616d7573206574206c756374757320656e696d2e20566573746962756c756d002074656d706f7220616e746520736564206d61747469732064696374756d2e002051756973717565207068617265747261206172637520656765742075726e006120756c74726963657320617563746f722e204d6f72626920656c65696665006e6420636f6e736571756174206d692069642068656e6472657269742e20460075736365206d617474697320616e746520636f6e64696d656e74756d20706f00737565726520736f64616c65732e20437572616269747572206c6f626f72740069732075726e612073697420616d6574206d61747469732065676573746173002e204d6175726973206665756769617420656c69742074656c6c75732c2075006c7472696369657320696d70657264696574206469616d2074656d707573200076656c2e0a0a566573746962756c756d206672696e67696c6c6120747269730074697175652075726e6120657520706f7274612e2050726f696e206665756700696174206e69736c207475727069732c207574206c6f626f727469732072690073757320696d706572646965742061742e2050686173656c6c7573207369740020616d657420616c69717565742066656c69732c20766974616520706f737500657265206d692e20416c697175616d2073616769747469732076617269757300206e696268206e6563206f726e6172652e2050656c6c656e746573717565200074696e636964756e742076697461652065737420657520616c697175616d2e00204475697320696163756c697320757420617263752073656420656c656d65006e74756d2e20467573636520616363756d73616e2c20646f6c6f72206e6f6e002074656d70757320616363756d73616e2c20646f6c6f72207175616d2061750063746f72206e657175652c2071756973206f726e61726520616e7465206c65006f2069642070757275732e2050686173656c6c75732073656420656c65696600656e6420656c69742e204372617320657520706f737565726520616e74652e0020496e20616e7465206c6f72656d2c2070686172657472612073697420616d00657420766573746962756c756d207365642c2072686f6e637573206964206a007573746f2e2055742074656d707573206469676e697373696d20766568696300756c612e204d616563656e6173206d61757269732076656c69742c2065676500737461732073697420616d6574207661726975732076697461652c2066616300696c697369732073697420616d6574206c6967756c612e0a0a4d6175726973002067726176696461206c656f2073697420616d6574206f7263692076656e65006e617469732c207574206d6178696d75732073617069656e20636f6e736571007561742e204d6f726269206e6563206f7263692065782e20566976616d757300207665686963756c61206469676e697373696d20707572757320736564207400696e636964756e742e20467573636520657569736d6f64206e6f6e20656e69006d20657420636f6d6d6f646f2e205072616573656e7420766f6c757470617400206d6f6c6573746965206f726e6172652e20566976616d757320636f6e6469006d656e74756d2076656c697420656c656d656e74756d2c207072657469756d00207475727069732065752c20626c616e6469742072697375732e204675736300652070656c6c656e746573717565206d6178696d7573206e697369206163200073656d7065722e20416c697175616d20757420657569736d6f642076656c6900742c2073656420656c656d656e74756d206c6f72656d2e204d616563656e610073206964207269737573206e6f6e206d61737361206772617669646120636f006d6d6f646f2e204e756c6c616d20696e20707572757320696420656c69742000666163696c6973697320636f6e6775652e2041656e65616e20636f6e677565002076756c707574617465206c616f726565742e20416c697175616d20656765007420656c69742074656c6c75732e205175697371756520737573636970697400207175616d206163206d6173736120626962656e64756d2065676573746173002e20416c697175616d2071756973206578206e6f6e2076656c697420736365006c6572697371756520756c6c616d636f727065722069642065676574206d6100676e612e2041656e65616e20612073656d206e6f6e2065726174206c6f626f007274697320636f6e6775652e0a0a43726173206e6f6e20647569206f64696f002e205175697371756520766f6c7574706174207363656c657269737175652000697073756d206174207661726975732e20536564206f726e6172652073656d00207365642076656e656e6174697320636f6e7365717561742e204475697320006f726e6172652076656e656e61746973206d6f6c6c69732e2053656420657800206e657175652c2065666669636974757220626962656e64756d20706c616300657261742065742c20736f6c6c696369747564696e2076656c206f7263692e0020496e7465676572206e696268206e657175652c20666163696c6973697320006e6f6e206d61757269732076656c2c20636f6e73656374657475722074726900737469717565206e756c6c612e204e756e632073697420616d657420706861007265747261206c656f2e204e756c6c616d206c656f206f7263692c20696d70006572646965742073697420616d657420696e74657264756d20717569732c2000696163756c6973206575206e69736c2e20416c697175616d2073656420747200697374697175652073656d2c206e6563206c6f626f7274697320746f72746f00722e204d616563656e617320736f64616c6573207075727573206e65632061006c697175616d20706f72747469746f722e20447569732075742066656c69730020657261742e0a0a437261732061206d6173736120696d706572646965742c0020616363756d73616e2072697375732069642c207375736369706974206e75006e632e20446f6e65632073656d70657220656e696d206575206d61676e612000636f6e7365717561742074696e636964756e742e2053757370656e64697373006520636f6e736571756174206c6563747573207669746165206d657475732000616c6971756574206c616f726565742e20436c61737320617074656e74207400616369746920736f63696f737175206164206c69746f726120746f72717565006e742070657220636f6e75626961206e6f737472612c2070657220696e63650070746f732068696d656e61656f732e20446f6e656320696e74657264756d20006469616d206174206e69626820616363756d73616e2c20657420617563746f0072206d61737361206c6163696e69612e20467573636520696420657820766900746165207269737573206c616f7265657420706f72746120636f6e64696d65006e74756d206567657420656e696d2e2050686173656c6c7573206c656374750073206f64696f2c20666163696c6973697320612074656d707573207365642c0020736f64616c6573206575206475692e204e616d20696e206d616c65737561006461206f64696f2e205175697371756520706c61636572617420697073756d002076656e656e617469732072697375732074656d707573206661756369627500732e2050656c6c656e74657371756520656c656d656e74756d20646f6c6f72002071756973206672696e67696c6c612074656d7075732e20457469616d207400696e636964756e7420766172697573206c6f72656d20696e206f726e617265002e204e616d206120656c656d656e74756d206f7263692e2050686173656c6c0075732067726176696461206e69736c20657520656c697420756c74726963690065732c20657420626962656e64756d2074656c6c75732066696e696275732e000a0a4372617320626c616e6469742070756c76696e6172206d657475732c2000616320696e74657264756d2066656c6973206d6178696d757320626962656e0064756d2e2041656e65616e20626962656e64756d20696d706572646965742000636f6e64696d656e74756d2e204e616d206e6f6e206c61637573206c696775006c612e20517569737175652073656420766573746962756c756d207361706900656e2e20536564207665686963756c612074696e636964756e74206c656f200071756973206c6163696e69612e20536564206c61637573206c6f72656d2c2000756c747269636573206e6563206c6f72656d207365642c20706c6163657261007420766f6c7574706174206d657475732e205365642075742073656d207369007420616d657420746f72746f7220756c747269636573207375736369706974002076656c206174207475727069732e0a0a5574207669746165206175677565002073697420616d657420656c69742070756c76696e61722068656e64726572006974206e65632061206c6967756c612e20446f6e656320706f727461206e6900736920636f6d6d6f646f20616e7465207665686963756c612073656d706572002e2055742066696e696275732c20707572757320757420666175636962757300206d6f6c6c69732c2066656c6973206e65717565206d616c65737561646120006e6962682c2061632076656e656e61746973206e756c6c612076656c69742000612066656c69732e204d617572697320677261766964612c206c6967756c6100206964206c6163696e696120766976657272612c206a7573746f206c69626500726f20766172697573206c6967756c612c2073697420616d657420706f72740061206c6f72656d206c696265726f2061206d657475732e20416c697175616d0020756c6c616d636f72706572206d61757269732073617069656e2c2061206700726176696461207075727573207363656c6572697371756520717569732e20004e756c6c616d2072757472756d20746f72746f722073697420616d6574206f0064696f20656666696369747572207072657469756d2e2044756973206c616f0072656574206566666963697475722076656c69742c20612073656d706572200066656c69732e2050726f696e206e696268206c616375732c20637572737573002073697420616d6574206c656374757320717569732c2065666669636974750072207665686963756c61206475692e20446f6e65632061726375206c656f2c002072757472756d2075742063757273757320696e2c207363656c6572697371007565206574206c616375732e204d616563656e61732074696e636964756e740020617263752061206e6571756520666575676961742c2076656c206469637400756d206e69736c2073656d7065722e20446f6e6563206e756e632076656c6900742c20636f6d6d6f646f20696420746f72746f722076697461652c20616c690071756574206661756369627573206c6f72656d2e2041656e65616e2076617200697573206d61747469732073617069656e2065676574206d6f6c6c69732e2000446f6e65632076697461652075726e6120756c6c616d636f727065722c20640069676e697373696d20656e696d2076697461652c20766573746962756c756d00206d657475732e2050686173656c6c757320636f6e7365637465747572206500726f7320696d706572646965742c20677261766964612065726f732069642c00206d6f6c6c69732076656c69742e0a0a5574206163206c6163757320636f6e0076616c6c69732c207665686963756c61206e6571756520717569732c2065660066696369747572206f7263692e205574206d69206c616375732c206566666900636974757220657420736f6c6c696369747564696e2075742c206661756369006275732073697420616d657420616e74652e2053656420636f6e64696d656e0074756d206567657420656c697420617420677261766964612e20457469616d00206e6563206e69736c2073656420656e696d20706f72746120706c616365720061742e205072616573656e74206672696e67696c6c6120736167697474697300206c656f2c2076656c2074656d706f72206f64696f206d6f6c6c69732076690076657272612e20566573746962756c756d2066696e69627573206a7573746f002072697375732c2065752073656d706572206475692066696e69627573206100632e204d617572697320706c616365726174206c6563747573206e6973692c00206e6f6e20766573746962756c756d20746f72746f72206d6174746973206100632e204e756c6c61206e656320626962656e64756d207175616d2e0a0a53650064206574206469616d2065676574206c696265726f2070756c76696e617220006672696e67696c6c6120756c74726963696573206964207475727069732e20005072616573656e7420657520656e696d206672696e67696c6c612c20706c61006365726174206172637520696e2c20766573746962756c756d206e65717565002e20457469616d207665686963756c6120657261742064696374756d206e6900626820657569736d6f6420736f6c6c696369747564696e2e20507261657365006e74206e65632074757270697320616c69717565742c206c6f626f7274697300206c656f20717569732c207665686963756c61207175616d2e205068617365006c6c75732073656420626962656e64756d206e6973692e204d616563656e61007320696420646f6c6f72206567657420616e746520626c616e6469742064610070696275732e20446f6e656320656c656d656e74756d20736564206e696268002065752073616769747469732e20467573636520636f6e6775652073656d20006c6f72656d2c206e6f6e206672696e67696c6c61206f64696f20617563746f007220612e20566573746962756c756d20616e746520697073756d207072696d00697320696e206661756369627573206f726369206c75637475732065742075006c74726963657320706f737565726520637562696c69612063757261653b20004d616563656e61732073656420636f6e7365637465747572206a7573746f2e0020536564206566666963697475722061207175616d2073697420616d657420006d6178696d75732e0a0a416c697175616d20636f6d6d6f646f20616e746520006574206d6f6c657374696520706f72747469746f722e204d616563656e61730020766f6c7574706174206e69736c207363656c657269737175652c206c6f62006f72746973206d61757269732061632c2064696374756d206d617373612e200050686173656c6c7573206d616c657375616461206c6163696e6961206f6469006f2069642066696e696275732e204d616563656e61732061206d61676e6120006f64696f2e20467573636520697073756d2075726e612c2073616769747469007320666175636962757320616e7465207365642c20756c747269636573206400617069627573206d61757269732e2053757370656e6469737365207574206f0064696f20717569732073656d206461706962757320616c697175616d20696e0020696420646f6c6f722e205574206d61747469732071756973206f64696f20007669746165206c6f626f727469732e20416c697175616d20616320746f7274006f72206163206d657475732073656d70657220766976657272612e20416c69007175616d206e65632064696374756d206d617373612c2076656c2073757363006970697420656c69742e2044756973207365642073656d206575206e6962680020636f6e736563746574757220696163756c69732076656c207574206175670075652e2044756973207669746165206c75637475732075726e612e204e616d00206e756c6c61206e6962682c20626c616e6469742073697420616d6574207300656d7065722076697461652c206d6f6c6c6973206c6f626f72746973206e75006e632e2053656420757420666175636962757320746f72746f722c20656765007420696163756c6973206f7263692e20496e206120626c616e64697420647500692c206174207068617265747261206d657475732e20457469616d2068656e00647265726974206c696265726f207669746165206c656374757320737573630069706974206f726e6172652e2051756973717565206d6174746973206c6163007573206174207068617265747261207661726975732e0a0a4d616563656e61007320666163696c6973697320656c697420756c74726963657320707265746900756d206c6f626f727469732e2046757363652076656c20766573746962756c00756d20657261742e20457469616d206175677565206d617373612c20666575006769617420766974616520657261742061632c206c6f626f7274697320766f006c7574706174206d61676e612e20446f6e6563206d616c6573756164612073006564206c6967756c6120717569732066696e696275732e204e756c6c616d20006566666963697475722076697665727261206475692c206e6f6e2076657374006962756c756d20746f72746f7220696e74657264756d2076656c2e2050726f00696e20616e7465206573742c20626c616e64697420696e207363656c65726900737175652073697420616d65742c20756c74726963696573206e6563206572006f732e205365642065726174206e69736c2c2067726176696461206574207400656d706f722065742c206665726d656e74756d2073697420616d6574206578002e2053656420656666696369747572206d6920766974616520657569736d6f0064206672696e67696c6c612e2053757370656e646973736520656765742061007563746f72206e6962682e20446f6e6563206e656320706861726574726120006f64696f2c2068656e64726572697420636f6e64696d656e74756d20646f6c006f722e0a0a4d6f72626920696d706572646965742c206469616d206e6563200076756c7075746174652072757472756d2c20746f72746f72206c6f72656d2000696e74657264756d20616e74652c207669746165206375727375732074757200706973206f64696f206e6f6e206d61676e612e20446f6e6563206c616f7265006574207669746165206d61676e612073697420616d657420617563746f722e00204372617320617563746f72206e69736c2071756973207661726975732063006f6d6d6f646f2e204d6175726973206174206c6163696e6961206e756c6c61002e20566573746962756c756d20666575676961742073656d206174206d61730073612066617563696275732064696374756d2e2046757363652076656c207300617069656e2073697420616d6574206a7573746f2073757363697069742061006363756d73616e2075742076656c206f7263692e204e756c6c612066616369006c6973692e204e756c6c616d20736f6c6c696369747564696e20737573636900706974206e6973692c20657520616363756d73616e206d6574757320636f6e00736563746574757220766573746962756c756d2e2051756973717565207465006c6c7573206d657475732c2073656d7065722074656d707573206d657475730020717569732c2064696374756d20656c656d656e74756d2066656c69732e200053757370656e646973736520636f6e76616c6c697320707572757320616320006c61637573207072657469756d2c20616320616c697175657420657374206600696e696275732e2050656c6c656e74657371756520626962656e64756d20700075727573206d61676e612c2073697420616d657420637572737573206e65710075652066657567696174206e6f6e2e2043757261626974757220696e206d610078696d7573206a7573746f2e2041656e65616e20696163756c6973206c616300696e69612072686f6e6375732e0a0a536564206672696e67696c6c61207365006d206163206d61737361206d616c6573756164612c206d617474697320696d0070657264696574207175616d2073757363697069742e2043726173206c616300696e69612061632065782076697461652072757472756d2e20536564206578002066656c69732c20706f727461206e656320617263752061632c2066696e6900627573206c7563747573207475727069732e204475697320697073756d206c00696265726f2c20696e74657264756d20757420696e74657264756d2075742c0020656c656d656e74756d206163206a7573746f2e204d6f7262692074726973007469717565206c6f626f7274697320706c6163657261742e2050656c6c656e007465737175652074696e636964756e742074656d70757320656e696d2061740020636f6e6775652e204e756c6c61206d61747469732074696e636964756e7400206e6973692c2061742072686f6e63757320616e746520656c656966656e64002068656e6472657269742e204e756c6c616d2064696374756d20706861726500747261206475692e20566573746962756c756d206c75637475732065737420007574206175677565207472697374697175652c2073697420616d657420656c00656d656e74756d2074656c6c757320656c656966656e642e20496e746567650072206e6563206f726e617265206a7573746f2c207175697320706f72746120006469616d2e2051756973717565206e6f6e206e697369206e6f6e206c6f7265006d2070756c76696e617220706f73756572652061206567657420656c69742e00205365642065676574206c6163696e69612073656d2e2050686173656c6c750073206e6f6e206e756c6c612074656d7075732c207363656c6572697371756500206c696265726f2076656c2c207068617265747261206e6962682e0a0a5375007370656e6469737365206469676e697373696d20636f6e67756520657374200069642070686172657472612e20447569732076697461652066656c69732069006e206c656374757320666163696c6973697320706861726574726120736564002061632070757275732e2050656c6c656e7465737175652076656e656e617400697320706c616365726174206d61757269732c206120626962656e64756d20006d6175726973206566666963697475722076697461652e204d6f7262692065006666696369747572206d65747573206575207363656c65726973717565206600617563696275732e20566573746962756c756d20616e746520697073756d20007072696d697320696e206661756369627573206f726369206c75637475732000657420756c74726963657320706f737565726520637562696c6961206375720061653b2041656e65616e20696e74657264756d20666163696c6973697320710075616d20717569732066617563696275732e20566573746962756c756d2061006e746520697073756d207072696d697320696e206661756369627573206f72006369206c756374757320657420756c74726963657320706f73756572652063007562696c69612063757261653b205072616573656e74206c6f626f7274697300206d61676e612071756973206e697369206d616c657375616461206d617869006d75732071756973206e6f6e206c6f72656d2e20437572616269747572206e006f6e206e756c6c612073697420616d657420657261742074696e636964756e007420666163696c6973697320617420657420746f72746f722e204d6f72626900206964206175677565207669766572726120697073756d2070756c76696e610072207363656c657269737175652071756973206e65632076656c69742e204e00616d2076656c206f64696f20636f6d6d6f646f2c20706f72746120617263750020696e2c20666163696c697369732073617069656e2e204e756e63207369740020616d65742076656e656e6174697320657261742c206174206c616f72656500742061756775652e20446f6e656320617563746f722070757275732071756900732074656d706f7220666575676961742e20496e2071756973206c6f72656d002065676574206e756e63206c6163696e696120646170696275732e20446f6e00656320696163756c6973206573742076656c2072686f6e63757320616c69710075616d2e0a0a4d6f726269206d61676e61206f64696f2c2076656e656e61740069732076697461652073656d2069642c20646170696275732074656d70757300206e756e632e204d6f7262692066617563696275732074656d706f72206d610078696d75732e205175697371756520657520696d70657264696574206d6167006e612c20696420616c697175616d2075726e612e20446f6e6563207574206c00696265726f206475692e20457469616d206d6174746973206e756c6c6120710075697320617567756520696e74657264756d2c2061206d6f6c657374696520006f726369207472697374697175652e20446f6e6563206e656320756c6c616d00636f72706572206e6962682c2061742074696e636964756e74207075727573002e204475697320626c616e646974206e69626820756c74726963696573206f0072636920616363756d73616e20736f6c6c696369747564696e2e20446f6e6500632069642061756775652071756973206e65717565206c616f72656574206f00726e6172652e204e756e632072757472756d206a7573746f2075742065676500737461732068656e6472657269742e20437261732074656d70757320696e20006d617572697320612074696e636964756e742e0a0a557420706f7274746974006f722074656d70757320616c697175616d2e204d616563656e617320677261007669646120636f6e736571756174206d692c2065742074726973746971756500206c6f72656d20666575676961742073697420616d65742e20507261657365006e7420736564206d6178696d7573206f64696f2c206567657420636f6e736500637465747572206c616375732e20416c697175616d20647569206e65717565002c207669766572726120636f6e73657175617420636f6e6775652076656c2c0020636f6e736571756174206964206f7263692e2041656e65616e2066696e69006275732065782073656d706572206e69736c206d61747469732c207175697300206c756374757320656e696d206c6163696e69612e2050726f696e20696420006d61737361206d61757269732e20496e74656765722065752061726375206c006163696e6961206c656374757320657569736d6f64206c75637475732e2049006e20766f6c7574706174206e6f6e206d657475732073697420616d65742063006f6e76616c6c69732e204e616d206c6967756c61206d657475732c20666572006d656e74756d2065752074656c6c75732069642c20656c656966656e642076006172697573206e657175652e204675736365206175677565206c6f72656d2c0020706861726574726120612073656d2076656c2c20636f6e64696d656e7475006d206d617474697320646f6c6f722e2046757363652073656d706572206e6900736c20696e2075726e612073757363697069742c206567657420707265746900756d206a7573746f20736f6c6c696369747564696e2e0a0a496e7465676572002076697461652072686f6e637573206573742c207175697320626962656e6400756d2072697375732e20457469616d206d616c657375616461206175677565002065752074656d70757320636f6e76616c6c69732e205175697371756520710075697320656c697420666575676961742c20756c6c616d636f72706572206e0069626820696e2c206c7563747573206d617373612e2050686173656c6c75730020636f6e76616c6c69732073617069656e2076656c206c616375732074696e00636964756e742c206e656320657569736d6f64206573742070656c6c656e740065737175652e20416c697175616d20706f727461206a7573746f206120756c00747269636965732068656e6472657269742e204d6175726973206c756374750073206175677565206575206c656374757320646170696275732c2075742070006f72746120656c69742070656c6c656e7465737175652e20496e74656765720020736564206d61676e6120757420646f6c6f722074696e636964756e7420660072696e67696c6c61206964206174206475692e204d6f72626920656c65696600656e642072697375732073697420616d6574206d61676e612074656d707573002c207665686963756c61206c6f626f72746973206f72636920736f6c6c69630069747564696e2e204e616d2065742074656d706f72206d61676e612e204d6f007262692071756973207072657469756d2072697375732c2075742076656e65006e617469732074656c6c75732e204d617572697320706f72746120646f6c6f007220657420636f6e73656374657475722068656e6472657269742e204e616d002070656c6c656e7465737175652065676573746173206f64696f207472697300746971756520677261766964612e2050656c6c656e74657371756520696420006665726d656e74756d206469616d2e20496e20636f6e736563746574757220006d692076656c206c696265726f20657569736d6f642064696374756d2e2044006f6e656320736167697474697320616e7465206d617373612e20507261657300656e74206163206175677565206e657175652e0a0a536564206d6173736120007475727069732c20636f6e76616c6c69732065676574207665686963756c61ba020000002065752c20636f6e64696d656e74756d20736564206d657475732e205365640020636f6e64696d656e74756d20766f6c7574706174206573742c2076656c200070756c76696e6172206e69736920736f6c6c696369747564696e206e6f6e2e0020496e7465676572207574206d61676e6120657420746f72746f72206469630074756d20636f6e64696d656e74756d20696e20706f727461206573742e2049006e2073697420616d65742061756775652065782e204e756e632076657374690062756c756d206964206c616375732076656c2070756c76696e61722e205072006f696e2070756c76696e6172206d6173736120757420616e7465206d617869006d75732c207669746165206c7563747573207175616d20656765737461732e002044756973206d6178696d757320616e74652073697420616d6574206d616c00657375616461206469676e697373696d2e204675736365207574206c656f2000626c616e6469742c20666163696c69736973206d657475732061742c20636f006e736571756174206c696265726f2e20437261732076656e656e6174697320006e69736920656765742075726e61206665726d656e74756d2c206174206669006e69627573207175616d20696163756c69732e20517569737175652076656c00206c6f72656d2065782e2050726f696e206a7573746f2066656c69732c20730063656c6572697371756520736564206f64696f2069642c20666575676961740020736f6c6c696369747564696e207175616d2e20496e74656765722076617200697573206f7263692073697420616d65742076756c7075746174652068656e006472657269742e204d6f726269206d6178696d75732c2065726f73206e6f6e0020636f6e7365717561742066696e696275732c207175616d206e6962682075006c6c616d636f72706572206475692c20616320696e74657264756d2073656d0020616e746520766974616520746f72746f722e204375726162697475722076006974616520706861726574726120656e696d2e20437261732073757363697000697420636f6e677565206c656f2c20696e20736f6c6c696369747564696e20006e697369207472697374697175652061742e20566976616d757320706f7274007469746f7220746f72746f7220636f6e64696d656e74756d2c20696163756c006973206c6967756c612075742c207472697374697175652065726f732e0a0a00496e206575206c756374757320616e74652e204d6f726269206d6178696d7500732075726e61206e6f6e206c6967756c6120706f73756572652c206120766f006c7574706174206f7263692073616769747469732e204e616d20617420656c0069742065676574206d692066696e696275732073656d70657220756c747269006365732073656420616e74652e205072616573656e742065752073656d70650072206f7263692e204e616d2071756973206469616d206e65632065737420650066666963697475722073656d7065722e204d6f7262692073697420616d657400206f64696f2070656c6c656e746573717565206e69736c20626c616e6469740020736f64616c65732e20447569732067726176696461206964206c6f72656d0020657520616c69717565742e205365642065726f73207475727069732c207300757363697069742073697420616d657420736f64616c6573207365642c2066006163696c69736973206574206573742e204f72636920766172697573206e6100746f7175652070656e617469627573206574206d61676e697320646973207000617274757269656e74206d6f6e7465732c206e6173636574757220726964690063756c7573206d75732e20566976616d75732073656d7065722074656d706f0072207661726975732e20416c697175616d20696420616c697175616d20646900616d2e0a0a416c697175616d20746f72746f72206573742c206c7563747573002065752075726e6120717569732c2074656d7075732068656e6472657269740020617263752e20566573746962756c756d2073697420616d657420656c656d00656e74756d206c656f2e2053757370656e64697373652071756973206e756e006320612073617069656e2068656e64726572697420696d706572646965742e002053656420696e2065676573746173206c696265726f2e20446f6e65632063006f6e6775652073697420616d6574206e6571756520646170696275732065750069736d6f642e204675736365207363656c657269737175652076656c20707500727573206964207363656c657269737175652e2050726f696e2076656c2070006f72747469746f72206e69736c2e0a0a4d6f726269206964206475692065670065742074757270697320696163756c697320636f6e6775652e204e756c6c61006d20617563746f722c206c6967756c61206567657420636f6d6d6f646f20700072657469756d2c206c696265726f206e756c6c6120756c7472696369657320006f64696f2c2075742072757472756d2061726375206172637520696e206e690073692e204d61757269732065676574206c6163757320696e20657820766172006975732073616769747469732073656420696e20656c69742e204d617572690073206d6f6c6573746965206f64696f206574206f7263692070686172657472006120706c6163657261742e20496e746567657220696e20747572706973206500676574206c696265726f20636f6e7365637465747572206c6f626f7274697300206575206e6f6e206c616375732e204d616563656e61732064696374756d20006c656f2074656d707573206c61637573206d617474697320736f64616c6573002e20446f6e6563206a7573746f206f64696f2c2074696e636964756e7420610063206172637520656765742c20666175636962757320706f73756572652064006f6c6f722e205072616573656e742065676574206e756e63206e6563206665006c697320696e74657264756d2072686f6e6375732e20566573746962756c75006d20656c656d656e74756d206461706962757320636f6e7365637465747572002e2053757370656e6469737365206964206e756e63206d61747469732c206c007563747573206e6962682073697420616d65742c20636f6e64696d656e7475006d2065782e20496e7465676572206f726e6172652075726e6120766974616500206e697369206c7563747573206469676e697373696d2e2041656e65616e200074696e636964756e742068656e647265726974207269737573206e6f6e2061006363756d73616e2e204e756c6c6120617420736f64616c6573206e69736c2e0020496e74656765722068656e647265726974207669746165206d61676e61200076697461652073757363697069742e20437261732064617069627573206c65006374757320736564206c656f207363656c657269737175652073656d706572002e204d61757269732061207269737573206e756c6c612e0a0a5365642069610063756c69732c206c656f20757420766573746962756c756d206672696e6769006c6c612c2066656c69732073617069656e20636f6e76616c6c6973206c6563007475732c2076656c206c616f72656574207175616d206f7263692061206d6100757269732e204e756c6c616d20657520616363756d73616e2073617069656e002e2050656c6c656e746573717565206d617474697320736f64616c6573206d0061757269732c20757420636f6e64696d656e74756d206d61676e6120636f6e006775652076656c2e2041656e65616e20706f72747469746f72206e6973692000616320657261742066617563696275732073757363697069742e205068617300656c6c757320656c656d656e74756d2074696e636964756e74207175616d20006e656320636f6e64696d656e74756d2e204375726162697475722066696e6900627573206e756c6c612076656c206c6163696e696120696d70657264696574002e204d616563656e61732066657567696174206d617474697320646f6c6f72002c206e656320616363756d73616e20697073756d2074656d706f722075742e002050686173656c6c757320617563746f7220666163696c69736973207275740072756d2e20536564207669746165206d69206e6f6e206f64696f2070656c6c00656e74657371756520626c616e64697420696e2061206d61676e612e0a0a5300656420696e206469616d20636f6e6775652c20636f6d6d6f646f20746f7274006f7220612c20657569736d6f64206c6967756c612e20496e2061632065666600696369747572206e756e632c2076656c20756c6c616d636f727065722069700073756d2e20416c697175616d2076656c206469616d206665726d656e74756d002c20736f6c6c696369747564696e20617263752065742c20656c656d656e7400756d2073617069656e2e2043726173206c656f206d657475732c2072686f6e006375732071756973206d617373612065752c20677261766964612069616375006c697320657261742e2043757261626974757220756c747269636573207369007420616d657420656e696d20757420617563746f722e2041656e65616e20610074206175677565206163206a7573746f2074656d70757320626962656e6475006d2073656420696d7065726469657420746f72746f722e204e756c6c616d2000736564206d61757269732073617069656e2e20447569732070656c6c656e740065737175652075726e6120696e2066696e69627573206d6f6c65737469652e00205072616573656e74206e6f6e207072657469756d206d61676e612c206e650063206c6163696e696120746f72746f722e2050726f696e2066617563696275007320656c656d656e74756d206c6f72656d2c2072686f6e6375732076756c7000757461746520657820616c69717565742061632e0a0a416c697175616d207400696e636964756e7420617263752073617069656e2c20616c697175657420730075736369706974206c656f20656c656d656e74756d2076697461652e204372006173206d617474697320617263752076656c206f726e617265206665726d65006e74756d2e204d6f72626920636f6e76616c6c6973206e697369206d6f6c65007374696520657261742073656d7065722c20736564206c7563747573206e65007175652076756c7075746174652e2053757370656e6469737365206d616c650073756164612c20646f6c6f722076656c20756c74726963657320696d70657200646965742c206d69206e69626820756c74726963696573207475727069732c00206e6563207072657469756d206c696265726f20697073756d207669746165002072697375732e20416c697175616d20696e20636f6e677565206c61637573002c20666575676961742076756c7075746174652065726f732e20496e206c61006f72656574206e69626820696e2076756c7075746174652076657374696275006c756d2e205574206661756369627573206f726e617265206e756e63207369007420616d657420656c656966656e642e205072616573656e7420706c616365007261742073617069656e2076656c20656c69742074656d706f722062696265006e64756d2e204e756c6c612071756973207665686963756c6120617263752e002053757370656e646973736520736f64616c6573206c656f2061632075726e006120616c69717565742076756c7075746174652e20536564206d6f6c6c6973002c206c6163757320657520656c656966656e6420736f64616c65732c206d6100676e61206172637520766172697573206c656f2c20657520626c616e646974002066656c6973206572617420657420746f72746f722e205072616573656e74002074656d7075732073697420616d6574206d61676e61207669746165206f72006e6172652e20416c697175616d20656c656966656e642076656c206f64696f0020696420636f6e7365717561742e204d6175726973206574206e657175652000717569732073617069656e20706f737565726520756c74726963696573206500752073697420616d65742075726e612e20437261732072686f6e637573206500726f732076656c2073656d2070756c76696e61722066696e69627573206120006e6f6e2072697375732e0a0a536564206c6f626f72746973206f64696f20710075616d2c206e6f6e20637572737573206e756c6c6120616c697175616d206e006f6e2e20446f6e65632061726375206573742c20666163696c697369732069006e20666175636962757320612c2070686172657472612073697420616d657400206e69736c2e205175697371756520696163756c6973206c656f206e6f6e2000656c656d656e74756d20706c6163657261742e205365642076657374696275006c756d206c656f20616e74652c20616320636f6e76616c6c697320647569200073616769747469732069642e20496e20686163206861626974617373652070006c617465612064696374756d73742e20536564206d6f6c657374696520636f006e76616c6c69732066656c69732c20696e2070656c6c656e7465737175652000616e746520696e74657264756d20612e20566976616d757320706c6163657200617420656c656966656e6420616e74652e2050656c6c656e746573717565200073697420616d6574206f64696f207665686963756c612c207361676974746900732065737420656765742c20656c656d656e74756d206c6f72656d2e204d61007572697320656c6974206d61676e612c20636f6e6775652076656c2065726f0073206e65632c20696163756c6973206d616c65737561646120616e74652e2000566976616d757320696e20656666696369747572206f64696f2c20717569730020616c697175616d206e756c6c612e204e756c6c61207574206469676e69730073696d206475692e20496e206567657374617320666163696c69736973206c006f72656d2c206e6f6e20656c656d656e74756d20647569207665686963756c0061206e65632e204e756c6c61206d616c65737561646120706f72747469746f00722065782061206f726e6172652e204e756c6c61206e6f6e2076617269757300206f64696f2e2041656e65616e206e656320696d70657264696574207361700069656e2e20446f6e6563206e69736920617263752c2070756c76696e617220007072657469756d206d616c6573756164612061632c20706f72746120766974006165207175616d2e0a0a437572616269747572206d6f6c65737469652c206d006920696e74657264756d206c7563747573206375727375732c207269737573002073617069656e206c6f626f72746973206c656f2c206174206566666963690074757220617567756520656c6974207365642074656c6c75732e204e756e6300207375736369706974206c7563747573206e69736c2073697420616d65742000626962656e64756d2e20446f6e6563206e6f6e20637572737573207075727500732c206163206661756369627573206a7573746f2e2050726f696e2061756300746f7220766f6c7574706174206e756e632c20696e2074726973746971756500206e69736c20626962656e64756d2061742e2053757370656e6469737365200076656e656e61746973206e756e63206e69736c2c206e6563206772617669640061206c696265726f2074726973746971756520696e2e20517569737175652000706c6163657261742061206e69736c20616320706c6163657261742e204165006e65616e20756c74726963696573206c696265726f20696420697073756d200072686f6e6375732c2073697420616d657420616c697175616d20656e696d20006c75637475732e20447569732076656e656e6174697320646f6c6f72206574002074656c6c757320636f6e736571756174206c6f626f727469732e20446f6e00656320696e206469616d20706f73756572652c206665726d656e74756d207200697375732065742c2070756c76696e6172206e657175652e0a0a496e746567006572206e6563206e6962682065752074656c6c7573207072657469756d2069006e74657264756d206174206574206469616d2e204e756c6c612070656c6c65006e746573717565206f64696f20717569732065726f7320656765737461732000736f64616c65732e2043757261626974757220656765742074656d70757320006469616d2e2050656c6c656e74657371756520756c747269636965732061720063752065782c206120696d70657264696574206a7573746f20706f7375657200652076656c2e2050726f696e2076756c70757461746520736f64616c657320006d617373612061742070686172657472612e20496e7465676572206e6f6e20006d61737361207574206c6967756c6120666575676961742074656d7075732e0020517569737175652073616769747469732076656c206e756e6320757420740072697374697175652e2041656e65616e2075742074656d706f72206a757374006f2e20446f6e656320636f6e677565206e69736c20736564207175616d206d006f6c6573746965206d6f6c6c69732e204e756c6c616d20706c616365726174002c20747572706973206567657420677261766964612072757472756d2c206600656c69732076656c697420616c697175616d2065726f732c20696420656c65006d656e74756d206c6967756c612075726e6120696420657261742e204e756c006c61206e65632072686f6e6375732073656d2e205574206e656320766568690063756c612065782c2076656c2068656e647265726974206e657175652e2055007420706c6163657261742076656c69742076656c2076656c69742068656e640072657269742c207669746165206665726d656e74756d207269737573206d6f006c65737469652e0a0a4d6175726973206f726369206c65637475732c20696d0070657264696574207365642066696e69627573206e65632c20616c69717561006d2076656c206e6962682e20566573746962756c756d206672696e67696c6c006120616363756d73616e206e756e63206574206d6f6c65737469652e205574002065742065726174206a7573746f2e2050656c6c656e74657371756520677200617669646120617263752070757275732e2041656e65616e20696e206e6962006820766974616520617263752064696374756d2074696e636964756e74206900642065752066656c69732e205072616573656e7420657420656c697420696400206d6920636f6e736563746574757220616c697175616d2e2056657374696200756c756d20696e20656e696d2064696374756d2c20626962656e64756d206500726174206e6f6e2c20756c74726963696573206f64696f2e2050656c6c656e0074657371756520636f6e76616c6c6973206f726369206e6973692c206e65630020756c74726963696573206f64696f20706f73756572652073697420616d6500742e0a0a4d616563656e61732073697420616d6574206665726d656e74756d00206e69736c2e20566573746962756c756d20616e746520697073756d20707200696d697320696e206661756369627573206f726369206c75637475732065740020756c74726963657320706f737565726520637562696c6961206375726165003b205072616573656e74206174206e756e6320696e206d61676e6120636f6e00736571756174207363656c657269737175652e204d616563656e617320696e00207175616d207574206a7573746f2074696e636964756e7420617563746f72002e2050686173656c6c757320757420646f6c6f72206d657475732e20496e200073656d706572206d6920736564206c6f72656d207068617265747261207268006f6e6375732e204675736365206567657420657374206c616f726565742c20007361676974746973206c696265726f2073697420616d65742c206665756769006174206e6962682e204d6f72626920646170696275732075726e6120616320007175616d206665726d656e74756d2072686f6e6375732e20446f6e65632063006f6e76616c6c697320657569736d6f64206469676e697373696d2e204375720061626974757220757420747269737469717565206c6967756c612e0a0a536500642072757472756d2074696e636964756e74207472697374697175652e204e00756e63206d69207175616d2c20637572737573206574207665686963756c610020656765742c2074696e636964756e74206e6f6e20646f6c6f722e20446f6e00656320617563746f722066696e69627573206f726e6172652e204d6f72626900207665686963756c612c206e69736c2076656c20636f6d6d6f646f20706f7200747469746f722c20646f6c6f72206e756e6320736167697474697320646961006d2c20656765742066617563696275732073617069656e2065782076656c20006d61676e612e204375726162697475722076656c206c6967756c61207369740020616d6574206c6967756c6120646170696275732066696e696275732e2045007469616d2073697420616d6574206c6f72656d206c65637475732e204e756c006c616d206665726d656e74756d206e69736c206c696265726f2c207669746100652074696e636964756e74207075727573206c6163696e696120717569732e00204d6f726269207574206d6f6c657374696520697073756d2c206575206d6f006c6573746965206c6967756c612e2050686173656c6c7573206574206c656300747573206a7573746f2e20566976616d7573206578206d61676e612c20636f006e7365717561742076656c206a7573746f2076656c2c2074656d706f722061006c697175616d20616e74652e205365642066696e6962757320736564206d6100737361207175697320636f6d6d6f646f2e20446f6e656320696e206e69626800206e65632074656c6c757320636f6e677565206469676e697373696d206567006574207669746165206e756c6c612e204475697320656c656966656e642070006c616365726174207269737573206120706c6163657261742e204d617572690073206e6563206c65637475732068656e6472657269742c207361676974746900732076656c697420636f6e64696d656e74756d2c206567657374617320647500692e0a0a4e616d20696163756c69732076656c697420717569732075726e610020706f7274612073616769747469732e2041656e65616e20636f6d6d6f646f00206e69736c206e656320697073756d206c6f626f727469732c20626962656e0064756d2065666669636974757220656e696d20636f6e64696d656e74756d2e002050726f696e206172637520656c69742c206665726d656e74756d2075742000656765737461732061742c206c616f726565742076656c206e69736c2e2049006e746567657220626962656e64756d20747572706973207574206469616d20006665726d656e74756d2c2065752074656d707573206c656f206672696e6769006c6c612e204d616563656e61732076656c697420617263752c20636f6e6469006d656e74756d20696d7065726469657420657261742065742c206661756369006275732076756c707574617465206c65637475732e2043757261626974757200206d6574757320656e696d2c206672696e67696c6c6120757420666163696c00697369732061632c20616363756d73616e20696e20697073756d2e204e756c006c616d207665686963756c61206c6163696e6961206d617373612c2076656c00206661756369627573206f64696f20636f6e64696d656e74756d2061742e20004d617572697320706f72747469746f722065726f73206d61676e612c20757400206d6178696d75732074656c6c7573206665726d656e74756d2069642e2056006976616d7573207574206c6563747573206f726e6172652c20706f7274746900746f72206469616d20656765742c20756c6c616d636f72706572206e696268002e20447569732076656e656e617469732074656d706f7220657261742c207500742076617269757320657374206c6f626f727469732076656c2e205068617300656c6c757320736564206578206c65637475732e205365642076656c207361007069656e20616c697175616d2c20696e74657264756d206475692069642c2000656c656966656e64206f7263692e0a0a5072616573656e74206174206c6f62006f72746973206d657475732e204e616d2074656d707573207175616d20647500692c206e6563206c7563747573206d617373612074696e636964756e742061002e2050656c6c656e74657371756520616363756d73616e2076656c697420750074206175677565206d617474697320636f6e76616c6c69732e205574206567006573746173206f64696f20656e696d2c206163207669766572726120616e74006520636f6e76616c6c69732075742e2041656e65616e20696e2064756920610074207175616d206665726d656e74756d2072757472756d2e20566976616d750073206567657420636f6e76616c6c6973206c65637475732e20457469616d2000657569736d6f64206672696e67696c6c6120746f72746f722c206e65632069006e74657264756d206a7573746f206d61747469732065752e204e756c6c616d00206d6178696d7573206e696268206469616d2c206575206c6f626f7274697300206a7573746f207072657469756d2076697461652e2051756973717565207400696e636964756e7420646f6c6f722061742075726e6120636f6e64696d656e0074756d2c207669746165206d616c6573756164612065737420706f7274746900746f722e2050656c6c656e746573717565207669746165206475692065782e0020566976616d757320766f6c757470617420697073756d207574207475727000697320656c656d656e74756d20706f7274612e20496e74657264756d20657400206d616c6573756164612066616d657320616320616e746520697073756d20007072696d697320696e2066617563696275732e204d617572697320736564200066656c6973206e756c6c612e205072616573656e742076656c207269737573002076656c69742e0a0a446f6e656320706f727461206174206469616d207365006d70657220616c69717565742e2041656e65616e20637572737573206c6f7200656d206e6f6e2076617269757320636f6d6d6f646f2e20536564206e65717500652065726f732c20656666696369747572206e6563206469616d20696e2c20007472697374697175652076697665727261206469616d2e2053757370656e64006973736520746f72746f72206475692c20657569736d6f64206e6563206e75006c6c612061632c20616c697175657420756c74726963696573206c6f72656d002e2050686173656c6c757320636f6e7365637465747572206575206573742000616320656765737461732e204e756e6320757420656c697420696e2070757200757320616363756d73616e20657569736d6f642e2043726173206c656f206f007263692c20677261766964612076656c20626962656e64756d20656765742c0020636f6e76616c6c697320696e2072697375732e2046757363652065676574002073656d7065722073617069656e2e0a0a536564206d6f6c65737469652070006c616365726174206c6967756c61206e656320766976657272612e20496e2000617420656666696369747572206d61676e612e204e616d2066696e6962757300206c6f72656d20657420726973757320756c747269636965732c2076656c2000637572737573206e65717565207363656c657269737175652e20496e7465720064756d206574206d616c6573756164612066616d657320616320616e74652000697073756d207072696d697320696e2066617563696275732e205365642069006e20656765737461732065726f732e2041656e65616e2074656d706f722c20006e69626820636f6d6d6f646f20626962656e64756d206c75637475732c207600656c6974206e756e6320696e74657264756d206f7263692c2073697420616d0065742074656d707573206c656f207075727573207669746165207269737573002e20457469616d207669746165207269737573206e6962682e2056657374690062756c756d206d6f6c65737469652063757273757320616e74652c206567650074206c6163696e6961206c656f206d6f6c65737469652076656c2e0a0a5375007370656e646973736520757420677261766964612073617069656e2e2056650073746962756c756d20616363756d73616e206e756e6320696e2064617069620075732073656d7065722e204e756e632076656c2073656d706572207175616d002e2050656c6c656e746573717565206861626974616e74206d6f72626920740072697374697175652073656e6563747573206574206e65747573206574206d00616c6573756164612066616d6573206163207475727069732065676573746100732e204675736365206d6f6c6573746965206672696e67696c6c61206c6f7200656d2c207175697320747269737469717565206d61676e6120756c6c616d63006f727065722073697420616d65742e2043757261626974757220766974616500206c6f72656d207574206a7573746f206c616f72656574207665686963756c00612061742061206469616d2e2053757370656e646973736520616c69717565007420636f6e73656374657475722065782c20757420636f6e736563746574750072206e6571756520636f6e7365637465747572206e65632e20496e74656765007220766974616520636f6e64696d656e74756d20746f72746f722e204e756e0063207365642073757363697069742073617069656e2e2050686173656c6c75007320656c656d656e74756d20657569736d6f642076656c69742c2065676574002064696374756d20646f6c6f7220756c6c616d636f727065722065752e0a0a0050686173656c6c75732061742064756920697073756d2e204e756e63206c75006374757320617563746f72206e69736c20657520617563746f722e20446f6e00656320636f6e76616c6c69732061726375206c6163696e6961206578207361006769747469732c20736564206f726e61726520616e7465206f726e6172652e00204e616d2074696e636964756e74206a7573746f207475727069732c2073650064206d617474697320616e746520736f6c6c696369747564696e207365642e0020536564206f726e61726520697073756d206e6962682c2061632074656d70006f72206d61676e612076617269757320696e2e204e616d206672696e67696c006c61206d61676e61206d692c2075742065676573746173206c6f72656d207600617269757320696e2e20536564206575206c75637475732073617069656e2e0020496e74656765722076656c206469676e697373696d20656c69742c2061740020706c616365726174207475727069732e20446f6e656320696e206e69626800206964206a7573746f206c6f626f727469732064696374756d2e20446f6e650063207068617265747261206f726369206e656320636f6e76616c6c69732073006f6c6c696369747564696e2e0a0a50656c6c656e746573717565207369742000616d6574206672696e67696c6c612073656d2c2061632073757363697069740020656c69742e20446f6e656320612074726973746971756520697073756d2c00206e6f6e20756c7472696365732065726f732e205072616573656e7420616c00697175616d20697073756d206567657420626962656e64756d20766f6c7574007061742e20447569732073697420616d6574206469616d20626962656e6475006d2c20617563746f72206e69736920656765742c206d6f6c6c697320746f7200746f722e204d61757269732065742076656c69742075726e612e205574206600656c6973206c65637475732c207072657469756d207365642074656d707573002073697420616d65742c206d6f6c6c6973207669746165206c65637475732e00204d61757269732073697420616d6574206f7263692065752074656c6c75730020666163696c697369732074696e636964756e742e20447569732068656e640072657269742066656c69732061206e6571756520617563746f7220636f6e670075652e204d6f726269206c6967756c61206573742c2070656c6c656e746573007175652076656c2073616769747469732065742c20666175636962757320650067657420656e696d2e0a0a517569737175652064696374756d206e6973692000696420736f6c6c696369747564696e207072657469756d2e20496e7465726400756d206574206d616c6573756164612066616d657320616320616e74652069007073756d207072696d697320696e2066617563696275732e2053757370656e006469737365207665686963756c612076656e656e617469732072697375732c00206174207665686963756c61206c616375732072757472756d206e6f6e2e200050656c6c656e746573717565206861626974616e74206d6f72626920747269007374697175652073656e6563747573206574206e65747573206574206d616c006573756164612066616d65732061632074757270697320656765737461732e0020496e207075727573206d617373612c206d6f6c657374696520696e206e6900626820612c2076656e656e6174697320626c616e64697420656c69742e205000686173656c6c75732073617069656e206469616d2c2074696e636964756e740020736f64616c6573206469616d2076697461652c20636f6e67756520736167006974746973206f64696f2e2043757261626974757220657569736d6f64206e00656320616e746520736564207072657469756d2e2050656c6c656e74657371007565206d6f6c65737469652076617269757320656e696d2c206e6f6e20666100756369627573206c656f2073616769747469732061632e20437572616269740075722071756973206d61757269732071756973206c6967756c6120756c6c61006d636f72706572206d616c65737561646120736564206575206c6563747573002e0a0a53757370656e64697373652076656c206d61676e61206469676e69730073696d2c2064696374756d206e657175652073757363697069742c2062696200656e64756d206c616375732e205175697371756520717569732066656c69730020617263752e2050686173656c6c75732065726174206c656f2c2073656d7000657220617420646f6c6f7220656765742c2076656e656e617469732072686f006e6375732065782e2043726173206d6f6c6c6973206e696268207365642061007567756520736f64616c65732c2073697420616d6574206d6f6c6c6973207000757275732070686172657472612e2043726173206e6563206d69207175697300206c656f20696d7065726469657420616363756d73616e20757420696420710075616d2e204e616d206e69736c20656c69742c206f726e6172652065752075006c7472696365732076697461652c20706f72747469746f72206574206c696700756c612e2050656c6c656e746573717565207665686963756c6120656c69740020657420697073756d20636f6e7365717561742c206e6563206d6f6c6c6973002065737420696e74657264756d2e2055742074656d706f722063757273757300206d6f6c65737469652e204d61757269732074696e636964756e742061636300756d73616e206e756e6320696420696d706572646965742e20457469616d20006d616c6573756164612c206e6973692061632076756c7075746174652069610063756c69732c206e697369206f72636920706c616365726174206e756c6c61002c206e65632074696e636964756e742074656c6c757320656c69742071756900732075726e612e20457469616d206c61637573206d617373612c2068656e6400726572697420757420636f6d6d6f646f20612c20696e74657264756d20696400206e69736c2e20496e746567657220766974616520616e7465206672696e6700696c6c61206d692074696e636964756e7420636f6e73656374657475722e20004e756c6c6120636f6e7365637465747572206f726e61726520626962656e6400756d2e0a0a55742073697420616d657420657569736d6f642074656c6c7573002e2050656c6c656e746573717565207072657469756d2074696e636964756e0074206475692065752073656d7065722e205365642076656c2065726f73206e006f6e20646f6c6f7220696163756c697320696e74657264756d20736564207100756973206f7263692e20496e2073656d706572206c6f626f7274697320646900676e697373696d2e205365642066617563696275732066657567696174207000656c6c656e7465737175652e2050656c6c656e74657371756520736f6c6c69006369747564696e206f64696f20736564206c6563747573207361676974746900732c206e6f6e20756c7472696369657320697073756d2072757472756d2e200053656420736564206f726e6172652065782e0a0a5072616573656e7420766900746165206d6f6c6573746965207175616d2c20616320626c616e646974206f0064696f2e20457469616d2065676573746173206375727375732075726e612000696420657569736d6f642e204e616d20616c6971756574206172637520657500206c7563747573206c616f726565742e20457469616d20696d7065726469650074207175616d2076656c20636f6e73657175617420626c616e6469742e204d00617572697320696e74657264756d2c206469616d20766172697573206c616300696e696120616c69717565742c2076656c69742074656c6c757320706861720065747261206a7573746f2c20656765742073757363697069742075726e6120006e756c6c612071756973206c656f2e204e756c6c61206578206e69736c2c2000666175636962757320617420626c616e6469742061632c2063757273757320006120697073756d2e20566976616d75732071756973206469616d20636f6e670075652c20657569736d6f642075726e612073697420616d65742c206672696e0067696c6c6120646f6c6f722e204e616d206e6f6e206e756c6c6120636f6e67007565206c696265726f2074656d706f7220756c747269636965732e2050656c006c656e7465737175652070756c76696e61722073617069656e20766974616500206e756e63207363656c65726973717565206672696e67696c6c612e204675007363652068656e64726572697420656666696369747572206661756369627500732e20416c697175616d2070757275732061756775652c206c756374757320006e6f6e20636f6e76616c6c697320717569732c206d6178696d7573206e6f6e00206475692e0a0a446f6e65632070656c6c656e74657371756520657261742000657520657374206c6163696e696120616363756d73616e2e2050726f696e20006d6f6c6c69732073656d20646f6c6f722c206964206d6f6c6c6973206c656300747573207669766572726120696e2e204e756e632071756973206d6173736100207661726975732c206665726d656e74756d206c656f2076697461652c206c006f626f72746973206e657175652e205175697371756520756c6c616d636f7200706572206a7573746f20766974616520636f6e67756520656c656966656e64002e20457469616d206574206c61637573206573742e20496e7465676572207400757270697320617263752c20616363756d73616e2076656c20697073756d2000656765742c206d616c65737561646120756c6c616d636f72706572206a757300746f2e204d6175726973206e6f6e2065782074696e636964756e742c20756c00747269636573206c616375732061742c20626c616e646974206f64696f2e2000566573746962756c756d2067726176696461206e65632073617069656e206e006563206469676e697373696d2e2053757370656e64697373652074656d706f007220696e206e69736c2076656c206d6f6c6c69732e204d616563656e6173200067726176696461206c616375732074656c6c75732c20657420756c7472696300696573206e756c6c612074696e636964756e7420612e20416c697175616d20006572617420766f6c75747061742e20446f6e65632065726f73206c6563747500732c206469676e697373696d2069642073617069656e2061742c20706c6163006572617420666163696c697369732070757275732e20566976616d757320700072657469756d2c206d69206120756c6c616d636f727065722074696e63696400756e742c206475692074656c6c757320626c616e646974206d617373612c20006e65632066696e6962757320657374206e69736c2071756973206e6962682e0020467573636520646170696275732064756920696e20636f6e73656374657400757220706c6163657261742e20467573636520736f6c6c696369747564696e00206567657374617320657261742c2073697420616d657420616363756d7361006e206c656f2074696e636964756e7420696e2e204d6f7262692065666669630069747572206d61757269732069642064696374756d20666163696c69736973002e0a0a55742075726e61206d61676e612c20706f72747469746f722061632000656666696369747572206e6f6e2c20656666696369747572206174206d61730073612e2041656e65616e2073656420656c6974206e6f6e2065782073757363006970697420616363756d73616e2e20416c697175616d207669746165206c65006f2073616769747469732c2067726176696461206c6967756c612065742c200070756c76696e617220646f6c6f722e20457469616d20616320746f72746f7200206c6f72656d2e2050686173656c6c7573206567657374617320696163756c00697320677261766964612e204e756e63206e6f6e206e756e63206e6962682e0020566976616d757320766974616520617563746f722073617069656e2e20430072617320706f7375657265206e756c6c61206f64696f2c20657520706f727400612065782076656e656e6174697320612e204e616d207269737573206e65710075652c20657569736d6f642075742063757273757320656765742c2066617500636962757320736f6c6c696369747564696e20746f72746f722e2043757261006269747572207574206d65747573206e6f6e206469616d20617563746f72200074696e636964756e742e20496e7465676572206d616c65737561646120707200657469756d2076656e656e617469732e20566976616d75732072686f6e637500732074696e636964756e74206c6f72656d207175697320756c74726963696500732e2050686173656c6c7573206f726e6172652065726f732065742068656e0064726572697420636f6d6d6f646f2e0a0a4375726162697475722069616375006c697320636f6e7365717561742073656d20717569732070656c6c656e746500737175652e2050726f696e206d617474697320656e696d20696e2065737420007361676974746973207661726975732e204d6f726269206e65632074696e63006964756e742076656c69742c206575206469676e697373696d20657261742e0020416c697175616d206572617420766f6c75747061742e205072616573656e00742066696e696275732074656c6c757320696e2068656e6472657269742076006573746962756c756d2e20437572616269747572206d6f6c6c69732074656c006c7573206d692c206e6563206d616c6573756164612076656c6974207375730063697069742061742e205365642065726174206e657175652c207275747275006d20736564206665726d656e74756d2076656c2c2070656c6c656e74657371007565206e6f6e20616e74652e204e616d20736f64616c65732070756c76696e006172206c6f72656d2c2065742074696e636964756e74206d6173736120646900676e697373696d2061632e20457469616d206d61737361207175616d2c2076006f6c7574706174206574206c6f626f727469732073697420616d65742c207600656e656e6174697320696420656e696d2e0a0a446f6e656320706f72746120006e69736c20657520697073756d20706f72747469746f722c2065676574207000756c76696e6172206c6f72656d206d6178696d75732e205574206163206e6500717565206c6f72656d2e204e756c6c612061206c6f72656d2065676574206c00656f206d6f6c6c6973206469676e697373696d2e20566573746962756c756d0020696d706572646965742073656d706572206c65637475732e204e756c6c6100206574206469616d206574206e756c6c61206f726e61726520736f6c6c69630069747564696e2e2050726f696e206120746f72746f7220636f6d6d6f646f2c00207665686963756c61206a7573746f2061742c2074696e636964756e74207300617069656e2e2043757261626974757220657569736d6f642076697665727200612072686f6e6375732e204e756e6320766172697573206f726369206e656300206d6173736120766976657272612c2065676574206c7563747573206c616300757320756c7472696365732e20437572616269747572206375727375732065006c697420646f6c6f722e20467573636520616c6971756574206f726e617265002065726f732c20612067726176696461206578206d616c657375616461207600656c2e204e616d206163206d61676e6120636f6e7365717561742c2076617200697573206d61757269732065752c206665726d656e74756d206c696265726f002e0a0a5072616573656e7420657420646f6c6f722074656d706f7220647569002074696e636964756e742064696374756d2e2050656c6c656e74657371756500206d6178696d757320697073756d20657520656765737461732074656d707500732e20467573636520616c697175616d20696d7065726469657420616e74650020657420626c616e6469742e204d61757269732068656e647265726974206c006f626f72746973206c616f726565742e2041656e65616e20706f7274612076006f6c757470617420697073756d2c206120736f6c6c696369747564696e20610072637520756c6c616d636f72706572206e6f6e2e20536564207661726975730020706c61636572617420656e696d206575207072657469756d2e20496e206a007573746f20617263752c20656c656d656e74756d20757420616c6971756574002065752c206c616f72656574206964206c656f2e20496e7465676572207365006420617263752061206469616d206c75637475732072686f6e6375732e20550074206567657420636f6e677565206d657475732c2069642072757472756d20006c65637475732e0a0a4d6f726269207665686963756c6120616363756d7361006e206e69736c2c20617420706f727461206c616375732066617563696275730020656765742e2053757370656e64697373652076756c707574617465206d6900206e6f6e20766f6c757470617420666575676961742e2051756973717565200064696374756d20706f72747469746f72206f64696f2073697420616d65742000636f6e6775652e2041656e65616e20657569736d6f64207072657469756d2000656c697420706f72747469746f722066696e696275732e204d616563656e610073207365642076756c7075746174652072697375732e2041656e65616e206500726f7320656e696d2c2076656e656e6174697320696420636f6e7365717561007420612c2072686f6e637573206f726e6172652073656d2e20517569737175006520626962656e64756d20766f6c757470617420616e74652c20616320706f0073756572652073617069656e20737573636970697420656666696369747572002e204e756c6c61206f726e617265206e696268206163206d6175726973207600756c7075746174652c206e6f6e207068617265747261206469616d2076697600657272612e20436c61737320617074656e742074616369746920736f63696f00737175206164206c69746f726120746f727175656e742070657220636f6e7500626961206e6f737472612c2070657220696e636570746f732068696d656e6100656f732e2050726f696e20617420766573746962756c756d2076656c69742e002053656420766976657272612076656e656e61746973206d692c207574206d00616c657375616461206e756c6c612e204475697320706861726574726120690064206e69626820617420636f6e6775652e20536564206c6163696e6961206500726f732061206572617420766976657272612c20612074696e636964756e740020617567756520616363756d73616e2e2050656c6c656e746573717565206c006f626f7274697320616363756d73616e2073656d2c2065676574206d616c65007375616461206e756c6c61206665726d656e74756d2073697420616d65742e0020496e20616363756d73616e206c616f72656574206e69736c2076697461650020666575676961742e20416c697175616d206572617420766f6c7574706174002e0a0a4475697320696420616e7465206c6967756c612e2050686173656c6c00757320736167697474697320706c61636572617420706f73756572652e204d00616563656e61732076697461652076697665727261206c616375732c206d6f006c6c6973206d616c657375616461206c65637475732e2050656c6c656e7465007371756520696e20657374206c6163696e69612c20656c656d656e74756d20006e756e6320656765742c2070656c6c656e746573717565206a7573746f2e20005175697371756520636f6e67756520747572706973206e6f6e206f64696f2000626c616e64697420736167697474697320677261766964612065742069707300756d2e204e756c6c616d206c6f626f72746973206e6571756520616320656c00697420636f6e76616c6c697320616363756d73616e2073697420616d6574200070756c76696e6172206d617373612e20446f6e656320657520636f6d6d6f64006f20616e74652c2073697420616d657420756c6c616d636f7270657220646f006c6f722e2044756973206d6175726973206c6967756c612c20656c656d656e0074756d2061742066617563696275732061632c20616c697175616d20696e200066656c69732e205072616573656e74206c6f626f72746973206578207369740020616d6574206e69736c20756c74726963696573206c6163696e69612e2056006976616d757320617563746f722c2073656d20717569732076657374696275006c756d207363656c657269737175652c2073617069656e206e69736c207275007472756d206c696265726f2c2073697420616d657420696e74657264756d20006e69736c206a7573746f207669746165206c65637475732e20566976616d75007320696d70657264696574206e756c6c6120657520657261742076656e656e00617469732c20736564206d6f6c657374696520646f6c6f7220766568696375006c612e20517569737175652076656c2061726375207365642073656d207365006d706572206375727375732e2050656c6c656e746573717565206d61747469007320656c656966656e64207269737573206574206d6f6c6c69732e20557420006c6f626f727469732c2065737420736564206665726d656e74756d2073656d007065722c2075726e612072697375732064617069627573206475692c2061200074656d707573206d6175726973206e69736c206174206469616d2e2056697600616d7573206469676e697373696d20666163696c6973697320636f6e7365630074657475722e20496e20706f737565726520736f6c6c696369747564696e2000656c656d656e74756d2e0a0a457469616d20697073756d206573742c206d61006c657375616461206120666575676961742073697420616d65742c206d6f6c00657374696520656765742066656c69732e2041656e65616e2074656d70757300206672696e67696c6c61206469616d20696e20616c697175616d2e20446f6e0065632073697420616d65742072757472756d206469616d2e2050686173656c006c757320756c6c616d636f72706572206d617474697320616363756d73616e002e2053757370656e646973736520616c6971756574207669746165206e6973006920616320766f6c75747061742e2050726f696e207075727573206d6175720069732c20696d706572646965742073697420616d657420647569206e6f6e2c00207665686963756c6120637572737573206f7263692e20446f6e6563206574002074656c6c7573206574206d6574757320766573746962756c756d20656c65006d656e74756d206163206d6f6c6c6973206a7573746f2e2050656c6c656e74006573717565206c6967756c61206e69736c2c20616c697175616d206163206c006967756c6120706f73756572652c20656c656d656e74756d2068656e64726500726974206d61757269732e204d617572697320666163696c69736973206665006c697320696e2072757472756d20696163756c69732e204e756e632066657500676961742073656d20612068656e6472657269742072757472756d2e20496e007465676572206d6f6c65737469652064696374756d2066696e696275732e200041656e65616e206e656320766f6c7574706174206c6967756c612e205175690073717565206d617373612070757275732c2070686172657472612075742069006163756c6973207365642c20706f72747469746f7220616320616e74652e2000416c697175616d206d6173736120656e696d2c2076756c707574617465206e006563206d692069642c20756c6c616d636f72706572206665756769617420740075727069732e0a0a4e756e63207669766572726120647569206c6f72656d2c002073697420616d657420656666696369747572206d65747573207375736369007069742076656c2e20566573746962756c756d2073697420616d657420706f0072747469746f722065782e205574206d616c657375616461206c656374757300206e6563206d65747573206672696e67696c6c612c206e65632073656d706500722075726e61206d616c6573756164612e20557420756c6c616d636f7270650072206e697369206174206e69736c20696d706572646965742070756c76696e0061722e20566573746962756c756d2065726f7320646f6c6f722c20766f6c750074706174206964206f64696f2069642c2074656d70757320636f6e76616c6c0069732072697375732e2043726173206575206661756369627573206c69626500726f2e2050656c6c656e74657371756520696163756c69732076657374696200756c756d20646f6c6f72206964206566666963697475722e204675736365200061206e756e6320717569732075726e61206469676e697373696d2064617069006275732e2050726f696e2076656c20696163756c69732073656d2c2061742000636f6e76616c6c6973206475692e20496e2069642066656c69732074656c6c0075732e20446f6e6563207068617265747261206d6f6c65737469652061726300752c2061206d616c6573756164612065737420677261766964612069642e0a000a5175697371756520616c6971756574206c6967756c61207574206f7263690020706f73756572652c207365642074696e636964756e74206d61676e612075006c747269636965732e204d616563656e61732073697420616d657420756c6c00616d636f72706572207475727069732e20536564206e6563206d6f6c657374006965207175616d2e20566976616d7573206d617474697320636f6e64696d65006e74756d206f7263692c206e6f6e206375727375732066656c69732074656d007075732065752e2053656420656765742072697375732075726e612e2056690076616d7573206f726e61726520756c6c616d636f7270657220617263752061006320616c69717565742e205072616573656e74206d616c657375616461207000756c76696e6172206c65637475732c2073697420616d65742064696374756d00207269737573206d616c6573756164612061742e204e756c6c612061206d61006c657375616461206c65637475732c2065676573746173206d616c657375610064612066656c69732e20496e20696420696e74657264756d206e756e632e2000496e746567657220666163696c69736973206469676e697373696d20616e74006520717569732070686172657472612e0a0a446f6e65632070656c6c656e7400657371756520656e696d20766974616520616e746520756c7472696365732c0020617420657569736d6f64206d617373612066696e696275732e20517569730071756520636f6e67756520756c7472696369657320706f72747469746f722e002043757261626974757220756c7472696369657320626c616e64697420637500727375732e204675736365206567657420647569206375727375732c2070680061726574726120617263752076656c2c20706c616365726174207075727573002e2043726173206e6563206d6175726973206c656f2e204e616d20707265740069756d207072657469756d20766f6c75747061742e2050686173656c6c757300206e657175652074656c6c75732c206672696e67696c6c612073697420616d00657420666163696c6973697320717569732c20616363756d73616e20736365006c657269737175652073656d2e204e756e632076697461652066656c69732000736564206d6173736120756c747269636965732064617069627573206e6f6e0020657520656e696d2e20496e20706f72747469746f722074656d706f72206e0069736c2c206567657420666163696c697369732075726e612066696e69627500732076697461652e205365642070656c6c656e746573717565206e656320740075727069732075742073656d7065722e205072616573656e74206566666963006974757220656c656966656e64206f64696f2e0a0a4e756c6c612061756374006f7220636f6e64696d656e74756d206e756c6c612e204d616563656e617320006d616c657375616461206d61757269732061206c6967756c6120756c7472690063657320636f6d6d6f646f2065742076656c206469616d2e2053757370656e00646973736520696e74657264756d2074696e636964756e74206c6967756c61002c206120626962656e64756d206d6920696163756c697320612e2053656420006d616c657375616461206d657475732076656c206c696265726f206469676e00697373696d2c2073697420616d657420636f6e677565207175616d2074696e00636964756e742e204375726162697475722066696e696275732074696e63690064756e742073616769747469732e20517569737175652073617069656e2065006e696d2c20736f64616c6573206163206469616d20612c206469676e69737300696d206c6163696e69612074656c6c75732e20446f6e65632065666669636900747572206c616375732072686f6e637573206672696e67696c6c6120636f6d006d6f646f2e20496e20696420656c69742076656c206c6f72656d20736167690074746973206f726e6172652e204372617320757420646f6c6f72206c696775006c612e2053656420656c656966656e64206c656374757320766172697573200066696e696275732072757472756d2e204675736365206e6563206175677565002061206a7573746f207661726975732074656d706f722073656420766974610065206c6f72656d2e204d6175726973206174206c696265726f20696e2065730074206375727375732064696374756d2075742076697461652065726f732e200050686173656c6c75732072757472756d2c206c65637475732076697461652000696e74657264756d20626c616e6469742c206c6f72656d2075726e61207669007665727261206d617373612c2071756973207363656c65726973717565206600656c6973206c6563747573206574206f64696f2e204d61757269732066616300696c69736973206c656f207475727069732c20696d70657264696574206665007567696174206475692074656d706f722073697420616d65742e0a0a4d61650063656e61732061206c656f2061756775652e20437572616269747572206e6f006e20697073756d2073697420616d657420656c6974206c616f72656574207600656e656e617469732065676574206e6f6e206d61676e612e204375726162690074757220616c697175616d20696163756c697320706f72747469746f722e2000536564206163206c6f72656d206120646f6c6f7220616c6971756574206c7500637475732e2050726f696e206c6163696e696120697073756d20616e74652c002073697420616d657420696d70657264696574206c6563747573206469676e00697373696d20656765742e20566573746962756c756d20656666696369747500722073697420616d65742073656d207175697320736f64616c65732e2056690076616d75732070756c76696e6172207068617265747261206e69736c2076690074616520616363756d73616e2e204475697320696e74657264756d20636f6e00677565207661726975732e20446f6e65632061207361676974746973206e690073692c207175697320656c656d656e74756d206475692e20536564206c756300747573206c616f72656574206c656f206567657420756c7472696365732e0a000a446f6e6563206120617567756520656765737461732c2076756c70757461007465206573742076656c2c206c616f72656574206c616375732e20416c69710075616d20646f6c6f7220646f6c6f722c20706c61636572617420696e2065670065737461732073697420616d65742c20616c69717565742061206f7263692e0020496e2076756c70757461746520626c616e64697420656c69742c2068656e0064726572697420636f6d6d6f646f2075726e6120626962656e64756d206575002e20457469616d20617567756520616e74652c206d6f6c6573746965207175006973206f64696f2065752c2074656d70757320636f6d6d6f646f206e696268002e205574206d6174746973206c6163696e69612073617069656e2075742064006170696275732e20457469616d20636f6e736571756174206e6f6e206f6469006f2071756973206375727375732e204e756e6320616c69717565742062696200656e64756d20646f6c6f722065752073656d7065722e20566976616d757320006163206d692073697420616d65742061726375206c6163696e6961207275740072756d2073697420616d65742061206e756c6c612e2050686173656c6c75730020657261742072697375732c206c75637475732065676574206c6f72656d200076697461652c206d616c65737561646120626962656e64756d206d65747573002e204e616d206964206d617474697320656e696d2c206665756769617420730061676974746973206d657475732e2050686173656c6c7573206c7563747573002074757270697320657261742c20657420766172697573206d61676e61207200686f6e6375732069642e0a0a437261732076617269757320736167697474690073206f64696f20757420677261766964612e20536564206f726e6172652070006f7274612076756c7075746174652e20496e746567657220706f7375657265002061726375206c6f72656d2c206964207363656c657269737175652073656d002065666669636974757220612e205365642076656c20617563746f722069700073756d2e2050656c6c656e7465737175652069642065726f73206574206c6f0072656d20616363756d73616e20616363756d73616e20656765742071756973002065726f732e204e756e632063757273757320636f6e64696d656e74756d20006d692c206e65632066617563696275732070757275732070756c76696e6172002070686172657472612e205365642073656420736f64616c6573206e756e63002e2046757363652070756c76696e617220756c747269636573206d692c206900642072757472756d206d69206672696e67696c6c612061632e205365642069007073756d207175616d2c20756c74726963696573207669746165206c616369006e69612076697461652c206665726d656e74756d206e6f6e206d6175726973002e205072616573656e74206461706962757320756c6c616d636f7270657220006c6967756c612c206567657420756c6c616d636f727065722073656d2064610070696275732065752e2046757363652073697420616d65742076657374696200756c756d206c616375732e205072616573656e74207365642074726973746900717565206c616375732c2076656c2070756c76696e6172206573742e0a0a460075736365206e6563206e6571756520646f6c6f722e20566573746962756c75006d20616c697175616d206c6967756c612075742064696374756d2073656d700065722e20457469616d206d616c657375616461206d6574757320656765742000656c697420636f6e64696d656e74756d20636f6e7365717561742e205375730070656e646973736520736167697474697320656e696d207175616d2c20696e0020756c74726963696573206c656f206461706962757320717569732e205065006c6c656e7465737175652063757273757320766172697573206e6973692c200076656c20736167697474697320656c6974206d6178696d7573206e6f6e2e200053757370656e646973736520746f72746f72206f64696f2c207068617265740072612076656c206475692061632c20656c656d656e74756d2076756c707574006174652074656c6c75732e20416c697175616d20696420666163696c69736900732065782e2044756973206e6563206672696e67696c6c61206e69736c2e2000467573636520736564206672696e67696c6c612065782e20467573636520750074206d6175726973206574207175616d207669766572726120696e7465726400756d20612061742065726f732e20416c697175616d20616363756d73616e2000657261742075742074656c6c7573206469676e697373696d20696163756c6900732073656420657420746f72746f722e2050726f696e20736564206175677500652073697420616d6574206d657475732072757472756d20677261766964610020696e2076656c206e69736c2e20496e746567657220706f73756572652061007263752069642065726f73206665726d656e74756d2074656d706f722e0a0a00557420756c74726963657320697073756d206f7263692e204d61757269732000617563746f72206d6178696d75732072697375732c20717569732066696e6900627573206e756c6c612065666669636974757220696e2e204e616d20756c74007269636573206e6571756520616320657820666163696c697369732c20696e002074656d707573206c6967756c61206c6f626f727469732e204372617320700068617265747261206c6f72656d20696e74657264756d206e65717565206865006e64726572697420617563746f722e2050686173656c6c7573206e6f6e207200757472756d206c696265726f2c20617420736f64616c657320697073756d2e0020496e20756c6c616d636f72706572206578206c65637475732c207369742000616d6574207068617265747261206e756c6c6120636f6e76616c6c6973207200686f6e6375732e2053757370656e6469737365206e6f6e20656c6974206c6f0072656d2e205072616573656e7420756c6c616d636f72706572206e756c6c61002076656c20637572737573206469676e697373696d2e2041656e65616e2073006f64616c657320746f72746f72206f64696f2c20617420656c656966656e6400206c6967756c61206469676e697373696d2073697420616d65742e2044756900732076656c20736f6c6c696369747564696e2074656c6c75732e204d61656300656e617320717569732070656c6c656e746573717565206475692e204d6175007269732071756973207361676974746973206e756e632e2044756973207275007472756d206d616c657375616461206c6967756c612065752070756c76696e0061722e0a0a41656e65616e206772617669646120706f727461207175616d20007365642070656c6c656e7465737175652e2050656c6c656e7465737175652000766573746962756c756d20626962656e64756d207472697374697175652e2000566573746962756c756d20696e206572617420656e696d2e2050726f696e200065726f73206f7263692c2072686f6e63757320616320616c697175616d206e006f6e2c207072657469756d2061206f7263692e20566573746962756c756d200074656d7075732c2076656c6974206d616c657375616461206c6163696e69610020646170696275732c2075726e61206c6f72656d206672696e67696c6c6120006d617373612c20696e206d6178696d757320656e696d20656e696d20657420006e69736c2e204e616d207669766572726120636f6e64696d656e74756d206c006967756c6120696e20696d706572646965742e20536564207175697320656c00656d656e74756d206a7573746f2e204e756c6c61206f726e61726520636f6e00736563746574757220656e696d2061742074696e636964756e742e2045746900616d2073697420616d6574206c616f7265657420697073756d2e0a0a45746900616d20666163696c697369732065737420706f72747469746f722c2066696e00696275732066656c69732065742c207375736369706974206c65637475732e002041656e65616e20706c616365726174206567657374617320616c6971756500742e204d617572697320657420656e696d206c65637475732e204d61656365006e61732070656c6c656e746573717565206d6f6c6c6973206d69206469637400756d20636f6e6775652e205072616573656e742076656c2066656c6973206c00616f726565742c20636f6e7365637465747572206e756c6c61206e6f6e2c2000666575676961742074656c6c75732e2053656420616c697175616d2076656c006974207365642073656d20706c616365726174207361676974746973206174002073697420616d6574206c696265726f2e2051756973717565206d6174746900732072757472756d20656e696d2c2073656420656c656d656e74756d207665006c69742e2050686173656c6c7573206e6f6e206c616f72656574206f64696f002e2043757261626974757220656c656966656e64206f64696f207369742061006d657420756c7472696369657320756c6c616d636f727065722e20496e20650067657420726973757320756c7472696365732c207665686963756c61206c65006374757320696e2c20616c6971756574207475727069732e0a0a5068617365006c6c7573206e6f6e206d6574757320617563746f722c20636f6e736563746500747572206e69736c2061742c207361676974746973207175616d2e20507261006573656e7420746f72746f722074656c6c75732c2074656d706f72206e6f6e002070686172657472612069642c207661726975732061742070757275732e2000536564206120636f6e64696d656e74756d206e6962682e205072616573656e0074206c656f206e756e632c20756c6c616d636f72706572207665686963756c006120766573746962756c756d2074696e636964756e742c206665726d656e7400756d20757420616e74652e20496e206f726e617265206c61637573206e6f6e00206c696265726f20736f6c6c696369747564696e2c206575206665756769610074206e756c6c6120626c616e6469742e2050656c6c656e74657371756520680061626974616e74206d6f726269207472697374697175652073656e656374750073206574206e65747573206574206d616c6573756164612066616d6573206100632074757270697320656765737461732e204e756e632065676574206e756e00632073697420616d6574206d61757269732070686172657472612076657374006962756c756d20657520766974616520656e696d2e20496e20766f6c7574700061742073617069656e2065676574206c65637475732074696e636964756e740020766f6c75747061742e20416c697175616d207365642076697665727261200075726e612e204675736365206c6563747573206d657475732c20756c747269006365732076656c20657569736d6f642065742c20616c6971756574207365640020746f72746f722e2050686173656c6c757320626c616e6469742070656c6c00656e74657371756520756c747269636965732e204f7263692076617269757300206e61746f7175652070656e617469627573206574206d61676e697320646900732070617274757269656e74206d6f6e7465732c206e6173636574757220720069646963756c7573206d75732e204e756c6c61206469676e697373696d2c200076656c6974207175697320666163696c697369732072686f6e6375732c206e00756c6c612066656c697320747269737469717565206d61757269732c2065750020636f6d6d6f646f206c656f206f726369206174206e6973692e2046757363006520636f6e736563746574757220746f72746f7220657420706861726574720061207665686963756c612e204e756e63207665686963756c612c206d65747500732073697420616d657420657569736d6f642064696374756d2c20646f6c6f0072206d6574757320616363756d73616e206573742c20696e20696163756c690073206d61737361206c696265726f206e6f6e206c65637475732e0a0a496e2000617420636f6e736571756174207475727069732e204675736365206d69206e00756c6c612c206672696e67696c6c6120757420766172697573207669746165002c20747269737469717565206174206e6973692e204e756c6c61206964206d00692065726f732e204d6f726269206469616d20616e74652c2076656e656e610074697320696e2073757363697069742076656c2c2074696e636964756e7420007669746165206f64696f2e204d61757269732068656e647265726974206e6f006e206172637520696420636f6e73656374657475722e205072616573656e740020616c697175616d206e756e632076656c206d61676e61207665686963756c006120616c69717565742e204e616d20636f6e7365637465747572206e756c6c006120717569732075726e6120696163756c697320756c6c616d636f72706572002070656c6c656e74657371756520657420617263752e20496e746567657220006163206c616f726565742076656c69742e2050656c6c656e7465737175652000757420616e7465207175616d2e20566976616d75732061206d617474697320006c656f2c2069642074656d707573206d692e204675736365207363656c657200697371756520646170696275732070757275732073656420616c697175616d002e0a0a46757363652076656c20656e696d2070656c6c656e7465737175652c0020656c656d656e74756d206469616d2065752c2076756c707574617465207600656c69742e204e756e63206c696265726f2074656c6c75732c20656c656d65006e74756d206964207175616d2073697420616d65742c20617563746f722070006f72747469746f722070757275732e204c6f72656d20697073756d20646f6c006f722073697420616d65742c20636f6e7365637465747572206164697069730063696e6720656c69742e20457469616d206d6f6c6573746965206e756e632000736f64616c657320636f6d6d6f646f20696163756c69732e204e616d20717500697320656c69742061206c696265726f20616c697175657420636f6e64696d00656e74756d207669746165206163206d692e20457469616d20756c7472696300657320756c74726963696573206d61676e6120766974616520706f7375657200652e20566976616d757320757420657569736d6f642076656c69742e20437200617320736f64616c6573206c6163696e6961206d61676e612c207175697320006665726d656e74756d20657261742064696374756d2073697420616d65742e002046757363652074696e636964756e74206c696265726f206574206e657175006520747269737469717565206375727375732e204372617320616320646f6c006f72206c6967756c612e2050726f696e206567657420696d7065726469657400206d61757269732e20416c697175616d206469616d20646f6c6f722c2066610063696c697369732076656c206e69626820656765742c20636f6e7365717561007420766573746962756c756d206c696265726f2e20437572616269747572200076756c7075746174652066617563696275732061756775652065676574207300757363697069742e204e756e632074696e636964756e742074656c6c757320007574206d6f6c6c6973206d6178696d75732e2050726f696e2076657374696200756c756d206c616f726565742073617069656e2c206e6563206672696e6769006c6c61206e6973692074656d70757320696e2e0a0a566573746962756c756d0020616e746520697073756d207072696d697320696e20666175636962757320006f726369206c756374757320657420756c74726963657320706f73756572650020637562696c69612063757261653b20566573746962756c756d2066616369006c697369732c20707572757320657520706f7375657265206c6163696e6961002c20707572757320657374206c616f72656574206e69736c2c206e65632076006f6c757470617420616e746520657261742076697665727261206e756c6c61002e204e756c6c6120666163696c6973692e20496e206e656320706f72746120006d657475732e20446f6e656320666163696c6973697320646f6c6f72207369007420616d6574206f64696f20616c697175616d2c206567657420706f7274740069746f7220697073756d2076756c7075746174652e204d6175726973207665006e656e61746973206d61676e61206575206578206f726e6172652c2069642000736f6c6c696369747564696e20616e746520636f6e6775652e2050656c6c65006e7465737175652075726e61206f7263692c20756c747269636965732076690074616520706f73756572652075742c20756c7472696365732071756973207400656c6c75732e20536564206e6f6e20656c656966656e64206d692c20657520007472697374697175652073656d2e2041656e65616e2074656d707573206d61007373612065752067726176696461206d616c6573756164612e2050726f696e00206e65632076756c707574617465206e756e632e204e756e63206d616c657300756164612c206469616d206e6f6e20636f6d6d6f646f2064696374756d2c20007175616d206e69736c2074696e636964756e74206c616375732c207369742000616d65742066657567696174206c6f72656d206e756c6c61206e65632069700073756d2e0a0a4d617572697320736564206d6574757320617420646f6c6f720020636f6e64696d656e74756d20636f6e73657175617420616363756d73616e0020616320646f6c6f722e2053757370656e6469737365206c75637475732062006c616e6469742065782c20617420656c656d656e74756d206d69206469637400756d2065752e20416c697175616d2074696e636964756e7420656c656d656e0074756d206d61676e6120766974616520616c69717565742e20446f6e65632000696e206f726e617265206d61757269732e20496e206c6163696e6961207369007420616d6574206e756c6c61207669746165206665726d656e74756d2e2044006f6e6563206e6563206665726d656e74756d2075726e612c20617420667269006e67696c6c612076656c69742e20416c697175616d206572617420766f6c7500747061742e20566573746962756c756d2073656420747572706973206e65710075652e20496e74656765722076656c20737573636970697420747572706973002e20536564206e656320636f6e64696d656e74756d206e657175652e204165006e65616e20636f6e76616c6c697320766f6c757470617420706f7375657265002e2050686173656c6c7573206c6f626f72746973206c6967756c612076656c002072686f6e637573206c616f726565742e2041656e65616e2065676574206500737420696163756c69732c2076656e656e61746973206f64696f2075742c200064696374756d2074656c6c75732e2044756973207669746165206572617420007669746165206e69736920637572737573206d61747469732e204e756e632000626c616e6469742070656c6c656e7465737175652072697375732c206c7563007475732074696e636964756e74206d61676e6120706f7274612061632e204300726173207669766572726120616c697175657420706f73756572652e0a0a4c006f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e7300656374657475722061646970697363696e6720656c69742e204e756c6c616d00206575206c61637573206c65637475732e20467573636520612074656c6c750073206c616375732e20496e74657264756d206574206d616c657375616461200066616d657320616320616e746520697073756d207072696d697320696e206600617563696275732e204e756c6c616d2070656c6c656e746573717565206c6f0072656d207175616d2c2076656c2074656d706f7220746f72746f7220707265007469756d2076697461652e20566573746962756c756d20736f6c6c69636974007564696e2071756973206d692061632072757472756d2e20496e746567657200206469676e697373696d206c696265726f20616c697175616d206672696e6700696c6c6120616363756d73616e2e20446f6e656320666163696c697369732000647569206e6f6e206c656f2074656d707573206c75637475732e2053656420006d616c657375616461207665686963756c6120756c7472696365732e2055740020616e746520616e74652c20616c69717565742073697420616d657420736f006c6c696369747564696e2066696e696275732c20626c616e64697420756c740072696365732061756775652e20536564206e6563206e6973692071756973200076656c697420636f6e64696d656e74756d20677261766964612e2041656e6500616e20616c697175657420657569736d6f64206475692c20757420766568690063756c6120697073756d2066617563696275732065752e0a0a4675736365200076656c69742073617069656e2c2073656d706572206574206469676e69737300696d2076656c2c20696163756c69732069642076656c69742e20507261657300656e74206e6f6e206e69736c206567657420616e746520736f6c6c69636974007564696e2072757472756d206e6563206e6563206573742e205365642076690076657272612066656c6973206e69736c2c206e65632065676573746173206500737420736f64616c65732065742e204e616d20636f6e67756520617567756500207375736369706974206578206c616f7265657420706f72747469746f722e0020467573636520626962656e64756d20697073756d206e657175652c20616300206d6178696d757320646f6c6f72206672696e67696c6c612075742e2043750072616269747572206120636f6e736571756174206c6967756c612e204e616d0020766f6c757470617420636f6e736571756174206c696265726f2065752062006c616e6469742e204e616d20696e74657264756d2074656c6c757320757420006f64696f20636f6e736571756174206f726e6172652e204e756c6c612066610063696c6973692e204d616563656e6173206c756374757320616e7465206567006574206f64696f20636f6e64696d656e74756d206672696e67696c6c612e2000496e74656765722065676574206d61676e612073697420616d6574206d6167006e61206665726d656e74756d20677261766964612e0a0a4d6f72626920736f0064616c65732076656c6974206e6973692c2061206d6178696d7573206475690020656c656966656e64206e6f6e2e204d61757269732070757275732065726f00732c20617563746f722075742066696e6962757320656765742c20756c7472006963696573207175697320657261742e2041656e65616e207361676974746900732074757270697320696e206f72636920706f7274612c20696420706861720065747261206578206566666963697475722e20467573636520617420636f6e0067756520657261742e20566573746962756c756d206c756374757320656e69006d206665726d656e74756d206c656f2064696374756d20747269737469717500652e20446f6e6563206e65632066656c69732073697420616d6574206475690020706f72747469746f7220656c656d656e74756d2e205072616573656e7420006c616f726565742c2066656c6973207669746165207472697374697175652000626962656e64756d2c206c6f72656d206e6962682070656c6c656e746573710075652073617069656e2c20736564207363656c65726973717565206c6f7265006d206e6962682076656c2073656d2e204675736365206e6f6e2076656e656e0061746973206e657175652e20446f6e6563207363656c6572697371756520640069676e697373696d20726973757320696420706f7274612e0a0a5375737065006e64697373652072686f6e637573206c696265726f2076656c2066656c697300206c6163696e69612074656d7075732e2046757363652064696374756d206e006571756520736564206e69626820677261766964612c20626962656e64756d00206c6f626f727469732075726e6120616c69717565742e204375726162697400757220657420657569736d6f6420656e696d2e2050656c6c656e7465737175006520696d70657264696574206175677565206c6f72656d2c2075742068656e00647265726974206e657175652073656d7065722076656c2e2050686173656c006c757320636f6d6d6f646f20647569206e6f6e206c6f626f72746973207665006e656e617469732e2043726173207669766572726120736167697474697320006e69736c2c207669746165206c6f626f72746973206d6574757320756c747200696369657320696e2e20416c697175616d207669746165206469676e69737300696d2070757275732c206661756369627573207072657469756d207269737500732e205072616573656e74206163206d61676e6120617563746f722c206d61006c657375616461206e756c6c61206c6f626f727469732c20636f6d6d6f646f00206475692e205072616573656e7420617420746f72746f7220697073756d2e002046757363652074656d7075732c2066656c697320696e20616363756d7361006e2066617563696275732c206c696265726f20656e696d206d6f6c6c69732000656e696d2c20696420656c656d656e74756d206d65747573207075727573200061206d61676e612e204375726162697475722073697420616d657420636f6e0064696d656e74756d2075726e612e20496e2075726e612066656c69732c2063006f6e64696d656e74756d207669746165206e756c6c612065752c20706f73750065726520636f6e64696d656e74756d206e6962682e2050656c6c656e746573007175652067726176696461206f64696f20656c69742c2076656c20616c69710075657420726973757320636f6e7365637465747572206e6f6e2e204d61656300656e61732074656d706f722c206d61676e612061632070686172657472612000616c697175616d2c20616e7465206c6967756c61206665756769617420717500616d2c206575206d6174746973206e756c6c61206e69736c206e6f6e206d61007373612e0a0a496e746567657220756c74726963657320736f64616c657320006a7573746f2e20416c697175616d20626962656e64756d207068617265747200612072697375732c2061632076697665727261206e69736920616363756d7300616e2075742e20457469616d2067726176696461206665726d656e74756d20006d6920696e207363656c657269737175652e20467573636520696e7465726400756d2c206c656f207175697320626962656e64756d206d61747469732c206a007573746f206d65747573206672696e67696c6c6120656c69742c2061632070006c61636572617420747572706973206469616d206661756369627573206e6900736c2e20457469616d206c616f72656574206c696265726f206c6f72656d2c002076656c2074656d707573206f64696f206469676e697373696d2065742e20004e756c6c6120666163696c6973692e20496e7465676572206461706962757300206d6f6c657374696520656e696d2c2061632074696e636964756e74207361007069656e20636f6e76616c6c69732075742e2043726173206d6f6c6c69732000636f6e736563746574757220666163696c697369732e2043757261626974750072207472697374697175652c20726973757320706f72747469746f72207675006c70757461746520756c7472696365732c206c6f72656d2073656d20646967006e697373696d206e657175652c20657520706f72747469746f72206d61676e0061206e697369207669746165207475727069732e20446f6e656320636f6e7300657175617420657374206575206469616d20666575676961742c2076656c2000766573746962756c756d206469616d206c6163696e69612e20457469616d2000756c747269636573206c65637475732073697420616d6574206f726369207300616769747469732c2076656c20616c69717565742065726f73206c6163696e0069612e20496e74656765722070686172657472612c20617263752065752062006c616e6469742064696374756d2c2076656c6974206f64696f20636f6d6d6f00646f206f64696f2c20757420636f6e7365717561742074656c6c757320717500616d206e6563206a7573746f2e205365642065666669636974757220736564002066656c69732061206d6178696d75732e204e756c6c616d20656c65696665006e64207363656c65726973717565206c6f72656d2c20696e206d6f6c65737400696520746f72746f72206d616c6573756164612076697461652e2045746961006d20636f6e64696d656e74756d2c20617567756520657420696163756c69730020646170696275732c206469616d206172637520706f72747469746f72207500726e612c20616320636f6e76616c6c6973206d61676e61206175677565207300656420646f6c6f722e2050686173656c6c75732076656c206f64696f207075007275732e0a0a457469616d20656c656966656e64206469676e697373696d20006e6973692066657567696174206c6163696e69612e205175697371756520650074206c61637573207669746165206172637520706f73756572652074656d700075732e204e616d20636f6e73657175617420657820696e206172637520756c007472696365732c2076656c2076656e656e61746973206e756e63206672696e0067696c6c612e20496e7465676572206575206a7573746f206964206e6962680020626962656e64756d2072757472756d2e20457469616d207363656c657269007371756520747572706973206c656f2c2061632074696e636964756e7420710075616d2064696374756d2065752e204475697320636f6e7365717561742063006f6e677565206a7573746f2c206469676e697373696d20626962656e64756d002073617069656e20656c656966656e6420656765742e204d616563656e617300206469676e697373696d206d6173736120757420626c616e646974206c616300696e69612e2050726f696e2066657567696174206e756e6320736564206c6f0072656d20616c697175616d2070756c76696e61722e20416c697175616d207600617269757320616e7465207365642073617069656e206469676e697373696d002c2065742064696374756d2073617069656e20696e74657264756d2e204165006e65616e206574206c656f2061756775652e2053656420756c74726963696500732074696e636964756e742065726f732c2073656420706f727461206d6175007269732066696e69627573206e65632e0a0a53757370656e6469737365206e006563206c6f72656d206c696265726f2e204d616563656e6173206e6563206c006967756c61206e6f6e20657820626c616e6469742073757363697069742e200050656c6c656e746573717565206c616375732072697375732c206f726e6172006520612063757273757320656765742c2074656d706f72207669746165206e0069736c2e204375726162697475722072757472756d20766f6c757470617420006578206120706c6163657261742e204d6f726269206d616c657375616461200074656c6c75732065752061726375206d6f6c6573746965206d61747469732e0020457469616d207363656c6572697371756520636f6d6d6f646f206175677500652c207175697320636f6d6d6f646f2076656c697420656c656966656e64200069642e204d617572697320617563746f72207669746165206d657475732071007569732076656e656e617469732e2050726f696e20626962656e64756d206600617563696275732074656c6c75732c20736f6c6c696369747564696e20696d0070657264696574206e69736920766f6c75747061742076656c2e20446f6e650063206661756369627573206d6f6c6573746965207175616d2c20657420667200696e67696c6c61206469616d2e0a0a446f6e656320696d706572646965742000657261742061206e6973692066696e696275732c207574206469676e69737300696d206e69736920666163696c697369732e204e756c6c6120696163756c690073207574207175616d20616c69717565742068656e6472657269742e205065006c6c656e74657371756520757420656c656966656e64206e657175652e2044006f6e6563206575206c6563747573206574206c656f20696e74657264756d200074696e636964756e742e204e616d20756c74726963657320656c6974206e690073692c2065676574206d6178696d7573207269737573206672696e67696c6c006120717569732e205365642076656c206e69736920617420747572706973200072757472756d2074696e636964756e742e204e756c6c6120636f6e677565200065726174206c6f72656d2c207365642066696e69627573206c616375732061006c69717565742065742e2050656c6c656e746573717565207574207175616d0020696e206f72636920736f64616c65732074656d706f72207574206575206e00657175652e2051756973717565206d616c65737561646120736167697474690073207269737573206e6f6e2076656e656e617469732e204e756e632066696e006962757320756c74726963696573206e69626820706f737565726520636f6e0073656374657475722e20496e7465676572206e6563206c6967756c61206e75006e632e205574206e6563206d617373612076656c206c6967756c612074726900737469717565206665726d656e74756d20696e2065752074656c6c75732e0a000a4d617572697320736f64616c6573206469616d2069642066656c6973206c00616f726565742c207175697320736f6c6c696369747564696e207475727069007320756c6c616d636f727065722e204e756c6c6120636f6d6d6f646f2c207300617069656e20657420756c6c616d636f7270657220736f6c6c69636974756400696e2c2073656d206c6563747573206672696e67696c6c61207175616d2c2000617420706c6163657261742065782065726f732075742073617069656e2e2000496e206f64696f206e6973692c207661726975732073697420616d65742064006f6c6f722076656c2c20756c74726963657320706c6163657261742074656c006c75732e20557420646f6c6f72206d692c2073656d706572206e6f6e206d610078696d75732076656c2c2070756c76696e61722061742066656c69732e2045007469616d207269737573206e756c6c612c2065666669636974757220617420006c6f72656d206c6f626f727469732c20706f72746120656c656966656e6420006c6f72656d2e20566976616d757320617420636f6e64696d656e74756d206500726f732e204475697320657420696163756c6973206d692c2076697461652000636f6e736563746574757220617263752e20496e2065726f73206d6175726900732c2074656d706f7220717569732070656c6c656e74657371756520696e2c002070686172657472612076656c206c65637475732e204d6f72626920706f720074612c206c696265726f20617420736f64616c657320656c656966656e642c00206c61637573206c6f72656d20626962656e64756d206f64696f2c206e65630020706f72747469746f72206c65637475732074656c6c75732076656c207365006d2e204e756c6c61207363656c657269737175652065742075726e61206575002064696374756d2e205574206f726e617265206d61747469732074656d707500732e20557420626c616e646974206f64696f2061206d61737361206d617869006d75732c206e6563206d616c657375616461206c696265726f206661756369006275732e0a0a5574206d6178696d757320756c7472696369657320747269730074697175652e20457469616d206163206469616d206174206e756c6c61206c00756374757320756c6c616d636f7270657220696e20657520656c69742e2053006564206574206d617373612076656c206e6962682072686f6e637573207469006e636964756e742e2053656420636f6e677565207363656c65726973717565002074656d7075732e205175697371756520766f6c7574706174206d6173736100206c6f72656d2c2076656c2072757472756d20656e696d20636f6e64696d65006e74756d206e65632e20416c697175616d2074757270697320646f6c6f722c0020656666696369747572207365642064696374756d20616c697175616d2c20006d6174746973206964206c616375732e204d616563656e6173206665756769006174206e6973692071756973206d6178696d757320636f6e76616c6c69732e000a0a5365642074696e636964756e74207574206a7573746f207669746165200066696e696275732e204d617572697320626c616e6469742065726174206e75006e632c20766974616520616363756d73616e2061726375206672696e67696c006c6120717569732e2053656420756c7472696365732074696e636964756e7400206469616d2073697420616d657420626962656e64756d2e20416c69717561006d206661756369627573206c61637573206567657420766573746962756c75006d2068656e6472657269742e204e756c6c616d20766172697573206e656320006e6571756520657420656c656966656e642e2053656420766974616520747500727069732065742074757270697320656c656966656e642074656d706f722e002050656c6c656e74657371756520766573746962756c756d206172637520610020657569736d6f64206d61747469732e205072616573656e74206e6563207200697375732073697420616d6574207475727069732064617069627573207375007363697069742e20446f6e656320626962656e64756d2074656d707573206d006920696e2072757472756d2e20566573746962756c756d206d61737361206d00657475732c20696d7065726469657420657520736f64616c65732071756973002c20616363756d73616e2076656e656e6174697320617263752e20496e206e006f6e20706f7375657265206c696265726f2c2076656c207375736369706974002075726e612e0a0a53757370656e64697373652073617069656e206d65747500732c2070756c76696e6172206e6563206c61637573206d6f6c65737469652c00206567657374617320766573746962756c756d2065782e2056657374696275006c756d2074656d706f7220616e7465206e6563206e756e632074696e63696400756e7420666163696c697369732e20457469616d20626962656e64756d2c2000616e746520696e207072657469756d20636f6e6775652c206d61737361206c006f72656d206c6f626f727469732065782c206e65632072686f6e6375732074006f72746f72206d61757269732061632070757275732e20496e2072686f6e630075732076756c707574617465206d61676e6120617420657569736d6f642e20004d616563656e61732076656c206c616f72656574206a7573746f2c20696e20006c6163696e6961206f64696f2e2050656c6c656e74657371756520616c697100756574206c616375732061632076656e656e61746973206c75637475732e2000496e74657264756d206574206d616c6573756164612066616d65732061632000616e746520697073756d207072696d697320696e2066617563696275732e200051756973717565206c6163696e6961207072657469756d2075726e6120736f0064616c6573206d6178696d75732e20496e7465676572206469676e69737369006d207072657469756d206d6f6c6c69732e20536564206c656374757320656c0069742c20616c697175616d2061206469616d2069642c20646170696275732000766172697573206c6967756c612e204d6f726269206c6163696e696120736f0064616c6573206c6f72656d2c20696420616c697175616d206e69736c20706f00737565726520656765742e0a0a41656e65616e2070686172657472612c207400656c6c7573206163206469676e697373696d20656765737461732c206175670075652065737420656c656d656e74756d2066656c69732c2076656c206c6f62006f72746973206e69736920656e696d20636f6d6d6f646f207475727069732e002053757370656e6469737365206e756e63207475727069732c206c6f626f720074697320736564206d61757269732069642c20706f72746120736f6c6c69630069747564696e206a7573746f2e2050726f696e20656c656d656e74756d206d0061757269732073697420616d6574206f72636920696e74657264756d207469006e636964756e742e2053656420706f7274612075726e612066656c69732c200069642076656e656e617469732073617069656e207363656c65726973717565002065742e20566976616d7573206461706962757320706f72747469746f7220006a7573746f2c206964206d6f6c6573746965206e69736c20696163756c6973002074696e636964756e742e20496e206d6174746973206d6175726973207369007420616d657420636f6e76616c6c697320756c747269636965732e20446f6e00656320636f6d6d6f646f206567657374617320657261742076697461652061007563746f722e204e756c6c616d2066657567696174206d61676e6120657374002c20657420706f72747469746f72206573742074656d706f722061632e2041006c697175616d20766172697573206d69206575206c61637573206d6174746900732c2073697420616d6574207375736369706974206e69736920736f64616c0065732e2041656e65616e2065742068656e6472657269742076656c69742c2000696e20706c616365726174206e6973692e20446f6e65632071756973207665006c6974206d692e20457469616d20706c61636572617420657261742076656c002065726f73206672696e67696c6c6120636f6d6d6f646f2e0a0a5068617365006c6c7573207669746165206475692066656c69732e205072616573656e7420007072657469756d206d6174746973206e657175652c2065676574206672696e0067696c6c612066656c69732074656d706f722061742e20437261732061756300746f72206e69736c206e65632073656d206c6f626f72746973206d6174746900732e2050656c6c656e746573717565206d61747469732074696e636964756e00742074656d7075732e2050726f696e206c616f726565742073656d20612076006f6c75747061742072686f6e6375732e204d6f726269206575206d6175726900732073697420616d65742072697375732074696e636964756e74206f726e610072652e2041656e65616e20756c6c616d636f72706572206c61637573206e6f006e206e756e6320696d706572646965742c20657420656c656966656e64207400656c6c757320706c6163657261742e2043726173206574206d6920696e20640069616d206567657374617320706c616365726174206e6f6e2073697420616d006574206c65637475732e20416c697175616d20696163756c697320707572750073206c6f626f727469732c207363656c657269737175652065726f732065670065742c2076617269757320646f6c6f722e2043757261626974757220737573006369706974206e6571756520736564206567657374617320636f6e736571750061742e20496e2076656c20616c697175616d206d657475732c206c75637475007320636f6d6d6f646f206e6962682e2053656420636f6e736571756174207000756c76696e6172206d692c20736167697474697320616c6971756574206572006f73206d6178696d75732076756c7075746174652e2055742065742074656d00707573206c616375732e0a0a53757370656e646973736520706f74656e7469002e20447569732076656c2076756c707574617465206d61757269732c2075740020736f6c6c696369747564696e206d692e20446f6e65632076656c20616c69007175616d206c6967756c612c20656765742072686f6e6375732074656c6c7500732e205072616573656e74206e65632065726f732076697461652065726f73002076756c70757461746520617563746f722e204e756e63207375736369706900742c206d617572697320696420696e74657264756d20756c6c616d636f72700065722c20746f72746f72206a7573746f20646170696275732073617069656e002c207669746165206c6163696e6961206c656f2075726e61207669766572720061206e6962682e205175697371756520626962656e64756d20617563746f72002065726f732c206964206d6174746973206d617373612064696374756d2061002e205574206964206d69206e69736c2e20566573746962756c756d20657520006c7563747573206c616375732e20446f6e65632061206d6178696d7573206600656c69732e0a0a446f6e65632073656d206e69736c2c20756c7472696365730020612074656c6c75732075742c2070656c6c656e7465737175652066616369006c69736973206e756c6c612e205365642065742073617069656e207574206500726f7320636f6e64696d656e74756d20706f72747469746f722e204675736300652073697420616d6574206d657475732065782e20496e2061206578207369007420616d65742074656c6c75732070756c76696e617220636f6e73657175610074206120696420656e696d2e204d616563656e617320756c6c616d636f727000657220736f64616c6573207475727069732c207175697320756c6c616d636f00727065722065726f7320636f6e7365717561742065742e20496e74656765720020736f64616c6573206573742073697420616d657420616e74652074656d700075732c20696420616c69717565742066656c69732072757472756d2e204c6f0072656d20697073756d20646f6c6f722073697420616d65742c20636f6e7365006374657475722061646970697363696e6720656c69742e204d616563656e61007320696420747572706973207669746165206573742076656e656e617469730020656c656d656e74756d2e0a0a446f6e656320696163756c697320677261760069646120636f6e73656374657475722e20457469616d20657569736d6f64200065726f73206567657420766573746962756c756d206672696e67696c6c612e0020496e20706f7274612c206572617420766974616520656c656d656e74756d0020677261766964612c20747572706973206c6f72656d206d6f6c657374696500206e6962682c20696420706861726574726120746f72746f72206d6574757300206c6163696e6961207475727069732e204d6175726973207072657469756d0020766172697573207475727069732c2065742063757273757320657820766900766572726120717569732e20536564206d616c657375616461206c656f20650074206d617373612074656d707573206c6163696e69612e204e756e63207369007420616d657420656e696d2073656d2e20446f6e65632076656c206772617600696461207175616d2c2076656e656e61746973207665686963756c612065720061742e0a0a496e206e6f6e206c61637573206d616c6573756164612c206d610078696d7573206e696268206e65632c20636f6e73656374657475722076656c0069742e204e756c6c61206575206772617669646120746f72746f722e205068006173656c6c757320696e74657264756d206665726d656e74756d20766172690075732e204d6f726269207661726975732076656c697420696e206c6163757300207363656c65726973717565206d616c6573756164612e2050686173656c6c00757320737573636970697420616c697175616d2065726f7320696e20747269007374697175652e20566573746962756c756d2061632075726e61206e756e63002e204d6175726973207072657469756d20746f72746f72206469616d2c206100206672696e67696c6c61206c65637475732074656d7075732061632e0a0a4d006f72626920696d70657264696574206d6f6c6c697320646f6c6f722c206e65006320656666696369747572207175616d20616c697175657420612e2056697600616d7573206c75637475732070757275732076656c206e69736c2065756973006d6f6420706f72747469746f722061632076697461652074656c6c75732e2000437261732073757363697069742074726973746971756520707572757320750074207363656c657269737175652e2050656c6c656e746573717565207369740020616d657420656c6974206964206c696265726f206665726d656e74756d2000736f64616c65732e204e756c6c616d20636f6e76616c6c6973206c6967756c006120696e207175616d207072657469756d2c20696420616c6971756574206e0069626820636f6e7365717561742e204e756c6c6120666163696c6973692e200041656e65616e206f726369206c696265726f2c2068656e64726572697420750074206c6f72656d2076656c2c20706f72747469746f7220706f72747469746f0072206c696265726f2e20557420696420616363756d73616e206d617373612e00205365642073617069656e206c656f2c2074696e636964756e7420707265740069756d2061756775652076697461652c207669766572726120766f6c7574700061742073617069656e2e204d6f726269206d6f6c6c6973206f726369207365006420756c74726963657320636f6e64696d656e74756d2e20437261732061630063756d73616e20736167697474697320696d706572646965742e204e616d200074656d706f7220766573746962756c756d207475727069732c20636f6e6469006d656e74756d2074656d706f72206f64696f20656c656d656e74756d207665006c2e20566573746962756c756d20737573636970697420616e7465206120610072637520616363756d73616e2c2076656c20636f6e677565206d61757269730020677261766964612e0a0a50686173656c6c757320766f6c7574706174206d0061757269732065676574206c696265726f206c616f7265657420616c69717500616d2e20566573746962756c756d207269737573206e69736c2c2074656d7000757320617420766f6c75747061742076697461652c2074696e636964756e74002076697461652065726f732e20416c697175616d2076656e656e617469732000616e746520626c616e64697420707572757320666575676961742c20612061006c697175616d20616e746520626962656e64756d2e2050726f696e20696e7400657264756d20697073756d206e6962682c2076656c20706f7274612066656c00697320657569736d6f642065742e20457469616d20717569732074656c6c75007320646f6c6f722e2044756973206964206c616f72656574206f64696f2c20006574206375727375732072697375732e2053757370656e6469737365206c61006f7265657420646f6c6f72206575206e756c6c6120666575676961742c20730065642066657567696174206e756c6c6120626c616e6469742e20416c69717500616d20717569732061726375207175697320617567756520756c7472696365007320696163756c69732e20446f6e65632069642065726f73206e6f6e206e6900736920616363756d73616e206f726e6172652076656c20757420657261742e002053656420636f6d6d6f646f206c756374757320616e74652071756973207000756c76696e61722e205072616573656e7420616c697175616d206d6f6c6c6900732070757275732072686f6e63757320636f6e7365717561742e2055742076006974616520636f6e6775652072697375732e20496e206d6f6c6c6973206120007075727573206964206c6163696e69612e0a0a467573636520616c69717561006d2061756775652073697420616d6574206a7573746f2070656c6c656e746500737175652c20756c6c616d636f7270657220706f727461206475692069616300756c69732e2050726f696e20656765737461732076756c707574617465206e0069736c2c2076656c20637572737573206d6173736120706f72747469746f72002061742e20536564206e6f6e2074656c6c75732076656c206e756c6c612062006c616e64697420666163696c697369732e204d616563656e617320657261740020656e696d2c20736f64616c65732061206c6163696e69612076656c2c2061006c6971756574207574206e756c6c612e20496e74656765722066656c69732000617263752c20736f64616c65732076656c206661756369627573207369742000616d65742c20766573746962756c756d2065676574206c6f72656d2e204e75006c6c612076697665727261206f64696f206163206e756e63206c7563747573002c20657520706c6163657261742074656c6c757320616c697175616d2e204d006f726269206e65632073656d20657520616e746520706f737565726520736f006c6c696369747564696e2e204e756c6c6120616363756d73616e20636f6e7300656374657475722065737420766974616520756c747269636965732e20447500697320666163696c69736973207363656c65726973717565206d6175726973002c206e6f6e20636f6e64696d656e74756d2064756920766f6c75747061742000696e2e0a0a4d617572697320717569732066696e6962757320656e696d2e20004e756e6320656765742065726f7320616c69717565742c206d6178696d757300206c6f72656d206e6f6e2c2070656c6c656e746573717565206a7573746f2e00204d6f7262692065676574206e756e6320696420726973757320657569736d006f6420626c616e6469742076656c20612072697375732e204d617572697320006120736f64616c65732074656c6c75732e2043757261626974757220626c61006e646974206174206e756e63206174206566666963697475722e204475697300206575206c696265726f206e656320647569206d6174746973206d6178696d0075732e2053656420636f6e7365717561742065726174206d61757269732c2000757420706f727461206c6563747573206665756769617420717569732e2056006573746962756c756d2076656c2074656c6c7573206e65632073617069656e0020636f6e6775652076656e656e617469732e20446f6e656320706c6163657200617420756c747269636573206d692e204675736365206c7563747573206e6f006e206d6175726973206163206375727375732e204e756c6c61206567657420006d61676e6120766974616520747572706973206d616c6573756164612076690076657272612e2050656c6c656e746573717565206174206c656374757320690064206d61676e612064617069627573206d6174746973207669746165206120007175616d2e0a0a496e206572617420657261742c20696d7065726469657420007574207175616d206e65632c20756c6c616d636f727065722072757472756d00207475727069732e204d6f72626920706c61636572617420656c697420617400206e6973692070656c6c656e74657371756520706c6163657261742e205072006f696e207669766572726120736f6c6c696369747564696e20637572737573002e2046757363652076656e656e6174697320626c616e646974206e69736c200073656420636f6e6775652e204675736365206d6f6c65737469652c2075726e00612076656c20636f6e76616c6c69732072686f6e6375732c20656c6974206d006574757320657569736d6f642065782c2071756973207665686963756c6120006d61737361207075727573206163206475692e2041656e65616e206e6f6e20006c61637573207665686963756c612c20656c656966656e6420656c69742073006f64616c65732c207661726975732073617069656e2e20536564206e756c6c0061206a7573746f2c206665726d656e74756d20706f72747469746f722076690076657272612075742c20706f727461206567657420656e696d2e2050656c6c00656e74657371756520636f6e736563746574757220736167697474697320740075727069732c206174206375727375732064756920706f737565726520696e002e205175697371756520612073757363697069742065726f732e2045746961006d20616c69717565742c20646f6c6f722061742064696374756d2072686f6e006375732c206d692065737420756c6c616d636f727065722072697375732c2000612074696e636964756e742074757270697320746f72746f72206e6f6e206e006962682e2053656420636f6d6d6f646f206469616d206163206f7263692076006f6c75747061742c207669746165206c6f626f72746973206d61676e612070006f73756572652e204475697320636f6d6d6f646f20656c697420696420657800207661726975732c206567657420706f737565726520697073756d2061756300746f722e20467573636520756c74726963696573206f64696f20657520636f006e67756520616c69717565742e2055742071756973206573742070756c7669006e61722c2076756c707574617465206c65637475732076756c707574617465002c20636f6e7365717561742073617069656e2e0a0a446f6e656320636f6e7600616c6c6973206d61757269732074656d707573207661726975732061756374006f722e20416c697175616d207472697374697175652064696374756d207075007275732c20696420677261766964612075726e6120616c6971756574207574002e20566976616d75732065752076656e656e6174697320616e74652c206d610078696d75732074696e636964756e74206f7263692e20557420617420616c69007175616d206c6f72656d2e20416c697175616d206e6f6e206c61637573206e00756c6c612e204d6f72626920766974616520656666696369747572206d61730073612c2076697461652072686f6e63757320657261742e2041656e65616e20006e6f6e20657261742071756973206d617572697320657569736d6f6420626c00616e6469742e205574207669746165206e756c6c612073697420616d6574200074656c6c7573206567657374617320636f6e7365717561742e205574206c69006265726f206c65637475732c20626c616e6469742070756c76696e6172207300757363697069742065752c20636f6e7365637465747572207669746165207300617069656e2e2043757261626974757220706f727461206e756e632066656c0069732c20717569732070656c6c656e746573717565206c656f206469676e69007373696d2061742e204d6f7262692076656c20696163756c6973206e696268002e20446f6e65632074696e636964756e742065737420657520696d706572640069657420706f72747469746f722e20566573746962756c756d20696e207475007270697320746f72746f722e0a0a50726f696e207669746165206172637520006e6962682e205072616573656e74206573742073617069656e2c2074696e63006964756e7420617420617263752076697461652c2076656e656e617469732000736f6c6c696369747564696e20746f72746f722e2050656c6c656e7465737100756520666163696c697369732c206f64696f20696e207472697374697175650020736f64616c65732c20657374206e6571756520657569736d6f642069707300756d2c20657520656c656d656e74756d206f726369206e6571756520766974006165206c696265726f2e20446f6e65632074656d706f72206c696265726f2000696e206c656f20636f6d6d6f646f2c2075742076756c707574617465206d6100676e61206c616f726565742e204d616563656e61732072757472756d20656c00656d656e74756d20766f6c75747061742e20536564206d6f6c65737469652c00206d6574757320657520656c656d656e74756d20616363756d73616e2c207300656d207175616d20636f6e76616c6c6973206c696265726f2c206e6f6e206d00616c65737561646120616e7465206c61637573206c6f626f7274697320746f0072746f722e205365642076656c697420646f6c6f722c20636f6e73656374650074757220617563746f7220616c697175657420696e2c206f726e617265206500752073617069656e2e204e756c6c61206574206c65637475732061207075720075732073656d706572206d61747469732e204e756c6c616d206d61747469730020656c656966656e64206d6f6c65737469652e0a0a4d6175726973206c6f62006f727469732065726174206c616375732c20757420766573746962756c756d00206175677565207072657469756d2065752e20446f6e65632065742073656d00706572206d61757269732c2073697420616d65742067726176696461206c6500637475732e20447569732076656e656e61746973206d69206f7263692c2061002065666669636974757220646f6c6f7220617563746f722069642e204e756c006c61206e6f6e2075726e612075742065726174207665686963756c61207469006e636964756e74207574206964206a7573746f2e2041656e65616e206c616300696e696120657374206964206c7563747573206d616c6573756164612e20550074206f726e61726520647569207175697320636f6e736563746574757220700072657469756d2e20496e206163206a7573746f206163206e756c6c61207669007665727261207665686963756c612e2053757370656e646973736520696e2000766573746962756c756d206d657475732c206120736f64616c6573206c6f7200656d2e204d6f726269206e6f6e206c6967756c612076697461652074656c6c0075732066696e69627573207363656c6572697371756520617420696e20616e0074652e205175697371756520696e2073656d70657220646f6c6f722e2045740069616d206d6f6c6c69732c206d6574757320696420766f6c7574706174207300656d7065722c206d61737361206e65717565206c6163696e69612073656d2c0020696e20656666696369747572206c656374757320656c6974207574206e75006e632e2050726f696e206c6163696e6961206c6f72656d2071756973207475007270697320756c7472696365732c20757420666175636962757320646f6c6f007220656c656966656e642e20446f6e6563206c6f626f727469732069707375006d206575206572617420616c69717565742c2065752065676573746173206c006967756c6120656c656d656e74756d2e205072616573656e74206964206572006f732066696e696275732c206d6f6c6c69732074757270697320696e2c206d006f6c6c6973207175616d2e2050686173656c6c757320626c616e6469742063006f6d6d6f646f206e756e6320696e20626c616e6469742e204e616d207175690073207269737573207574206469616d206c6f626f72746973207361676974740069732e0a0a50726f696e20766f6c75747061742074656d707573207275747200756d2e2050726f696e20696d7065726469657420626c616e646974207361700069656e207175697320706c6163657261742e204e756c6c6120706f73756572006520647569206964206f64696f20657569736d6f642c20696420696163756c0069732075726e6120646170696275732e20446f6e65632070656c6c656e74650073717565206d617373612069642076697665727261206c616f726565742e20004e756c6c616d2071756973206c6163757320636f6e76616c6c69732c20626c00616e646974206c656f206e6f6e2c20616c697175616d206c696265726f2e2000536564206461706962757320617567756520696e2075726e61207068617265007472612c2061742073656d706572206c656374757320706c6163657261742e002053656420756c74726963657320726973757320696420696163756c6973200074656d7075732e20496e7465676572206665726d656e74756d2c2072697375007320657420636f6e736563746574757220636f6e6775652c206e756e63206500737420696163756c69732072697375732c20706f73756572652076656e656e00617469732065726f7320616e74652076656c2070757275732e20496e746567006572206c6163696e69612074656c6c7573207669766572726120726973757300207361676974746973206672696e67696c6c612e2043726173206e6f6e2069007073756d2071756973206e65717565207669766572726120666163696c6973006973206e6f6e20736564206475692e20467573636520636f6d6d6f646f2065006c656966656e64206a7573746f207175697320636f6e6775652e0a0a56697600616d7573207363656c657269737175652074696e636964756e74206e756e6300206469676e697373696d20636f6e64696d656e74756d2e2051756973717565002061726375206e69736c2c20756c6c616d636f72706572206e6563206c65630074757320717569732c20636f6e67756520616363756d73616e20657261742e0020437572616269747572207574206e697369207475727069732e20496e20760069746165206573742071756973206d657475732074656d7075732076657374006962756c756d206575206e656320617263752e2055742073656d206a757374006f2c206665756769617420657520636f6e73657175617420656765742c2075006c6c616d636f72706572206567657420697073756d2e205072616573656e7400207072657469756d206d6174746973206c656f2c2067726176696461206865006e647265726974206c696265726f2065666669636974757220656765742e20004d616563656e617320626c616e646974206e696268206469616d2c206e656300206c6163696e69612061726375206c6163696e69612065742e0a0a4675736300652074696e636964756e7420746f72746f722066656c69732e2053656420640069616d206e6962682c20637572737573206e656320646170696275732065670065742c206f726e61726520656666696369747572206d692e20446f6e65632000696420746f72746f72207669746165206d692064696374756d2076657374690062756c756d2e2050726f696e206964206c696265726f20616c697175616d200076656c69742074656d706f7220696d706572646965742073697420616d657400207669746165206c616375732e20437261732073697420616d6574206578200068656e6472657269742c206672696e67696c6c6120617567756520696e2c20006c616f72656574206f7263692e204d616563656e6173206c61637573206d65007475732c20656c656966656e6420736564206d657475732075742c2065756900736d6f6420657569736d6f642076656c69742e20496e746567657220696e2000616363756d73616e206d692e0a0a41656e65616e20696163756c6973207665006c206a7573746f20756c7472696369657320766f6c75747061742e20437261007320636f6e73656374657475722c2065726f73206e6f6e20756c6c616d636f007270657220696163756c69732c2076656c6974206578207665686963756c61002076656c69742c2073697420616d657420696163756c6973206a7573746f20006469616d206567657420657261742e20496e74656765722066696e696275730020736f64616c6573206d617373612073697420616d6574206d616c657375610064612e20496e2072686f6e6375732073617069656e206964207175616d207600697665727261207665686963756c612e20496e20686163206861626974617300736520706c617465612064696374756d73742e20446f6e656320616320706f0072747469746f72206e657175652c2073656420656666696369747572206c690067756c612e20446f6e6563206567657420616c697175616d206c616375732c00206e6f6e207665686963756c61206e69736c2e2053656420706c61636572610074206d617474697320636f6e76616c6c69732e20496e746567657220736f6400616c65732c206e69736c2061207665686963756c61206469676e697373696d002c2076656c69742074656c6c7573206566666963697475722070757275732c00206120766573746962756c756d206f64696f206c6163757320696420646961006d2e204e756c6c616d20766974616520626c616e64697420656c69742e20500072616573656e742074696e636964756e74206c656374757320656c69742c20006e6f6e2074656d707573206e69736c20677261766964612076697461652e20004e756c6c61206469616d2070757275732c206c616f7265657420766974616500206567657374617320696e2c20636f6e7365637465747572206574206d6175007269732e2053656420766172697573206d6f6c6c697320656c656d656e7475006d2e204e616d2073697420616d6574206d61676e6120677261766964612c200068656e64726572697420697073756d206e6f6e2c2074656d7075732073656d002e204d616563656e6173206469676e697373696d206d6f6c6c69732072686f006e6375732e205365642066656c6973206e69736c2c2073656d706572206174002074656c6c75732065742c206d616c65737561646120616c697175616d2069007073756d2e0a0a496e74656765722073757363697069742076656c6974206900642073656d206665726d656e74756d2c207175697320756c747269636573200073656d2074696e636964756e742e2041656e65616e2076656c20646f6c6f7200206e65632074757270697320656c656d656e74756d207363656c65726973710075652e2050726f696e206f64696f20746f72746f722c20616c697175657420006567657420696d7065726469657420717569732c20736f6c6c69636974756400696e206964206c616375732e2050656c6c656e74657371756520656e696d2000656c69742c207375736369706974206964207175616d206e65632c206375720073757320616c697175616d2065726f732e20446f6e656320626962656e6475006d2073697420616d6574206d657475732071756973207363656c65726973710075652e204e756e6320616320747572706973206a7573746f2e205365642070006c61636572617420746f72746f72206e6563206c6163757320736f6c6c69630069747564696e207363656c657269737175652e2050686173656c6c7573207600697461652063757273757320657261742c20616320756c747269636965732000746f72746f722e0a0a43726173206d616c657375616461206772617669646100206a7573746f2076656c207661726975732e204e756c6c616d206c616f7265006574206964206d617572697320696e20646170696275732e20437572616269007475722073757363697069742065782065676574207361676974746973206c0075637475732e20447569732071756973207669766572726120656c69742c20007175697320756c6c616d636f72706572206e756e632e204d61757269732065006c656966656e642c206d6173736120696e20626962656e64756d2061636375006d73616e2c206578206e69736920766573746962756c756d206469616d2c2000757420696163756c697320647569206f72636920736564207475727069732e00204e756c6c6120626962656e64756d2c2076656c697420657520636f6e7661006c6c69732073656d7065722c206d65747573206e69736c20706f7375657265002061756775652c2068656e64726572697420696163756c6973207361706965006e207175616d206574206469616d2e2050726f696e2076656c206e69736c200061756775652e20566976616d75732076656e656e61746973206d657475732000736564206d617572697320706f73756572652c20612068656e6472657269740020656e696d20766976657272612e204475697320636f6d6d6f646f206172630075206574206d61676e6120756c7472696365732070656c6c656e746573717500652e204e616d20696e206c696265726f2076656e656e617469732c2076657300746962756c756d206175677565206c6163696e69612c20766172697573206c006f72656d2e20457469616d206574206c7563747573206c616375732e205175006973717565206d6f6c65737469652c206e69626820617420756c74726963650073206d61747469732c206c616375732075726e6120636f6e76616c6c697320006e756c6c612c20696e206d616c657375616461206e756c6c61206c656374750073206e6f6e206469616d2e20457469616d206567657420697073756d206d6100676e612e2050686173656c6c75732066656c6973207175616d2c2062696265006e64756d2073697420616d657420726973757320717569732c20677261766900646120657569736d6f642066656c69732e0a0a46757363652076656e656e610074697320696e74657264756d20656c69742c20717569732072757472756d20006f72636920706f7375657265206e6f6e2e20496e20656c656966656e6420650073742071756973206469616d20666163696c697369732c206163206d616c65007375616461206d61737361206f726e6172652e204c6f72656d20697073756d0020646f6c6f722073697420616d65742c20636f6e7365637465747572206164006970697363696e6720656c69742e205365642063757273757320616c69717500616d206f64696f2076656c2073757363697069742e2050656c6c656e74657300717565206163206c696265726f206163206572617420616c6971756574207300616769747469732e204d616563656e617320616e7465206c616375732c20730063656c65726973717565206574207472697374697175652076697461652c20006566666963697475722065676574207175616d2e2050686173656c6c7573200072757472756d20656c69742061756775652c2071756973206c6163696e696100206f7263692074696e636964756e74206e65632e20496e20636f6e736563740065747572206964206f726369206575207363656c657269737175652e205065006c6c656e74657371756520616c69717565742074656d707573206f64696f200075742076756c7075746174652e2051756973717565206c696265726f206e6900736c2c2072757472756d2061742073617069656e206e65632c206c616f726500657420747269737469717565206a7573746f2e2043726173206c6163696e690061206e6962682069642065726f732072757472756d207363656c65726973710075652e204e756e63206e6f6e206d6175726973206f7263692e204e616d2069006d706572646965742064617069627573206a7573746f2e20496e2076656c20006c6163757320706f72747469746f722c20766172697573207269737573207500742c20616c697175616d20746f72746f722e2043757261626974757220696e00206d657475732076656c2065782076656e656e6174697320706f7274612e0a000a53757370656e6469737365207365642070756c76696e6172206573742e200050686173656c6c7573206e6563206d6920656c656966656e642c20666575670069617420617263752061742c20706f72747469746f72206e6973692e204475006973206567657420626c616e6469742065782e2043726173206120647569200065726f732e20496e74657264756d206574206d616c6573756164612066616d00657320616320616e746520697073756d207072696d697320696e206661756300696275732e20496e2073656d206c696265726f2c20766f6c757470617420650067657420647569207365642c2070656c6c656e746573717565206c7563747500732065782e20536564206574206c656f20656765742065726f7320696e7465007264756d206d6178696d75732e2050686173656c6c7573206e6f6e206d6f6c006573746965206c65637475732c206e6f6e207665686963756c61206c6563740075732e20446f6e656320656666696369747572206d616c657375616461206d0061757269732c2065676574207472697374697175652073656d206c6f626f720074697320612e204e616d2074656c6c75732075726e612c2072686f6e63757300206665726d656e74756d20737573636970697420717569732c20696d70657200646965742071756973206f7263692e20557420637572737573206572617420007669746165206665726d656e74756d20666163696c697369732e204e756e630020757420626c616e646974206c6f72656d2e20566573746962756c756d207400656c6c7573206469616d2c20636f6e67756520657520706f7375657265207500742c206c6f626f7274697320612073656d2e204e756c6c616d206163206f72006369206e6f6e2075726e6120656c656966656e6420696d706572646965742e000a0a5072616573656e74207669746165206e69736c206672696e67696c6c61002c2073757363697069742065726174207365642c20656c656d656e74756d200072697375732e20446f6e656320696420756c74726963696573206f64696f2e002050726f696e206d6174746973206d61757269732061206d61737361206d610078696d7573207472697374697175652e2050686173656c6c757320656765740020706f7375657265206e6962682e2050686173656c6c757320736564206d650074757320657420657820636f6d6d6f646f20766f6c75747061742e2041656e0065616e206c6163696e69612c206175677565206e6f6e206566666963697475007220636f6e6775652c206d617373612073656d207669766572726120646961006d2c207175697320706f737565726520647569206c6f72656d2061206c6f7200656d2e20496e2076756c7075746174652064756920657520656c6974207375007363697069742074656d706f722e204372617320696d70657264696574206d0061757269732073656420657820637572737573206c616f726565742e2056690076616d7573206e65717565206573742c20666163696c697369732071756973002066656c697320717569732c20706f72747469746f7220706f72747469746f0072206e756e632e204675736365206e6f6e206c6f626f72746973206c6f7265006d2e0a0a4d616563656e617320766f6c7574706174206661756369627573200074656c6c757320756c747269636965732070756c76696e61722e205068617300656c6c7573206120706f72747469746f7220617263752e20446f6e6563207600756c70757461746520656e696d207475727069732c20612074696e63696475006e74206469616d2074656d706f722065752e20446f6e656320736f6c6c69630069747564696e2c206578207669746165206c75637475732076657374696275006c756d2c206e69736c20616e746520756c6c616d636f72706572206d692c2000617420756c7472696369657320656e696d20646f6c6f722073656420656c6900742e205072616573656e74206d6f6c6c697320656666696369747572207269007375732071756973207072657469756d2e20566573746962756c756d2071750069732066696e69627573206475692c2065676574206f726e617265206c6563007475732e20457469616d2065676574206a7573746f20766573746962756c75006d2c20626c616e6469742073656d20696e2c206d6178696d75732065726f73002e0a0a50686173656c6c7573206120697073756d206575206d69206375727300757320736f64616c6573206e656320736564206e6973692e204475697320660072696e67696c6c6120657374206163206c6967756c612070756c76696e61720020677261766964612e2050726f696e207669766572726120616363756d7361006e2073656d2c2076656c2072757472756d206e69736c20636f6e736571756100742076656c2e204e756e63206672696e67696c6c61206d657475732076656c002066617563696275732074656d706f722e205072616573656e7420636f6e73006563746574757220646170696275732061756775652c206574207363656c6500726973717565206c656374757320636f6e64696d656e74756d206e65632e20004e756e6320616363756d73616e2c2075726e61206e6f6e20706c6163657261007420756c7472696365732c206d617572697320617567756520736f6c6c69630069747564696e20616e74652c2073697420616d657420616c697175616d206c00616375732076656c69742061632074656c6c75732e205365642076656e656e00617469732c2074656c6c7573206e656320617563746f722064617069627573002c206c6f72656d2073617069656e2073656d70657220657261742c206575200076697665727261207175616d2075726e61207669746165206c6f72656d2e20004d616563656e6173207375736369706974206e756e63207574206d6f6c657300746965206d61747469732e20416c697175616d2076697461652065737420640069676e697373696d2064756920656c656d656e74756d20617563746f722e0a000a4d6f726269206e756c6c61206c616375732c2073656d706572207369742000616d65742066656c69732065742c2076756c707574617465206d616c65737500616461206475692e2050726f696e20656765742065726f73206c6563747573002e20446f6e65632074696e636964756e7420656c69742076656c20736f6c6c00696369747564696e2073616769747469732e2050726f696e206163206d6f6c0065737469652073656d2e2053757370656e646973736520696163756c69732000766573746962756c756d2073656d206574206d61747469732e2050726f696e00206c6f626f72746973206c616f72656574206469616d2c2073656420706f730075657265206573742074656d706f722065742e2053656420696e20746f7274006f72207175697320657820696d70657264696574206c6163696e6961207175006973206e6563206c6f72656d2e204d616563656e617320636f6e76616c6c69007320656666696369747572206f7263692c20657420706f72747469746f7220006e69736c20666163696c69736973206e6f6e2e205365642068656e647265720069742076656e656e617469732066656c697320666175636962757320656c65006d656e74756d2e204d6f7262692061632064756920736f64616c65732c207000656c6c656e74657371756520697073756d2076656c2c20736f64616c6573200076656c69742e20457469616d20656e696d206c6f72656d2c2076656e656e6100746973206163206c616375732065742c2065676573746173206d616c65737500616461206c65637475732e20416c697175616d20736f64616c6573206e6962006820656666696369747572206c656374757320616c697175616d2076657374006962756c756d206e6f6e2061206f64696f2e204d61757269732069642066610075636962757320656c69742c2073656d70657220706f72747469746f72206e00756c6c612e204675736365206f726e6172652c206a7573746f20696e20766500686963756c6120636f6d6d6f646f2c206c61637573206c6163757320636f6e006775652074656c6c75732c20757420666175636962757320697073756d207200697375732061206e756c6c612e20457469616d207669766572726120707572007573207175616d2c2076656c20706f72747469746f72206d6574757320696d00706572646965742065752e204d6f72626920636f6e76616c6c697320636f6e00736571756174206475692e0a0a4d61757269732074726973746971756520610072637520717569732072686f6e6375732064696374756d2e204e756e632064006f6c6f72206c696265726f2c206d6178696d757320617420656e696d207574002c20677261766964612072686f6e637573207175616d2e2056657374696275006c756d206d61747469732074696e636964756e7420666163696c697369732e00204675736365206e756c6c612061756775652c20656765737461732073656400206c6163696e69612076697461652c206d616c657375616461206163206e75006c6c612e204d617572697320696163756c6973207072657469756d206c61630075732c20612066696e696275732075726e6120706f73756572652061632e20004d6f72626920696e74657264756d20666175636962757320657261742c206100206c616f72656574206d61676e6120626c616e64697420612e204372617320006e6563206d61676e612071756973206c6163757320656765737461732069610063756c69732e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f862b093fd6807e033db6b24db5485814f79a98c7e241432e95c2e327042f821f24f4a59315cf4e881205f472e99835729977ab0aa9da85a334c2935e670bd44e9b734481fc5ab72859c76f741008a92c2836932af9e60697b6319f3454a141154fcd583f862b091a6c5d19e50b1b85ae2ef07477160381babf00f0906f5219ce09dee2e00d7d347cb0586d90b491637cdb1715e62d152b0a660592b94033f9c5f7987005fa5d1f84435585ddaaf4b3adc0a198b983f2ae007db73b90067a96ec214b24d7b9820b9"`; diff --git a/src/experimental/eip5792/actions/getCallsStatus.test.ts b/src/actions/wallet/getCallsStatus.test.ts similarity index 70% rename from src/experimental/eip5792/actions/getCallsStatus.test.ts rename to src/actions/wallet/getCallsStatus.test.ts index c684a75495..1cfe7ad7a9 100644 --- a/src/experimental/eip5792/actions/getCallsStatus.test.ts +++ b/src/actions/wallet/getCallsStatus.test.ts @@ -1,15 +1,18 @@ import { expect, test } from 'vitest' -import { anvilMainnet } from '../../../../test/src/anvil.js' -import { accounts } from '../../../../test/src/constants.js' -import { mine } from '../../../actions/index.js' -import { mainnet } from '../../../chains/index.js' -import { createClient } from '../../../clients/createClient.js' -import { custom } from '../../../clients/transports/custom.js' -import { RpcRequestError } from '../../../errors/request.js' -import type { WalletCallReceipt } from '../../../types/eip1193.js' -import type { Hex } from '../../../types/misc.js' -import { getHttpRpcClient, parseEther } from '../../../utils/index.js' -import { uid } from '../../../utils/uid.js' +import { anvilMainnet } from '../../../test/src/anvil.js' +import { accounts } from '../../../test/src/constants.js' +import { mainnet } from '../../chains/index.js' +import { createClient } from '../../clients/createClient.js' +import { custom } from '../../clients/transports/custom.js' +import { RpcRequestError } from '../../errors/request.js' +import type { + WalletCallReceipt, + WalletGetCallsStatusReturnType, +} from '../../types/eip1193.js' +import type { Hex } from '../../types/misc.js' +import { getHttpRpcClient, parseEther } from '../../utils/index.js' +import { uid } from '../../utils/uid.js' +import { mine } from '../index.js' import { getCallsStatus } from './getCallsStatus.js' import { sendCalls } from './sendCalls.js' @@ -57,7 +60,14 @@ const getClient = ({ } satisfies WalletCallReceipt }), ) - return { status: 'CONFIRMED', receipts } + return { + atomic: false, + chainId: '0x1', + id: params[0], + receipts, + status: 200, + version: '2.0.0', + } satisfies WalletGetCallsStatusReturnType } if (method === 'wallet_sendCalls') { @@ -97,7 +107,7 @@ test('default', async () => { }, }) - const id = await sendCalls(client, { + const { id } = await sendCalls(client, { account: accounts[0].address, calls: [ { @@ -120,7 +130,16 @@ test('default', async () => { await mine(testClient, { blocks: 1 }) - const { status, receipts } = await getCallsStatus(client, { id }) - expect(status).toMatchInlineSnapshot(`"CONFIRMED"`) + const { id: id_, receipts, ...rest } = await getCallsStatus(client, { id }) + expect(id_).toBeDefined() + expect(rest).toMatchInlineSnapshot(` + { + "atomic": false, + "chainId": 1, + "status": "success", + "statusCode": 200, + "version": "2.0.0", + } + `) expect(receipts!.length).toBe(3) }) diff --git a/src/actions/wallet/getCallsStatus.ts b/src/actions/wallet/getCallsStatus.ts new file mode 100644 index 0000000000..a91983db9f --- /dev/null +++ b/src/actions/wallet/getCallsStatus.ts @@ -0,0 +1,99 @@ +import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import type { ErrorType } from '../../errors/utils.js' +import type { Account } from '../../types/account.js' +import type { ExtractCapabilities } from '../../types/capabilities.js' +import type { Chain } from '../../types/chain.js' +import type { WalletGetCallsStatusReturnType } from '../../types/eip1193.js' +import type { Prettify } from '../../types/utils.js' +import type { RequestErrorType } from '../../utils/buildRequest.js' +import { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js' +import { receiptStatuses } from '../../utils/formatters/transactionReceipt.js' + +export type GetCallsStatusParameters = { id: string } + +export type GetCallsStatusReturnType = Prettify< + Omit< + WalletGetCallsStatusReturnType< + ExtractCapabilities<'getCallsStatus', 'ReturnType'>, + number, + bigint, + 'success' | 'reverted' + >, + 'status' + > & { + statusCode: number + status: 'pending' | 'success' | 'failure' | undefined + } +> + +export type GetCallsStatusErrorType = RequestErrorType | ErrorType + +/** + * Returns the status of a call batch that was sent via `sendCalls`. + * + * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus + * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns Status of the calls. {@link GetCallsStatusReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { getCallsStatus } from 'viem/actions' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' }) + */ +export async function getCallsStatus< + chain extends Chain | undefined, + account extends Account | undefined = undefined, +>( + client: Client, + parameters: GetCallsStatusParameters, +): Promise { + const { + atomic = false, + chainId, + receipts, + version = '2.0.0', + ...response + } = await client.request({ + method: 'wallet_getCallsStatus', + params: [parameters.id], + }) + const [status, statusCode] = (() => { + const statusCode = response.status + if (statusCode >= 100 && statusCode < 200) + return ['pending', statusCode] as const + if (statusCode >= 200 && statusCode < 300) + return ['success', statusCode] as const + if (statusCode >= 300 && statusCode < 700) + return ['failure', statusCode] as const + // @ts-expect-error: for backwards compatibility + if (statusCode === 'CONFIRMED') return ['success', 200] as const + // @ts-expect-error: for backwards compatibility + if (statusCode === 'PENDING') return ['pending', 100] as const + return [undefined, statusCode] + })() + return { + ...response, + atomic, + // @ts-expect-error: for backwards compatibility + chainId: chainId ? hexToNumber(chainId) : undefined, + receipts: + receipts?.map((receipt) => ({ + ...receipt, + blockNumber: hexToBigInt(receipt.blockNumber), + gasUsed: hexToBigInt(receipt.gasUsed), + status: receiptStatuses[receipt.status as '0x0' | '0x1'], + })) ?? [], + statusCode, + status, + version, + } +} diff --git a/src/actions/wallet/getCapabilities.test.ts b/src/actions/wallet/getCapabilities.test.ts new file mode 100644 index 0000000000..23794b3f51 --- /dev/null +++ b/src/actions/wallet/getCapabilities.test.ts @@ -0,0 +1,161 @@ +import { expect, test } from 'vitest' + +import { accounts } from '../../../test/src/constants.js' +import type { JsonRpcAccount } from '../../accounts/types.js' +import { type Client, createClient } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import { custom } from '../../clients/transports/custom.js' +import type { Chain } from '../../types/chain.js' +import { getCapabilities } from './getCapabilities.js' + +const client = createClient({ + transport: custom({ + async request({ method, params }) { + if (method === 'wallet_getCapabilities') + return { + '0x2105': { + atomic: { + status: 'supported', + }, + unstable_addSubAccount: { + keyTypes: ['address', 'p256', 'webcrypto-p256', 'webauthn-p256'], + supported: true, + }, + paymasterService: { + supported: params[0] === accounts[0].address, + }, + }, + '0x14A34': { + paymasterService: { + supported: params[0] === accounts[0].address, + }, + }, + } + + return null + }, + }), +}) + +test('default', async () => { + const capabilities = await getCapabilities(client) + expect(capabilities).toMatchInlineSnapshot(` + { + "8453": { + "atomic": { + "status": "supported", + }, + "paymasterService": { + "supported": false, + }, + "unstable_addSubAccount": { + "keyTypes": [ + "address", + "p256", + "webcrypto-p256", + "webauthn-p256", + ], + "supported": true, + }, + }, + "84532": { + "paymasterService": { + "supported": false, + }, + }, + } + `) +}) + +test('args: account', async () => { + const capabilities = await getCapabilities(client, { + account: accounts[0].address, + }) + expect(capabilities).toMatchInlineSnapshot(` + { + "8453": { + "atomic": { + "status": "supported", + }, + "paymasterService": { + "supported": true, + }, + "unstable_addSubAccount": { + "keyTypes": [ + "address", + "p256", + "webcrypto-p256", + "webauthn-p256", + ], + "supported": true, + }, + }, + "84532": { + "paymasterService": { + "supported": true, + }, + }, + } + `) +}) + +test('args: chainId', async () => { + const capabilities = await getCapabilities(client, { + account: accounts[0].address, + chainId: 8453, + }) + expect(capabilities).toMatchInlineSnapshot(` + { + "atomic": { + "status": "supported", + }, + "paymasterService": { + "supported": true, + }, + "unstable_addSubAccount": { + "keyTypes": [ + "address", + "p256", + "webcrypto-p256", + "webauthn-p256", + ], + "supported": true, + }, + } + `) +}) + +test('behavior: account on client', async () => { + const client_2 = { + ...client, + account: accounts[1].address, + } as unknown as Client + + const capabilities = await getCapabilities(client_2) + expect(capabilities).toMatchInlineSnapshot(` + { + "8453": { + "atomic": { + "status": "supported", + }, + "paymasterService": { + "supported": false, + }, + "unstable_addSubAccount": { + "keyTypes": [ + "address", + "p256", + "webcrypto-p256", + "webauthn-p256", + ], + "supported": true, + }, + }, + "84532": { + "paymasterService": { + "supported": false, + }, + }, + } + `) +}) diff --git a/src/actions/wallet/getCapabilities.ts b/src/actions/wallet/getCapabilities.ts new file mode 100644 index 0000000000..7977ccd483 --- /dev/null +++ b/src/actions/wallet/getCapabilities.ts @@ -0,0 +1,89 @@ +import type { Address } from 'abitype' + +import { parseAccount } from '../../accounts/utils/parseAccount.js' +import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import type { ErrorType } from '../../errors/utils.js' +import type { Account } from '../../types/account.js' +import type { + Capabilities, + ChainIdToCapabilities, + ExtractCapabilities, +} from '../../types/capabilities.js' +import type { Prettify } from '../../types/utils.js' +import type { RequestErrorType } from '../../utils/buildRequest.js' +import { numberToHex } from '../../utils/encoding/toHex.js' + +export type GetCapabilitiesParameters< + chainId extends number | undefined = undefined, +> = { + account?: Account | Address | undefined + chainId?: chainId | number | undefined +} + +export type GetCapabilitiesReturnType< + chainId extends number | undefined = undefined, +> = Prettify< + chainId extends number + ? ExtractCapabilities<'getCapabilities', 'ReturnType'> + : ChainIdToCapabilities< + Capabilities>, + number + > +> + +export type GetCapabilitiesErrorType = RequestErrorType | ErrorType + +/** + * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc). + * + * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities + * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { getCapabilities } from 'viem/actions' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * const capabilities = await getCapabilities(client) + */ +export async function getCapabilities< + chainId extends number | undefined = undefined, +>( + client: Client, + parameters: GetCapabilitiesParameters = {}, +): Promise> { + const { account = client.account, chainId } = parameters + + const account_ = account ? parseAccount(account) : undefined + + const params = chainId + ? ([account_?.address, [numberToHex(chainId)]] as const) + : ([account_?.address] as const) + const capabilities_raw = await client.request({ + method: 'wallet_getCapabilities', + params, + }) + + const capabilities = {} as ChainIdToCapabilities< + ExtractCapabilities<'getCapabilities', 'ReturnType'>, + number + > + for (const [chainId, capabilities_] of Object.entries(capabilities_raw)) { + capabilities[Number(chainId)] = {} + for (let [key, value] of Object.entries(capabilities_)) { + if (key === 'addSubAccount') key = 'unstable_addSubAccount' + capabilities[Number(chainId)][key] = value + } + } + return ( + typeof chainId === 'number' ? capabilities[chainId] : capabilities + ) as never +} diff --git a/src/actions/wallet/prepareAuthorization.test.ts b/src/actions/wallet/prepareAuthorization.test.ts index 5e5dea0af5..5cd84f2878 100644 --- a/src/actions/wallet/prepareAuthorization.test.ts +++ b/src/actions/wallet/prepareAuthorization.test.ts @@ -65,7 +65,7 @@ test('behavior: partial authorization: no chainId + nonce', async () => { { "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", "chainId": 1, - "nonce": 937, + "nonce": 953, } `, ) @@ -83,7 +83,7 @@ test('behavior: partial authorization: no nonce', async () => { { "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", "chainId": 10, - "nonce": 937, + "nonce": 953, } `, ) @@ -114,7 +114,7 @@ test('behavior: executor (address)', async () => { executor: '0x0000000000000000000000000000000000000000', }) - expect(authorization.nonce).toBe(937) + expect(authorization.nonce).toBe(953) }) test('behavior: executor (account)', async () => { @@ -124,7 +124,7 @@ test('behavior: executor (account)', async () => { executor: privateKeyToAccount(accounts[1].privateKey), }) - expect(authorization.nonce).toBe(937) + expect(authorization.nonce).toBe(953) }) test('behavior: executor (self-executing)', async () => { @@ -135,7 +135,7 @@ test('behavior: executor (self-executing)', async () => { executor: 'self', }) - expect(authorization.nonce).toBe(938) + expect(authorization.nonce).toBe(954) } { @@ -145,7 +145,7 @@ test('behavior: executor (self-executing)', async () => { executor: account, }) - expect(authorization.nonce).toBe(938) + expect(authorization.nonce).toBe(954) } }) diff --git a/src/actions/wallet/prepareTransactionRequest.test.ts b/src/actions/wallet/prepareTransactionRequest.test.ts index 0e42fafb35..c462ecb92b 100644 --- a/src/actions/wallet/prepareTransactionRequest.test.ts +++ b/src/actions/wallet/prepareTransactionRequest.test.ts @@ -736,7 +736,7 @@ test('args: parameters', async () => { "gas": 21000n, "maxFeePerGas": 13000000000n, "maxPriorityFeePerGas": 1000000000n, - "nonce": 937, + "nonce": 953, "to": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", "type": "eip1559", "value": 1000000000000000000n, @@ -767,7 +767,7 @@ test('args: parameters', async () => { "gas": 21000n, "maxFeePerGas": 13000000000n, "maxPriorityFeePerGas": 1000000000n, - "nonce": 937, + "nonce": 953, "to": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", "type": "eip1559", "value": 1000000000000000000n, @@ -978,10 +978,10 @@ test('behavior: nonce manager', async () => { } as const const request_1 = await prepareTransactionRequest(client, args) - expect(request_1.nonce).toBe(937) + expect(request_1.nonce).toBe(953) const request_2 = await prepareTransactionRequest(client, args) - expect(request_2.nonce).toBe(938) + expect(request_2.nonce).toBe(954) const [request_3, request_4, request_5] = await Promise.all([ prepareTransactionRequest(client, args), @@ -989,7 +989,7 @@ test('behavior: nonce manager', async () => { prepareTransactionRequest(client, args), ]) - expect(request_3.nonce).toBe(939) - expect(request_4.nonce).toBe(940) - expect(request_5.nonce).toBe(941) + expect(request_3.nonce).toBe(955) + expect(request_4.nonce).toBe(956) + expect(request_5.nonce).toBe(957) }) diff --git a/src/experimental/eip5792/actions/sendCalls.test.ts b/src/actions/wallet/sendCalls.test.ts similarity index 77% rename from src/experimental/eip5792/actions/sendCalls.test.ts rename to src/actions/wallet/sendCalls.test.ts index 51567b5883..b3c5ce30fd 100644 --- a/src/experimental/eip5792/actions/sendCalls.test.ts +++ b/src/actions/wallet/sendCalls.test.ts @@ -1,25 +1,25 @@ import { expect, test } from 'vitest' -import { wagmiContractConfig } from '../../../../test/src/abis.js' -import { anvilMainnet } from '../../../../test/src/anvil.js' -import { accounts } from '../../../../test/src/constants.js' -import { reset } from '../../../actions/index.js' -import { type Chain, mainnet } from '../../../chains/index.js' -import { type Client, createClient } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import { custom } from '../../../clients/transports/custom.js' -import { RpcRequestError } from '../../../errors/request.js' -import type { WalletCallReceipt } from '../../../types/eip1193.js' -import type { Hex } from '../../../types/misc.js' -import { getHttpRpcClient, parseEther } from '../../../utils/index.js' -import { uid } from '../../../utils/uid.js' +import { wagmiContractConfig } from '../../../test/src/abis.js' +import { anvilMainnet } from '../../../test/src/anvil.js' +import { accounts } from '../../../test/src/constants.js' +import { type Chain, mainnet } from '../../chains/index.js' +import { type Client, createClient } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import { custom } from '../../clients/transports/custom.js' +import { RpcRequestError } from '../../errors/request.js' +import type { + WalletCallReceipt, + WalletGetCallsStatusReturnType, +} from '../../types/eip1193.js' +import type { Hex } from '../../types/misc.js' +import { getHttpRpcClient, parseEther } from '../../utils/index.js' +import { uid } from '../../utils/uid.js' import { sendCalls } from './sendCalls.js' type Uid = string type TxHashes = Hex[] const calls = new Map() -const testClient = anvilMainnet.getClient() - const getClient = ({ chain, onRequest, @@ -37,7 +37,16 @@ const getClient = ({ if (method === 'wallet_getCallsStatus') { const hashes = calls.get(params[0]) - if (!hashes) return { status: 'PENDING', receipts: [] } + if (!hashes) + return { + atomic: false, + chainId: '0x1', + id: params[0], + status: 100, + receipts: [], + version: '2.0.0', + } satisfies WalletGetCallsStatusReturnType + const receipts = await Promise.all( hashes.map(async (hash) => { const { result, error } = await rpcClient.request({ @@ -64,7 +73,14 @@ const getClient = ({ } satisfies WalletCallReceipt }), ) - return { status: 'CONFIRMED', receipts } + return { + atomic: false, + chainId: '0x1', + id: params[0], + status: 200, + receipts, + version: '2.0.0', + } satisfies WalletGetCallsStatusReturnType } if (method === 'wallet_sendCalls') { @@ -117,12 +133,7 @@ test('default', async () => { }, }) - await reset(testClient, { - blockNumber: 16280770n, - jsonRpcUrl: anvilMainnet.forkUrl, - }) - - const id_ = await sendCalls(client, { + const response = await sendCalls(client, { account: accounts[0].address, chain: mainnet, calls: [ @@ -151,11 +162,12 @@ test('default', async () => { ], }) - expect(id_).toBeDefined() + expect(response.id).toBeDefined() expect(requests).toMatchInlineSnapshot(` [ [ { + "atomicRequired": false, "calls": [ { "data": undefined, @@ -183,10 +195,11 @@ test('default', async () => { "value": undefined, }, ], - "capabilities": undefined, + "capabilities": {}, "chainId": "0x1", "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "version": "1.0", + "id": undefined, + "version": "2.0.0", }, ], ] @@ -203,12 +216,7 @@ test('behavior: chain on client', async () => { }, }) - await reset(testClient, { - blockNumber: 16280770n, - jsonRpcUrl: anvilMainnet.forkUrl, - }) - - const id_ = await sendCalls(client, { + const { id } = await sendCalls(client, { account: accounts[0].address, calls: [ { @@ -236,11 +244,12 @@ test('behavior: chain on client', async () => { ], }) - expect(id_).toBeDefined() + expect(id).toBeDefined() expect(requests).toMatchInlineSnapshot(` [ [ { + "atomicRequired": false, "calls": [ { "data": undefined, @@ -268,10 +277,11 @@ test('behavior: chain on client', async () => { "value": undefined, }, ], - "capabilities": undefined, + "capabilities": {}, "chainId": "0x1", "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "version": "1.0", + "id": undefined, + "version": "2.0.0", }, ], ] @@ -287,12 +297,7 @@ test('behavior: inferred account', async () => { }, }) - await reset(testClient, { - blockNumber: 16280770n, - jsonRpcUrl: anvilMainnet.forkUrl, - }) - - const id_ = await sendCalls(client, { + const { id } = await sendCalls(client, { account: null, chain: mainnet, calls: [ @@ -321,11 +326,12 @@ test('behavior: inferred account', async () => { ], }) - expect(id_).toBeDefined() + expect(id).toBeDefined() expect(requests).toMatchInlineSnapshot(` [ [ { + "atomicRequired": false, "calls": [ { "data": undefined, @@ -353,10 +359,68 @@ test('behavior: inferred account', async () => { "value": undefined, }, ], - "capabilities": undefined, + "capabilities": {}, "chainId": "0x1", "from": undefined, - "version": "1.0", + "id": undefined, + "version": "2.0.0", + }, + ], + ] + `) +}) + +test('behavior: capability: paymasterService', async () => { + const requests: unknown[] = [] + + const client = getClient({ + onRequest({ params }) { + requests.push(params) + }, + }) + + const response = await sendCalls(client, { + account: accounts[0].address, + capabilities: { + paymasterService: { + 1: { + url: 'https://paymaster.com', + }, + }, + }, + chain: mainnet, + calls: [ + { + to: accounts[1].address, + value: parseEther('1'), + }, + ], + }) + + expect(response.id).toBeDefined() + expect(requests).toMatchInlineSnapshot(` + [ + [ + { + "atomicRequired": false, + "calls": [ + { + "data": undefined, + "to": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + "value": "0xde0b6b3a7640000", + }, + ], + "capabilities": { + "paymasterService": { + "0x1": { + "url": "https://paymaster.com", + }, + }, + }, + "chainId": "0x1", + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "id": undefined, + "version": "2.0.0", }, ], ] @@ -397,7 +461,7 @@ test('error: no account', async () => { [AccountNotFoundError: Could not find an Account to execute with this Action. Please provide an Account with the \`account\` argument on the Action, or by supplying an \`account\` to the Client. - Docs: https://viem.sh/experimental/eip5792/sendCalls + Docs: https://viem.sh/docs/actions/wallet/sendCalls Version: viem@x.y.z] `) }) diff --git a/src/experimental/eip5792/actions/sendCalls.ts b/src/actions/wallet/sendCalls.ts similarity index 55% rename from src/experimental/eip5792/actions/sendCalls.ts rename to src/actions/wallet/sendCalls.ts index 3206565903..12710bd1a5 100644 --- a/src/experimental/eip5792/actions/sendCalls.ts +++ b/src/actions/wallet/sendCalls.ts @@ -1,21 +1,20 @@ import type { Address, Narrow } from 'abitype' -import { parseAccount } from '../../../accounts/utils/parseAccount.js' -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import { AccountNotFoundError } from '../../../errors/account.js' -import type { BaseError } from '../../../errors/base.js' -import type { ErrorType } from '../../../errors/utils.js' -import type { Account, GetAccountParameter } from '../../../types/account.js' -import type { Call, Calls } from '../../../types/calls.js' -import type { Chain, DeriveChain } from '../../../types/chain.js' -import type { - WalletCapabilities, - WalletSendCallsParameters, -} from '../../../types/eip1193.js' -import { encodeFunctionData } from '../../../utils/abi/encodeFunctionData.js' -import type { RequestErrorType } from '../../../utils/buildRequest.js' -import { numberToHex } from '../../../utils/encoding/toHex.js' -import { getTransactionError } from '../../../utils/errors/getTransactionError.js' +import { parseAccount } from '../../accounts/utils/parseAccount.js' +import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import { AccountNotFoundError } from '../../errors/account.js' +import type { BaseError } from '../../errors/base.js' +import type { ErrorType } from '../../errors/utils.js' +import type { Account, GetAccountParameter } from '../../types/account.js' +import type { Call, Calls } from '../../types/calls.js' +import type { ExtractCapabilities } from '../../types/capabilities.js' +import type { Chain, DeriveChain } from '../../types/chain.js' +import type { WalletSendCallsParameters } from '../../types/eip1193.js' +import type { Prettify } from '../../types/utils.js' +import { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js' +import type { RequestErrorType } from '../../utils/buildRequest.js' +import { numberToHex } from '../../utils/encoding/toHex.js' +import { getTransactionError } from '../../utils/errors/getTransactionError.js' export type SendCallsParameters< chain extends Chain | undefined = Chain | undefined, @@ -27,20 +26,23 @@ export type SendCallsParameters< > = { chain?: chainOverride | Chain | undefined calls: Calls> - capabilities?: - | WalletSendCallsParameters[number]['capabilities'] - | undefined + capabilities?: ExtractCapabilities<'sendCalls', 'Request'> | undefined + forceAtomic?: boolean | undefined + id?: string | undefined version?: WalletSendCallsParameters[number]['version'] | undefined } & GetAccountParameter -export type SendCallsReturnType = string +export type SendCallsReturnType = Prettify<{ + capabilities?: ExtractCapabilities<'sendCalls', 'ReturnType'> | undefined + id: string +}> export type SendCallsErrorType = RequestErrorType | ErrorType /** * Requests the connected wallet to send a batch of calls. * - * - Docs: https://viem.sh/experimental/eip5792/sendCalls + * - Docs: https://viem.sh/docs/actions/wallet/sendCalls * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792) * * @param client - Client to use @@ -49,7 +51,7 @@ export type SendCallsErrorType = RequestErrorType | ErrorType * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' - * import { sendCalls } from 'viem/experimental' + * import { sendCalls } from 'viem/actions' * * const client = createWalletClient({ * chain: mainnet, @@ -80,14 +82,15 @@ export async function sendCalls< ): Promise { const { account: account_ = client.account, - capabilities, chain = client.chain, - version = '1.0', + forceAtomic = false, + id, + version = '2.0.0', } = parameters if (typeof account_ === 'undefined') throw new AccountNotFoundError({ - docsPath: '/experimental/eip5792/sendCalls', + docsPath: '/docs/actions/wallet/sendCalls', }) const account = account_ ? parseAccount(account_) : null @@ -110,21 +113,25 @@ export async function sendCalls< }) try { - return await client.request( + const response = await client.request( { method: 'wallet_sendCalls', params: [ { + atomicRequired: forceAtomic, calls, - capabilities, + capabilities: formatRequestCapabilities(parameters.capabilities), chainId: numberToHex(chain!.id), from: account?.address, + id, version, }, ], }, { retryCount: 0 }, ) + if (typeof response === 'string') return { id: response } + return response as never } catch (err) { throw getTransactionError(err as BaseError, { ...parameters, @@ -133,3 +140,26 @@ export async function sendCalls< }) } } + +function formatRequestCapabilities( + capabilities: ExtractCapabilities<'sendCalls', 'Request'> | undefined, +) { + const paymasterService = capabilities?.paymasterService + ? Object.entries(capabilities.paymasterService).reduce( + (paymasterService, [chainId, value]) => ({ + ...(paymasterService ?? {}), + [numberToHex(Number(chainId))]: value, + }), + {}, + ) + : undefined + + return { + ...capabilities, + ...(paymasterService + ? { + paymasterService, + } + : {}), + } +} diff --git a/src/actions/wallet/sendTransaction.test.ts b/src/actions/wallet/sendTransaction.test.ts index 2987e9c7f6..5061f1ea32 100644 --- a/src/actions/wallet/sendTransaction.test.ts +++ b/src/actions/wallet/sendTransaction.test.ts @@ -6,7 +6,7 @@ import { anvilMainnet, anvilSepolia } from '../../../test/src/anvil.js' import { privateKeyToAccount } from '../../accounts/privateKeyToAccount.js' import { celo, localhost, mainnet, optimism } from '../../chains/index.js' -import { maxUint256 } from '~viem/constants/number.js' +import { maxUint256 } from '~zkr-viem/constants/number.js' import { BatchCallDelegation } from '../../../contracts/generated.js' import { getSmartAccounts_07 } from '../../../test/src/account-abstraction.js' import { deploy } from '../../../test/src/utils.js' @@ -196,7 +196,7 @@ test('sends transaction (w/ serializer)', async () => { ).rejects.toThrowError() expect(serializer).toReturnWith( - '0x08f2018203a9843b9aca0084650118e6825208809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0', + '0x08f2018203b9843b9aca008469126a1c825208809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0', ) }) @@ -709,168 +709,6 @@ describe('local account', () => { ).toBeLessThan(sourceAccount.balance) }) - test('args: gas', async () => { - await setup() - - const hash = await sendTransaction(client, { - account: privateKeyToAccount(sourceAccount.privateKey), - to: targetAccount.address, - value: parseEther('1'), - gas: 1_000_000n, - }) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - - await mine(client, { blocks: 1 }) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10001000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toBeLessThan(sourceAccount.balance) - - const transaction = await getTransaction(client, { hash }) - expect(transaction.gas).toBe(1_000_000n) - }) - - test('args: chain', async () => { - await setup() - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - - const hash = await sendTransaction(client, { - account: privateKeyToAccount(sourceAccount.privateKey), - chain: mainnet, - to: targetAccount.address, - value: parseEther('1'), - }) - - await mine(client, { blocks: 1 }) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10001000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toBeLessThan(sourceAccount.balance) - - const transaction = await getTransaction(client, { hash }) - expect(transaction.chainId).toBe(1) - }) - - test('args: chain (nullish)', async () => { - await setup() - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - - const hash = await sendTransaction(client, { - account: privateKeyToAccount(sourceAccount.privateKey), - chain: null, - to: targetAccount.address, - value: parseEther('1'), - }) - - await mine(client, { blocks: 1 }) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10001000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toBeLessThan(sourceAccount.balance) - - const transaction = await getTransaction(client, { hash }) - expect(transaction.chainId).toBe(1) - }) - - describe('args: maxFeePerGas', () => { - test('sends transaction', async () => { - await setup() - - const fees = await estimateFeesPerGas(client) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toMatchInlineSnapshot('10000000000000000000000n') - - const hash = await sendTransaction(client, { - account: privateKeyToAccount(sourceAccount.privateKey), - to: targetAccount.address, - value: parseEther('1'), - maxFeePerGas: fees.maxFeePerGas, - }) - expect(hash).toBeDefined() - - await mine(client, { blocks: 1 }) - - expect( - await getBalance(client, { address: targetAccount.address }), - ).toMatchInlineSnapshot('10001000000000000000000n') - expect( - await getBalance(client, { address: sourceAccount.address }), - ).toBeLessThan(sourceAccount.balance) - - const transaction = await getTransaction(client, { hash }) - expect(transaction.maxFeePerGas).toBe(fees.maxFeePerGas) - }) - - test('errors when account has insufficient funds', async () => { - await setup() - - const block = await getBlock(client) - - await expect(() => - sendTransaction(client, { - account: privateKeyToAccount(sourceAccount.privateKey), - to: targetAccount.address, - value: parseEther('1'), - maxFeePerGas: BigInt(block.baseFeePerGas ?? 0) + parseEther('10000'), - }), - ).rejects.toThrowErrorMatchingInlineSnapshot( - ` - [TransactionExecutionError: The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account. - - This error could arise when the account does not have enough funds to: - - pay for the total gas fee, - - pay for the value to send. - - The cost of the transaction is calculated as \`gas * gas fee + value\`, where: - - \`gas\` is the amount of gas needed for transaction to execute, - - \`gas fee\` is the gas fee, - - \`value\` is the amount of ether to send to the recipient. - - Request Arguments: - from: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 - to: 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 - value: 1 ETH - maxFeePerGas: 10000000000010 gwei - - Details: Insufficient funds for gas * price + value - Version: viem@x.y.z] - `, - ) - }) - }) - test('args: authorizationList', async () => { const eoa = privateKeyToAccount(generatePrivateKey()) const relay = privateKeyToAccount(accounts[1].privateKey) @@ -1084,6 +922,168 @@ describe('local account', () => { ).toBe(balance_recipient + parseEther('1')) }) + test('args: gas', async () => { + await setup() + + const hash = await sendTransaction(client, { + account: privateKeyToAccount(sourceAccount.privateKey), + to: targetAccount.address, + value: parseEther('1'), + gas: 30_000n, + }) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + + await mine(client, { blocks: 1 }) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10001000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toBeLessThan(sourceAccount.balance) + + const transaction = await getTransaction(client, { hash }) + expect(transaction.gas).toBe(30_000n) + }) + + test('args: chain', async () => { + await setup() + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + + const hash = await sendTransaction(client, { + account: privateKeyToAccount(sourceAccount.privateKey), + chain: mainnet, + to: targetAccount.address, + value: parseEther('1'), + }) + + await mine(client, { blocks: 1 }) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10001000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toBeLessThan(sourceAccount.balance) + + const transaction = await getTransaction(client, { hash }) + expect(transaction.chainId).toBe(1) + }) + + test('args: chain (nullish)', async () => { + await setup() + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + + const hash = await sendTransaction(client, { + account: privateKeyToAccount(sourceAccount.privateKey), + chain: null, + to: targetAccount.address, + value: parseEther('1'), + }) + + await mine(client, { blocks: 1 }) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10001000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toBeLessThan(sourceAccount.balance) + + const transaction = await getTransaction(client, { hash }) + expect(transaction.chainId).toBe(1) + }) + + describe('args: maxFeePerGas', () => { + test('sends transaction', async () => { + await setup() + + const fees = await estimateFeesPerGas(client) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toMatchInlineSnapshot('10000000000000000000000n') + + const hash = await sendTransaction(client, { + account: privateKeyToAccount(sourceAccount.privateKey), + to: targetAccount.address, + value: parseEther('1'), + maxFeePerGas: fees.maxFeePerGas, + }) + expect(hash).toBeDefined() + + await mine(client, { blocks: 1 }) + + expect( + await getBalance(client, { address: targetAccount.address }), + ).toMatchInlineSnapshot('10001000000000000000000n') + expect( + await getBalance(client, { address: sourceAccount.address }), + ).toBeLessThan(sourceAccount.balance) + + const transaction = await getTransaction(client, { hash }) + expect(transaction.maxFeePerGas).toBe(fees.maxFeePerGas) + }) + + test('errors when account has insufficient funds', async () => { + await setup() + + const block = await getBlock(client) + + await expect(() => + sendTransaction(client, { + account: privateKeyToAccount(sourceAccount.privateKey), + to: targetAccount.address, + value: parseEther('1'), + maxFeePerGas: BigInt(block.baseFeePerGas ?? 0) + parseEther('10000'), + }), + ).rejects.toThrowErrorMatchingInlineSnapshot( + ` + [TransactionExecutionError: The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account. + + This error could arise when the account does not have enough funds to: + - pay for the total gas fee, + - pay for the value to send. + + The cost of the transaction is calculated as \`gas * gas fee + value\`, where: + - \`gas\` is the amount of gas needed for transaction to execute, + - \`gas fee\` is the gas fee, + - \`value\` is the amount of ether to send to the recipient. + + Request Arguments: + from: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + to: 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 + value: 1 ETH + maxFeePerGas: 10000000000010 gwei + + Details: Insufficient funds for gas * price + value + Version: viem@x.y.z] + `, + ) + }) + }) + test('args: blobs', async () => { const blobs = toBlobs({ data: stringToHex(blobData), diff --git a/src/actions/wallet/sendTransaction.ts b/src/actions/wallet/sendTransaction.ts index 46aac2b4af..89375bd64a 100644 --- a/src/actions/wallet/sendTransaction.ts +++ b/src/actions/wallet/sendTransaction.ts @@ -17,8 +17,11 @@ import { import { BaseError } from '../../errors/base.js' import type { ErrorType } from '../../errors/utils.js' import type { GetAccountParameter } from '../../types/account.js' -import type { Chain, DeriveChain } from '../../types/chain.js' -import type { GetChainParameter } from '../../types/chain.js' +import type { + Chain, + DeriveChain, + GetChainParameter, +} from '../../types/chain.js' import type { GetTransactionRequestKzgParameter } from '../../types/kzg.js' import type { Hash } from '../../types/misc.js' import type { TransactionRequest } from '../../types/transaction.js' @@ -167,6 +170,7 @@ export async function sendTransaction< maxFeePerGas, maxPriorityFeePerGas, nonce, + type, value, ...rest } = parameters @@ -231,6 +235,7 @@ export async function sendTransaction< maxPriorityFeePerGas, nonce, to, + type, value, } as TransactionRequest) @@ -310,6 +315,7 @@ export async function sendTransaction< nonce, nonceManager: account.nonceManager, parameters: [...defaultParameters, 'sidecars'], + type, value, ...rest, to, diff --git a/src/experimental/eip5792/actions/showCallsStatus.test.ts b/src/actions/wallet/showCallsStatus.test.ts similarity index 69% rename from src/experimental/eip5792/actions/showCallsStatus.test.ts rename to src/actions/wallet/showCallsStatus.test.ts index b20985f916..041fa3be5c 100644 --- a/src/experimental/eip5792/actions/showCallsStatus.test.ts +++ b/src/actions/wallet/showCallsStatus.test.ts @@ -1,6 +1,6 @@ import { test } from 'vitest' -import { createClient } from '../../../clients/createClient.js' -import { custom } from '../../../clients/transports/custom.js' +import { createClient } from '../../clients/createClient.js' +import { custom } from '../../clients/transports/custom.js' import { showCallsStatus } from './showCallsStatus.js' const client = createClient({ diff --git a/src/experimental/eip5792/actions/showCallsStatus.ts b/src/actions/wallet/showCallsStatus.ts similarity index 69% rename from src/experimental/eip5792/actions/showCallsStatus.ts rename to src/actions/wallet/showCallsStatus.ts index 27935e0275..63c77ece77 100644 --- a/src/experimental/eip5792/actions/showCallsStatus.ts +++ b/src/actions/wallet/showCallsStatus.ts @@ -1,9 +1,9 @@ -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import type { ErrorType } from '../../../errors/utils.js' -import type { Account } from '../../../types/account.js' -import type { Chain } from '../../../types/chain.js' -import type { RequestErrorType } from '../../../utils/buildRequest.js' +import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import type { ErrorType } from '../../errors/utils.js' +import type { Account } from '../../types/account.js' +import type { Chain } from '../../types/chain.js' +import type { RequestErrorType } from '../../utils/buildRequest.js' export type ShowCallsStatusParameters = { id: string } @@ -15,7 +15,7 @@ export type ShowCallsStatusErrorType = RequestErrorType | ErrorType * Requests for the wallet to show information about a call batch * that was sent via `sendCalls`. * - * - Docs: https://viem.sh/experimental/eip5792/showCallsStatus + * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) * * @param client - Client to use @@ -24,7 +24,7 @@ export type ShowCallsStatusErrorType = RequestErrorType | ErrorType * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' - * import { showCallsStatus } from 'viem/experimental' + * import { showCallsStatus } from 'viem/actions' * * const client = createWalletClient({ * chain: mainnet, diff --git a/src/actions/wallet/signAuthorization.test.ts b/src/actions/wallet/signAuthorization.test.ts index 0279e507b1..3846601845 100644 --- a/src/actions/wallet/signAuthorization.test.ts +++ b/src/actions/wallet/signAuthorization.test.ts @@ -108,7 +108,7 @@ test('behavior: address as authorization', async () => { { "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", "chainId": 1, - "nonce": 937, + "nonce": 953, "r": null, "s": null, "v": null, @@ -145,7 +145,7 @@ test('behavior: partial authorization: no chainId + nonce', async () => { { "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", "chainId": 1, - "nonce": 937, + "nonce": 953, "r": null, "s": null, "v": null, @@ -183,7 +183,7 @@ test('behavior: partial authorization: no nonce', async () => { { "address": "0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2", "chainId": 10, - "nonce": 937, + "nonce": 953, "r": null, "s": null, "v": null, @@ -248,7 +248,7 @@ test('behavior: self-executing', async () => { executor: 'self', }) - expect(authorization.nonce).toBe(938) + expect(authorization.nonce).toBe(954) expect( await verifyAuthorization({ address: account.address, diff --git a/src/actions/wallet/signTransaction.test-d.ts b/src/actions/wallet/signTransaction.test-d.ts index 876c5b7cc8..624b564e2c 100644 --- a/src/actions/wallet/signTransaction.test-d.ts +++ b/src/actions/wallet/signTransaction.test-d.ts @@ -14,7 +14,7 @@ import type { TransactionSerializedEIP4844, TransactionSerializedEIP7702, TransactionSerializedLegacy, -} from '~viem/index.js' +} from '~zkr-viem/index.js' import { signTransaction } from './signTransaction.js' const walletClient = createWalletClient({ diff --git a/src/actions/wallet/signTransaction.test.ts b/src/actions/wallet/signTransaction.test.ts index d7266543a0..c76a225f4f 100644 --- a/src/actions/wallet/signTransaction.test.ts +++ b/src/actions/wallet/signTransaction.test.ts @@ -70,7 +70,7 @@ describe('eip7702', async () => { }) const signature = await signTransaction(client, request) expect(signature).toMatchInlineSnapshot( - `"0x04f8cc01820311843b9aca0084650118e68252089400000000000000000000000000000000000000008080c0f85ef85c0194fba3912ca04dd458c843e2ee08967fc04f3579c28201a480a08d7765afec6e09d93be91a1324f0dbbd6bcb96f4b37e8645a4c65d08a979ab69a070b81c53368b35a58af8630903c57d2b106842f9a081e3dc607c0c0cd990c77d01a0c37be5cbb64a094683f3e024fe766a41c42c57a715530e7d76fd5f64c89cbe7ea02c89f073b5f0e3a964f9e75f6781ca6a08aad57b75521c7a0046824b41c92d96"`, + `"0x04f8cc01820311843b9aca008469126a1c8252089400000000000000000000000000000000000000008080c0f85ef85c0194fba3912ca04dd458c843e2ee08967fc04f3579c28201a480a08d7765afec6e09d93be91a1324f0dbbd6bcb96f4b37e8645a4c65d08a979ab69a070b81c53368b35a58af8630903c57d2b106842f9a081e3dc607c0c0cd990c77d01a092899fa1dac969c7d534b372995169ce2b5ee0b6007f21a7af97fab2d42b4434a071e44a7f22acf079c704be2e83ed1a2127cd563c863efef7d9fcdb74e999fd99"`, ) }) }) @@ -117,7 +117,7 @@ describe('eip1559', () => { ...baseEip1559, }) expect(signature).toMatchInlineSnapshot( - `"0x02f8540182031180845ac2a1fa825208808080c080a01956d9a9527c1dcfb45ccb87b733c7ea6d59057f0055d60c5a6c956a654f17e2a074bc929c8efa8cb8148c2c52e847180d5425b245642548cdf773f8dfe6ca1a26"`, + `"0x02f854018203118084607d7d8a825208808080c080a02591128fce3fce3e2c4feaafb1cadfcafe81fa66f00b0eec2ca5bb9bf05ebeb9a019edec10144ec5e05de3f5fff2b792cbe6e7a946f659a2020f8fee4d4689df6a"`, ) }) diff --git a/src/actions/wallet/switchChain.ts b/src/actions/wallet/switchChain.ts index f4ad22e3ff..8a9784b15d 100644 --- a/src/actions/wallet/switchChain.ts +++ b/src/actions/wallet/switchChain.ts @@ -23,7 +23,7 @@ export type SwitchChainErrorType = * Switch the target chain in a wallet. * * - Docs: https://viem.sh/docs/actions/wallet/switchChain - * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326) + * - JSON-RPC Methods: [`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326) * * @param client - Client to use * @param parameters - {@link SwitchChainParameters} diff --git a/src/experimental/eip5792/actions/waitForCallsStatus.test.ts b/src/actions/wallet/waitForCallsStatus.test.ts similarity index 73% rename from src/experimental/eip5792/actions/waitForCallsStatus.test.ts rename to src/actions/wallet/waitForCallsStatus.test.ts index 4bf02b1c3e..37e9f50946 100644 --- a/src/experimental/eip5792/actions/waitForCallsStatus.test.ts +++ b/src/actions/wallet/waitForCallsStatus.test.ts @@ -1,15 +1,18 @@ import { expect, test } from 'vitest' -import { anvilMainnet } from '../../../../test/src/anvil.js' -import { accounts } from '../../../../test/src/constants.js' -import { mine } from '../../../actions/index.js' -import { mainnet } from '../../../chains/index.js' -import { createClient } from '../../../clients/createClient.js' -import { custom } from '../../../clients/transports/custom.js' -import { RpcRequestError } from '../../../errors/request.js' -import type { WalletCallReceipt } from '../../../types/eip1193.js' -import type { Hex } from '../../../types/misc.js' -import { getHttpRpcClient, parseEther } from '../../../utils/index.js' -import { uid } from '../../../utils/uid.js' +import { anvilMainnet } from '../../../test/src/anvil.js' +import { accounts } from '../../../test/src/constants.js' +import { mainnet } from '../../chains/index.js' +import { createClient } from '../../clients/createClient.js' +import { custom } from '../../clients/transports/custom.js' +import { RpcRequestError } from '../../errors/request.js' +import type { + WalletCallReceipt, + WalletGetCallsStatusReturnType, +} from '../../types/eip1193.js' +import type { Hex } from '../../types/misc.js' +import { getHttpRpcClient, parseEther } from '../../utils/index.js' +import { uid } from '../../utils/uid.js' +import { mine } from '../index.js' import { sendCalls } from './sendCalls.js' import { waitForCallsStatus } from './waitForCallsStatus.js' @@ -32,7 +35,16 @@ const getClient = ({ if (method === 'wallet_getCallsStatus') { const hashes = calls.get(params[0]) - if (!hashes) return { status: 'PENDING', receipts: [] } + if (!hashes) + return { + atomic: false, + chainId: '0x1', + id: params[0], + receipts: [], + status: 100, + version: '2.0.0', + } satisfies WalletGetCallsStatusReturnType + const receipts = await Promise.all( hashes.map(async (hash) => { const { result, error } = await rpcClient.request({ @@ -58,7 +70,14 @@ const getClient = ({ } satisfies WalletCallReceipt }), ) - return { status: 'CONFIRMED', receipts } + return { + atomic: false, + chainId: '0x1', + id: params[0], + receipts, + status: 200, + version: '2.0.0', + } satisfies WalletGetCallsStatusReturnType } if (method === 'wallet_sendCalls') { @@ -100,7 +119,7 @@ test('default', async () => { }, }) - const id = await sendCalls(client, { + const { id } = await sendCalls(client, { account: accounts[0].address, calls: [ { @@ -123,15 +142,30 @@ test('default', async () => { await mine(testClient, { blocks: 1 }) - const { status, receipts } = await waitForCallsStatus(client, { id }) - expect(status).toMatchInlineSnapshot(`"CONFIRMED"`) + const { + id: id_, + receipts, + ...rest + } = await waitForCallsStatus(client, { + id, + }) + expect(id_).toBeDefined() + expect(rest).toMatchInlineSnapshot(` + { + "atomic": false, + "chainId": 1, + "status": "success", + "statusCode": 200, + "version": "2.0.0", + } + `) expect(receipts!.length).toBe(3) }) test('behavior: timeout exceeded', async () => { const client = getClient() - const id = await sendCalls(client, { + const { id } = await sendCalls(client, { account: accounts[0].address, calls: [ { @@ -175,7 +209,7 @@ test('behavior: `wallet_getCallsStatus` failure', async () => { }, }) - const id = await sendCalls(client, { + const { id } = await sendCalls(client, { account: accounts[0].address, calls: [ { diff --git a/src/experimental/eip5792/actions/waitForCallsStatus.ts b/src/actions/wallet/waitForCallsStatus.ts similarity index 70% rename from src/experimental/eip5792/actions/waitForCallsStatus.ts rename to src/actions/wallet/waitForCallsStatus.ts index 42e6810e14..010ddf36d6 100644 --- a/src/experimental/eip5792/actions/waitForCallsStatus.ts +++ b/src/actions/wallet/waitForCallsStatus.ts @@ -1,16 +1,15 @@ -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import { BaseError } from '../../../errors/base.js' -import type { ErrorType } from '../../../errors/utils.js' -import type { Chain } from '../../../types/chain.js' -import type { WalletGetCallsStatusReturnType } from '../../../types/eip1193.js' -import type { Prettify } from '../../../types/utils.js' -import { type ObserveErrorType, observe } from '../../../utils/observe.js' -import { type PollErrorType, poll } from '../../../utils/poll.js' -import { withResolvers } from '../../../utils/promise/withResolvers.js' -import { stringify } from '../../../utils/stringify.js' +import type { Client } from '../../clients/createClient.js' +import type { Transport } from '../../clients/transports/createTransport.js' +import { BaseError } from '../../errors/base.js' +import type { ErrorType } from '../../errors/utils.js' +import type { Chain } from '../../types/chain.js' +import { type ObserveErrorType, observe } from '../../utils/observe.js' +import { type PollErrorType, poll } from '../../utils/poll.js' +import { withResolvers } from '../../utils/promise/withResolvers.js' +import { stringify } from '../../utils/stringify.js' import { type GetCallsStatusErrorType, + type GetCallsStatusReturnType, getCallsStatus, } from './getCallsStatus.js' @@ -26,11 +25,11 @@ export type WaitForCallsStatusParameters = { */ pollingInterval?: number | undefined /** - * The status to wait for. + * The status range to wait for. * - * @default 'CONFIRMED' + * @default (status) => status >= 200 */ - status?: 'CONFIRMED' | undefined + status?: ((parameters: GetCallsStatusReturnType) => boolean) | undefined /** * Optional timeout (in milliseconds) to wait before stopping polling. * @@ -39,9 +38,7 @@ export type WaitForCallsStatusParameters = { timeout?: number | undefined } -export type WaitForCallsStatusReturnType = Prettify< - WalletGetCallsStatusReturnType -> +export type WaitForCallsStatusReturnType = GetCallsStatusReturnType export type WaitForCallsStatusErrorType = | ObserveErrorType @@ -53,7 +50,7 @@ export type WaitForCallsStatusErrorType = /** * Waits for the status & receipts of a call bundle that was sent via `sendCalls`. * - * - Docs: https://viem.sh/experimental/eip5792/waitForCallsStatus + * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) * * @param client - Client to use @@ -63,7 +60,7 @@ export type WaitForCallsStatusErrorType = * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' - * import { waitForCallsStatus } from 'viem/experimental' + * import { waitForCallsStatus } from 'viem/actions' * * const client = createWalletClient({ * chain: mainnet, @@ -79,7 +76,7 @@ export async function waitForCallsStatus( const { id, pollingInterval = client.pollingInterval, - status = 'CONFIRMED', + status = ({ statusCode }) => statusCode >= 200, timeout = 60_000, } = parameters const observerId = stringify(['waitForCallsStatus', client.uid, id]) @@ -92,15 +89,19 @@ export async function waitForCallsStatus( const unobserve = observe(observerId, { resolve, reject }, (emit) => { const unpoll = poll( async () => { + const done = (fn: () => void) => { + clearTimeout(timer) + unpoll() + fn() + unobserve() + } + try { const result = await getCallsStatus(client, { id }) - if (result.status !== status) return - emit.resolve(result) + if (!status(result)) return + done(() => emit.resolve(result)) } catch (error) { - if (timer) clearTimeout(timer) - unpoll() - emit.reject(error) - unobserve() + done(() => emit.reject(error)) } }, { diff --git a/src/celo/fees.test.ts b/src/celo/fees.test.ts index 9db3b61361..680a2409fa 100644 --- a/src/celo/fees.test.ts +++ b/src/celo/fees.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test, vi } from 'vitest' -import { celo } from '~viem/chains/index.js' -import { http, createTestClient } from '~viem/index.js' +import { celo } from '~zkr-viem/chains/index.js' +import { http, createTestClient } from '~zkr-viem/index.js' const client = createTestClient({ transport: http(), diff --git a/src/celo/formatters.test-d.ts b/src/celo/formatters.test-d.ts index 924c657220..17c2cfdc89 100644 --- a/src/celo/formatters.test-d.ts +++ b/src/celo/formatters.test-d.ts @@ -1,7 +1,6 @@ import { describe, expectTypeOf, test } from 'vitest' import type { Address } from 'abitype' -import { getBlock } from '../actions/public/getBlock.js' import { getTransaction } from '../actions/public/getTransaction.js' import { prepareTransactionRequest } from '../actions/wallet/prepareTransactionRequest.js' import { sendTransaction } from '../actions/wallet/sendTransaction.js' @@ -10,39 +9,8 @@ import { celo } from '../chains/index.js' import { createPublicClient } from '../clients/createPublicClient.js' import { createWalletClient } from '../clients/createWalletClient.js' import { http } from '../clients/transports/http.js' -import type { Hash } from '../types/misc.js' import { formatters } from './formatters.js' -import type { CeloRpcBlock, CeloTransactionRequest } from './types.js' - -describe('block', () => { - expectTypeOf(formatters.block.format) - .parameter(0) - .toEqualTypeOf() - expectTypeOf< - ReturnType['difficulty'] - >().toEqualTypeOf() - expectTypeOf< - ReturnType['gasLimit'] - >().toEqualTypeOf() - expectTypeOf< - ReturnType['mixHash'] - >().toEqualTypeOf() - expectTypeOf< - ReturnType['nonce'] - >().toEqualTypeOf() - expectTypeOf< - ReturnType['uncles'] - >().toEqualTypeOf() - expectTypeOf< - ReturnType['randomness'] - >().toEqualTypeOf< - | { - committed: `0x${string}` - revealed: `0x${string}` - } - | undefined - >() -}) +import type { CeloTransactionRequest } from './types.js' describe('transaction', () => { expectTypeOf< @@ -66,59 +34,6 @@ describe('transactionRequest', () => { }) describe('smoke', () => { - test('block', async () => { - const client = createPublicClient({ - chain: celo, - transport: http(), - }) - const block = await getBlock(client, { - blockNumber: 16645775n, - }) - - expectTypeOf(block.randomness).toEqualTypeOf< - | { - committed: `0x${string}` - revealed: `0x${string}` - } - | undefined - >() - expectTypeOf(block.difficulty).toEqualTypeOf() - expectTypeOf(block.gasLimit).toEqualTypeOf() - expectTypeOf(block.mixHash).toEqualTypeOf() - expectTypeOf(block.nonce).toEqualTypeOf() - expectTypeOf(block.uncles).toEqualTypeOf() - expectTypeOf(block.transactions).toEqualTypeOf() - - const block_includeTransactions = await getBlock(client, { - blockNumber: 16645775n, - includeTransactions: true, - }) - expectTypeOf( - block_includeTransactions.transactions[0].feeCurrency, - ).toEqualTypeOf
() - expectTypeOf( - block_includeTransactions.transactions[0].gatewayFee, - ).toEqualTypeOf() - expectTypeOf( - block_includeTransactions.transactions[0].gatewayFeeRecipient, - ).toEqualTypeOf<`0x${string}` | null | undefined>() - - const block_pending = await getBlock(client, { - blockTag: 'pending', - includeTransactions: true, - }) - expectTypeOf(block_pending.hash).toEqualTypeOf() - expectTypeOf(block_pending.logsBloom).toEqualTypeOf() - expectTypeOf(block_pending.number).toEqualTypeOf() - expectTypeOf(block_pending.transactions[0].blockHash).toEqualTypeOf() - expectTypeOf( - block_pending.transactions[0].blockNumber, - ).toEqualTypeOf() - expectTypeOf( - block_pending.transactions[0].transactionIndex, - ).toEqualTypeOf() - }) - test('transaction', async () => { const client = createPublicClient({ chain: celo, diff --git a/src/celo/formatters.test.ts b/src/celo/formatters.test.ts index ed2b2970d4..b9395b465b 100644 --- a/src/celo/formatters.test.ts +++ b/src/celo/formatters.test.ts @@ -20,6 +20,8 @@ describe('block', () => { nonce: '0x1', sealFields: ['0x0'], sha3Uncles: '0x0', + mixHash: '0x0', + uncles: [], extraData: '0xd983010700846765746889676f312e31372e3133856c696e7578000000000000f8ccc0c080b84169807e4d7934803decfde330167e444ec323431e1ff4cd70f40f2e79f24ce91f60340b99f97e3562ee57389e2c72343a74379e0b8b7ca5237ec141e84278bb3e00f8418e3e8af95497b7f6ffe7d3c4cbfbbdb06b26f6f3e913ca2cb7dff23532eaf3eb9f3b06ae75498c88353d279cf58fb0570736e2aa20cf53381722b6485f0f3c8180f8418e3fffffffffffffffffffffffffffb0005d23be939b9f8135e6b1ff283baff985c1b6ccacf2b6aa7fbd8939c4b6178b1d242b574a614b6347182a3b3195258080', gasUsed: '0x1', @@ -30,12 +32,6 @@ describe('block', () => { number: '0x2', parentHash: '0xf6e57c99be5a81167bcb7bdf8d55572235384182c71635857ace2c04d25294ed', - randomness: { - committed: - '0x339714505ecf55eacc2d2568ea53a7424bd0aa40fd710fd6892464d0716da711', - revealed: - '0xe10b5f01b0376fdc9151f66992f8c1b990083acabc14ec1b04f6a53ad804db88', - }, receiptsRoot: '0xca8aabc507534e45c982aa43e38118fc6f9cf222800e3d703a6e299a2e661f2a', size: '0x3', @@ -61,13 +57,10 @@ describe('block', () => { "hash": "0xac8c9bc3b84e103dc321bbe83b670e425ff68bfc9a333a4f1b1b204ad11c583d", "logsBloom": "0x02004000004200000000000000800020000000000000400002040000002020000000802000000000000180000001000020800000000000000000000000000000000000000022000260000008000800000000000000000000000000000000000000000008000410002100000140000800000044c00200000000400010000800008800000080000000000010000040000000000000000000000000000000800020028000000100000000000000000000002002881000000000000800020000040020900402020000180000000000000040000800000011020090002000400000200010002000001000000000000080000000000000000000000000000004000000", "miner": "0xe267d978037b89db06c6a5fcf82fad8297e290ff", + "mixHash": "0x0", "nonce": "0x1", "number": 2n, "parentHash": "0xf6e57c99be5a81167bcb7bdf8d55572235384182c71635857ace2c04d25294ed", - "randomness": { - "committed": "0x339714505ecf55eacc2d2568ea53a7424bd0aa40fd710fd6892464d0716da711", - "revealed": "0xe10b5f01b0376fdc9151f66992f8c1b990083acabc14ec1b04f6a53ad804db88", - }, "receiptsRoot": "0xca8aabc507534e45c982aa43e38118fc6f9cf222800e3d703a6e299a2e661f2a", "sealFields": [ "0x0", @@ -81,6 +74,7 @@ describe('block', () => { "0x487efb864b308ee85afd7ed5954e968457cfe84e71726114b0a44f31fb876e85", ], "transactionsRoot": "0xb293e2c4ce20a9eac253241e750a5592c9d3c1b27bf090d0fc2fa4756a038866", + "uncles": [], } `) @@ -91,9 +85,11 @@ describe('block', () => { difficulty: '0x0', excessBlobGas: '0x0', gasLimit: '0x0', + mixHash: '0x0', nonce: '0x1', sealFields: ['0x0'], sha3Uncles: '0x0', + uncles: [], extraData: '0xd983010700846765746889676f312e31372e3133856c696e7578000000000000f8ccc0c080b84169807e4d7934803decfde330167e444ec323431e1ff4cd70f40f2e79f24ce91f60340b99f97e3562ee57389e2c72343a74379e0b8b7ca5237ec141e84278bb3e00f8418e3e8af95497b7f6ffe7d3c4cbfbbdb06b26f6f3e913ca2cb7dff23532eaf3eb9f3b06ae75498c88353d279cf58fb0570736e2aa20cf53381722b6485f0f3c8180f8418e3fffffffffffffffffffffffffffb0005d23be939b9f8135e6b1ff283baff985c1b6ccacf2b6aa7fbd8939c4b6178b1d242b574a614b6347182a3b3195258080', gasUsed: '0x1', @@ -104,12 +100,6 @@ describe('block', () => { number: '0x2', parentHash: '0xf6e57c99be5a81167bcb7bdf8d55572235384182c71635857ace2c04d25294ed', - randomness: { - committed: - '0x339714505ecf55eacc2d2568ea53a7424bd0aa40fd710fd6892464d0716da711', - revealed: - '0xe10b5f01b0376fdc9151f66992f8c1b990083acabc14ec1b04f6a53ad804db88', - }, receiptsRoot: '0xca8aabc507534e45c982aa43e38118fc6f9cf222800e3d703a6e299a2e661f2a', size: '0x3', @@ -184,13 +174,10 @@ describe('block', () => { "hash": "0xac8c9bc3b84e103dc321bbe83b670e425ff68bfc9a333a4f1b1b204ad11c583d", "logsBloom": "0x02004000004200000000000000800020000000000000400002040000002020000000802000000000000180000001000020800000000000000000000000000000000000000022000260000008000800000000000000000000000000000000000000000008000410002100000140000800000044c00200000000400010000800008800000080000000000010000040000000000000000000000000000000800020028000000100000000000000000000002002881000000000000800020000040020900402020000180000000000000040000800000011020090002000400000200010002000001000000000000080000000000000000000000000000004000000", "miner": "0xe267d978037b89db06c6a5fcf82fad8297e290ff", + "mixHash": "0x0", "nonce": "0x1", "number": 2n, "parentHash": "0xf6e57c99be5a81167bcb7bdf8d55572235384182c71635857ace2c04d25294ed", - "randomness": { - "committed": "0x339714505ecf55eacc2d2568ea53a7424bd0aa40fd710fd6892464d0716da711", - "revealed": "0xe10b5f01b0376fdc9151f66992f8c1b990083acabc14ec1b04f6a53ad804db88", - }, "receiptsRoot": "0xca8aabc507534e45c982aa43e38118fc6f9cf222800e3d703a6e299a2e661f2a", "sealFields": [ "0x0", @@ -255,6 +242,7 @@ describe('block', () => { }, ], "transactionsRoot": "0xb293e2c4ce20a9eac253241e750a5592c9d3c1b27bf090d0fc2fa4756a038866", + "uncles": [], } `) }) diff --git a/src/celo/formatters.ts b/src/celo/formatters.ts index 7bf1d6e114..7d1b088ed7 100644 --- a/src/celo/formatters.ts +++ b/src/celo/formatters.ts @@ -36,7 +36,6 @@ export const formatters = { }) return { transactions, - ...(args.randomness ? { randomness: args.randomness } : {}), } as CeloBlock }, }), diff --git a/src/celo/sendTransaction.test.ts b/src/celo/sendTransaction.test.ts index 76d91ba1df..e722cf919f 100644 --- a/src/celo/sendTransaction.test.ts +++ b/src/celo/sendTransaction.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test, vi } from 'vitest' import { accounts } from '~test/src/constants.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' import { celo } from '../chains/index.js' import { type EIP1193RequestFn, diff --git a/src/celo/types.ts b/src/celo/types.ts index 96af6e9a55..12ca27b5f2 100644 --- a/src/celo/types.ts +++ b/src/celo/types.ts @@ -21,7 +21,7 @@ import type { Transaction as core_Transaction, TransactionRequest as core_TransactionRequest, } from '../types/transaction.js' -import type { Assign, ExactPartial, OneOf } from '../types/utils.js' +import type { ExactPartial, OneOf } from '../types/utils.js' import type { OpStackDepositTransaction, @@ -33,50 +33,20 @@ import type { export type CeloBlock< includeTransactions extends boolean = boolean, blockTag extends BlockTag = BlockTag, -> = Assign< - Block< - bigint, - includeTransactions, - blockTag, - CeloTransaction - >, - { - difficulty?: bigint | undefined - gasLimit?: bigint | undefined - mixHash?: undefined - nonce?: bigint | null - randomness?: - | { - committed: Hex - revealed: Hex - } - | undefined - uncles?: undefined - } +> = Block< + bigint, + includeTransactions, + blockTag, + CeloTransaction > export type CeloRpcBlock< blockTag extends BlockTag = BlockTag, includeTransactions extends boolean = boolean, -> = Assign< - RpcBlock< - blockTag, - includeTransactions, - RpcTransaction - >, - { - difficulty?: Hex | undefined - mixHash?: undefined - nonce?: Hex | null - gasLimit?: Hex | undefined - randomness?: - | { - committed: Hex - revealed: Hex - } - | undefined - uncles?: undefined - } +> = RpcBlock< + blockTag, + includeTransactions, + RpcTransaction > export type CeloRpcTransaction = OneOf< diff --git a/src/chains/definitions/arenaz.ts b/src/chains/definitions/arenaz.ts new file mode 100644 index 0000000000..e411d29e97 --- /dev/null +++ b/src/chains/definitions/arenaz.ts @@ -0,0 +1,19 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const arenaz = /*#__PURE__*/ defineChain({ + id: 7897, + name: 'Arena-Z', + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc.arena-z.gg'], + }, + }, + blockExplorers: { + default: { + name: 'Arena-Z Explorer', + url: 'https://explorer.arena-z.gg', + apiUrl: 'https://explorer.arena-z.gg', + }, + }, +}) diff --git a/src/chains/definitions/coreTestnet1.ts b/src/chains/definitions/coreTestnet1.ts new file mode 100644 index 0000000000..f3505b796d --- /dev/null +++ b/src/chains/definitions/coreTestnet1.ts @@ -0,0 +1,28 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const coreTestnet1 = /*#__PURE__*/ defineChain({ + id: 1115, + name: 'Core Testnet', + nativeCurrency: { + decimals: 18, + name: 'tCore', + symbol: 'TCORE', + }, + rpcUrls: { + default: { http: ['https://rpc.test.btcs.network'] }, + }, + blockExplorers: { + default: { + name: 'Core Testnet', + url: 'https://scan.test.btcs.network', + apiUrl: 'https://api.test.btcs.network/api', + }, + }, + contracts: { + multicall3: { + address: '0xCcddF20A1932537123C2E48Bd8e00b108B8f7569', + blockCreated: 29_350_509, + }, + }, + testnet: true, +}) diff --git a/src/chains/definitions/coreTestnet2.ts b/src/chains/definitions/coreTestnet2.ts new file mode 100644 index 0000000000..44bd59be35 --- /dev/null +++ b/src/chains/definitions/coreTestnet2.ts @@ -0,0 +1,28 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const coreTestnet2 = /*#__PURE__*/ defineChain({ + id: 1114, + name: 'Core Testnet2', + nativeCurrency: { + decimals: 18, + name: 'tCore2', + symbol: 'TCORE2', + }, + rpcUrls: { + default: { http: ['https://rpc.test2.btcs.network'] }, + }, + blockExplorers: { + default: { + name: 'Core Testnet2', + url: 'https://scan.test2.btcs.network', + apiUrl: 'https://api.test2.btcs.network/api', + }, + }, + contracts: { + multicall3: { + address: '0x3CB285ff3Cd5C7C7e570b1E7DE3De17A0f985e56', + blockCreated: 3_838_600, + }, + }, + testnet: true, +}) diff --git a/src/chains/definitions/fraxtal.ts b/src/chains/definitions/fraxtal.ts index 30035038f7..9c5246d049 100644 --- a/src/chains/definitions/fraxtal.ts +++ b/src/chains/definitions/fraxtal.ts @@ -7,7 +7,7 @@ export const fraxtal = /*#__PURE__*/ defineChain({ ...chainConfig, id: 252, name: 'Fraxtal', - nativeCurrency: { name: 'Frax Ether', symbol: 'frxETH', decimals: 18 }, + nativeCurrency: { name: 'Frax', symbol: 'FRAX', decimals: 18 }, rpcUrls: { default: { http: ['https://rpc.frax.com'], diff --git a/src/chains/definitions/fraxtalTestnet.ts b/src/chains/definitions/fraxtalTestnet.ts index 587e5facb2..c86fde3ccc 100644 --- a/src/chains/definitions/fraxtalTestnet.ts +++ b/src/chains/definitions/fraxtalTestnet.ts @@ -7,7 +7,7 @@ export const fraxtalTestnet = /*#__PURE__*/ defineChain({ ...chainConfig, id: 2522, name: 'Fraxtal Testnet', - nativeCurrency: { name: 'Frax Ether', symbol: 'frxETH', decimals: 18 }, + nativeCurrency: { name: 'Frax', symbol: 'FRAX', decimals: 18 }, rpcUrls: { default: { http: ['https://rpc.testnet.frax.com'], diff --git a/src/chains/definitions/gunz.ts b/src/chains/definitions/gunz.ts new file mode 100644 index 0000000000..f307a06247 --- /dev/null +++ b/src/chains/definitions/gunz.ts @@ -0,0 +1,26 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const gunz = /*#__PURE__*/ defineChain({ + id: 43_419, + name: 'Gunz Mainnet', + nativeCurrency: { name: 'GUN', symbol: 'GUN', decimals: 18 }, + rpcUrls: { + default: { + http: [ + 'https://rpc.gunzchain.io/ext/bc/2M47TxWHGnhNtq6pM5zPXdATBtuqubxn5EPFgFmEawCQr9WFML/rpc', + ], + }, + }, + blockExplorers: { + default: { + name: 'Gunz Explorer', + url: 'https://gunzscan.io/', + }, + }, + contracts: { + multicall3: { + address: '0xcA11bde05977b3631167028862bE2a173976CA11', + blockCreated: 70502, + }, + }, +}) diff --git a/src/chains/definitions/hoodi.ts b/src/chains/definitions/hoodi.ts index b306a17879..3acd27be9f 100644 --- a/src/chains/definitions/hoodi.ts +++ b/src/chains/definitions/hoodi.ts @@ -15,5 +15,11 @@ export const hoodi = /*#__PURE__*/ defineChain({ url: 'https://hoodi.etherscan.io', }, }, + contracts: { + multicall3: { + address: '0xcA11bde05977b3631167028862bE2a173976CA11', + blockCreated: 2589, + }, + }, testnet: true, }) diff --git a/src/chains/definitions/lens.ts b/src/chains/definitions/lens.ts new file mode 100644 index 0000000000..4ac33520ea --- /dev/null +++ b/src/chains/definitions/lens.ts @@ -0,0 +1,19 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const lens = /*#__PURE__*/ defineChain({ + id: 232, + name: 'Lens', + nativeCurrency: { name: 'GHO', symbol: 'GHO', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://rpc.lens.xyz'], + }, + }, + blockExplorers: { + default: { + name: 'Lens Block Explorer', + url: 'https://explorer.lens.xyz', + apiUrl: 'https://explorer.lens.xyz/api', + }, + }, +}) diff --git a/src/chains/definitions/lestnet.ts b/src/chains/definitions/lestnet.ts new file mode 100644 index 0000000000..a301216c97 --- /dev/null +++ b/src/chains/definitions/lestnet.ts @@ -0,0 +1,19 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const lestnet = /*#__PURE__*/ defineChain({ + id: 21363, + name: 'Lestnet', + nativeCurrency: { name: 'Lestnet Ether', symbol: 'LETH', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://service.lestnet.org'], + }, + }, + blockExplorers: { + default: { + name: 'Lestnet Explorer', + url: 'https://explore.lestnet.org', + }, + }, + testnet: true, +}) diff --git a/src/chains/definitions/memecore.ts b/src/chains/definitions/memecore.ts new file mode 100644 index 0000000000..dc52a03c4a --- /dev/null +++ b/src/chains/definitions/memecore.ts @@ -0,0 +1,33 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const memecore = /*#__PURE__*/ defineChain({ + id: 4352, + name: 'MemeCore', + nativeCurrency: { + decimals: 18, + name: 'M', + symbol: 'M', + }, + rpcUrls: { + default: { + http: ['https://rpc.memecore.net'], + webSocket: ['wss://ws.memecore.net'], + }, + }, + blockExplorers: { + default: { + name: 'MemeCore Explorer', + url: 'https://memecorescan.io', + apiUrl: 'https://api.memecorescan.io/api', + }, + okx: { + name: 'MemeCore Explorer', + url: 'https://web3.okx.com/explorer/memecore', + }, + memecore: { + name: 'MemeCore Explorer', + url: 'https://blockscout.memecore.com', + apiUrl: 'https://blockscout.memecore.com/api', + }, + }, +}) diff --git a/src/chains/definitions/memecoreFormicariumTestnet.ts b/src/chains/definitions/memecoreFormicariumTestnet.ts new file mode 100644 index 0000000000..80723e1f59 --- /dev/null +++ b/src/chains/definitions/memecoreFormicariumTestnet.ts @@ -0,0 +1,33 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const formicarium = /*#__PURE__*/ defineChain({ + id: 43521, + name: 'Formicarium', + nativeCurrency: { + decimals: 18, + name: 'M', + symbol: 'M', + }, + rpcUrls: { + default: { + http: ['https://rpc.formicarium.memecore.net'], + webSocket: ['wss://ws.formicarium.memecore.net'], + }, + }, + blockExplorers: { + default: { + name: 'MemeCore Testnet Explorer', + url: 'https://formicarium.memecorescan.io', + }, + okx: { + name: 'MemeCore Testnet Explorer', + url: 'https://web3.okx.com/explorer/formicarium-testnet', + }, + memecore: { + name: 'MemeCore Testnet Explorer', + url: 'https://formicarium.blockscout.memecore.com', + apiUrl: 'https://formicarium.blockscout.memecore.com/api', + }, + }, + testnet: true, +}) diff --git a/src/chains/definitions/metis.ts b/src/chains/definitions/metis.ts index d7872227fe..a4f50c2568 100644 --- a/src/chains/definitions/metis.ts +++ b/src/chains/definitions/metis.ts @@ -17,11 +17,10 @@ export const metis = /*#__PURE__*/ defineChain({ 'https://metis-andromeda.rpc.thirdweb.com', 'https://metis-andromeda.gateway.tenderly.co', 'https://metis.api.onfinality.io/public', - 'wss://metis-rpc.publicnode.com', 'https://andromeda.metis.io/?owner=1088', - 'wss://metis.drpc.org', 'https://metis-mainnet.public.blastapi.io', ], + webSocket: ['wss://metis-rpc.publicnode.com', 'wss://metis.drpc.org'], }, }, blockExplorers: { diff --git a/src/chains/definitions/metisSepolia.ts b/src/chains/definitions/metisSepolia.ts index fb83224efa..27c5171e23 100644 --- a/src/chains/definitions/metisSepolia.ts +++ b/src/chains/definitions/metisSepolia.ts @@ -11,11 +11,11 @@ export const metisSepolia = /*#__PURE__*/ defineChain({ rpcUrls: { default: { http: [ - 'wss://metis-sepolia-rpc.publicnode.com', 'https://sepolia.metisdevops.link', 'https://metis-sepolia-rpc.publicnode.com', 'https://metis-sepolia.gateway.tenderly.co', ], + webSocket: ['wss://metis-sepolia-rpc.publicnode.com'], }, }, blockExplorers: { diff --git a/src/chains/definitions/newton.ts b/src/chains/definitions/newton.ts index 2b558f5979..3f7d1b84bb 100644 --- a/src/chains/definitions/newton.ts +++ b/src/chains/definitions/newton.ts @@ -10,7 +10,7 @@ export const newton = /*#__PURE__*/ defineChain({ }, rpcUrls: { default: { - http: ['hhttps://global.rpc.mainnet.newtonproject.org'], + http: ['https://global.rpc.mainnet.newtonproject.org'], }, }, blockExplorers: { diff --git a/src/chains/definitions/peaq.ts b/src/chains/definitions/peaq.ts index 185c3c161c..ee4bd9c07a 100644 --- a/src/chains/definitions/peaq.ts +++ b/src/chains/definitions/peaq.ts @@ -11,14 +11,14 @@ export const peaq = /*#__PURE__*/ defineChain({ rpcUrls: { default: { http: [ + 'https://peaq-rpc.publicnode.com', 'https://peaq.api.onfinality.io/public', 'https://peaq-rpc.dwellir.com', - 'https://peaq-rpc.publicnode.com', 'https://evm.peaq.network', ], webSocket: [ - 'wss://peaq.api.onfinality.io/public', 'wss://peaq-rpc.publicnode.com', + 'wss://peaq.api.onfinality.io/public', 'wss://peaq-rpc.dwellir.com', ], }, diff --git a/src/chains/definitions/plumeMainnet.ts b/src/chains/definitions/plumeMainnet.ts index 820fefc43d..5717393742 100644 --- a/src/chains/definitions/plumeMainnet.ts +++ b/src/chains/definitions/plumeMainnet.ts @@ -12,15 +12,15 @@ export const plumeMainnet = /*#__PURE__*/ defineChain({ }, rpcUrls: { default: { - http: ['https://phoenix-rpc.plumenetwork.xyz'], - webSocket: ['wss://phoenix-rpc.plumenetwork.xyz'], + http: ['https://rpc.plume.org'], + webSocket: ['wss://rpc.plume.org'], }, }, blockExplorers: { default: { name: 'Blockscout', - url: 'https://phoenix-explorer.plumenetwork.xyz', - apiUrl: 'https://phoenix-explorer.plumenetwork.xyz/api', + url: 'https://explorer.plume.org', + apiUrl: 'https://explorer.plume.org/api', }, }, contracts: { diff --git a/src/chains/definitions/plumeSepolia.ts b/src/chains/definitions/plumeSepolia.ts index 8ee607e260..1ad7178315 100644 --- a/src/chains/definitions/plumeSepolia.ts +++ b/src/chains/definitions/plumeSepolia.ts @@ -12,15 +12,15 @@ export const plumeSepolia = /*#__PURE__*/ defineChain({ }, rpcUrls: { default: { - http: ['https://testnet-rpc.plumenetwork.xyz'], - webSocket: ['wss://testnet-rpc.plumenetwork.xyz'], + http: ['https://testnet-rpc.plume.org'], + webSocket: ['wss://testnet-rpc.plume.org'], }, }, blockExplorers: { default: { name: 'Blockscout', - url: 'https://testnet-explorer.plumenetwork.xyz', - apiUrl: 'https://testnet-explorer.plumenetwork.xyz/api', + url: 'https://testnet-explorer.plume.org', + apiUrl: 'https://testnet-explorer.plume.org/api', }, }, contracts: { diff --git a/src/chains/definitions/shardeum.ts b/src/chains/definitions/shardeum.ts new file mode 100644 index 0000000000..ab64203410 --- /dev/null +++ b/src/chains/definitions/shardeum.ts @@ -0,0 +1,19 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const shardeum = /*#__PURE__*/ defineChain({ + id: 8118, + name: 'Shardeum', + nativeCurrency: { name: 'Shardeum', symbol: 'SHM', decimals: 18 }, + rpcUrls: { + default: { + http: ['https://api.shardeum.org'], + }, + }, + blockExplorers: { + default: { + name: 'Shardeum Explorer', + url: 'https://explorer.shardeum.org', + }, + }, + testnet: false, +}) diff --git a/src/chains/definitions/skale/calypso.ts b/src/chains/definitions/skale/calypso.ts index cd695fb5d8..3ea4350ad0 100644 --- a/src/chains/definitions/skale/calypso.ts +++ b/src/chains/definitions/skale/calypso.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleCalypso = /*#__PURE__*/ defineChain({ id: 1_564_830_818, - name: 'SKALE | Calypso NFT Hub', + name: 'SKALE Calypso Hub', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { @@ -21,7 +21,7 @@ export const skaleCalypso = /*#__PURE__*/ defineChain({ contracts: { multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11', - blockCreated: 3107626, + blockCreated: 3_107_626, }, }, }) diff --git a/src/chains/definitions/skale/europa.ts b/src/chains/definitions/skale/europa.ts index 7b21bfb6d4..b39db29366 100644 --- a/src/chains/definitions/skale/europa.ts +++ b/src/chains/definitions/skale/europa.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleEuropa = /*#__PURE__*/ defineChain({ id: 2_046_399_126, - name: 'SKALE | Europa Liquidity Hub', + name: 'SKALE Europa Hub', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { @@ -19,7 +19,7 @@ export const skaleEuropa = /*#__PURE__*/ defineChain({ contracts: { multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11', - blockCreated: 3113495, + blockCreated: 3_113_495, }, }, }) diff --git a/src/chains/definitions/skale/exorde.ts b/src/chains/definitions/skale/exorde.ts index 782237cd3f..8cc32554fb 100644 --- a/src/chains/definitions/skale/exorde.ts +++ b/src/chains/definitions/skale/exorde.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleExorde = /*#__PURE__*/ defineChain({ id: 2_139_927_552, - name: 'SKALE | Exorde', + name: 'Exorde Network', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { diff --git a/src/chains/definitions/skale/nebula.ts b/src/chains/definitions/skale/nebula.ts index 089557e8b9..0367904266 100644 --- a/src/chains/definitions/skale/nebula.ts +++ b/src/chains/definitions/skale/nebula.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleNebula = /*#__PURE__*/ defineChain({ id: 1_482_601_649, - name: 'SKALE | Nebula Gaming Hub', + name: 'SKALE Nebula Hub', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { @@ -19,7 +19,7 @@ export const skaleNebula = /*#__PURE__*/ defineChain({ contracts: { multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11', - blockCreated: 2372986, + blockCreated: 2_372_986, }, }, }) diff --git a/src/chains/definitions/skale/titan.ts b/src/chains/definitions/skale/titan.ts index a4d75df3d6..fa035d8115 100644 --- a/src/chains/definitions/skale/titan.ts +++ b/src/chains/definitions/skale/titan.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleTitan = /*#__PURE__*/ defineChain({ id: 1_350_216_234, - name: 'SKALE | Titan Community Hub', + name: 'SKALE Titan Hub', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { @@ -19,7 +19,7 @@ export const skaleTitan = /*#__PURE__*/ defineChain({ contracts: { multicall3: { address: '0xcA11bde05977b3631167028862bE2a173976CA11', - blockCreated: 2076458, + blockCreated: 2_076_458, }, }, }) diff --git a/src/chains/definitions/skale/titanTestnet.ts b/src/chains/definitions/skale/titanTestnet.ts index c2489ff9a4..4cab7be278 100644 --- a/src/chains/definitions/skale/titanTestnet.ts +++ b/src/chains/definitions/skale/titanTestnet.ts @@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js' export const skaleTitanTestnet = /*#__PURE__*/ defineChain({ id: 1_020_352_220, - name: 'SKALE Titan Hub', + name: 'SKALE Titan Testnet', nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 }, rpcUrls: { default: { diff --git a/src/chains/definitions/tronShasta.ts b/src/chains/definitions/tronShasta.ts new file mode 100644 index 0000000000..c54d31a1cd --- /dev/null +++ b/src/chains/definitions/tronShasta.ts @@ -0,0 +1,19 @@ +import { defineChain } from '../../utils/chain/defineChain.js' + +export const tronShasta = /*#__PURE__*/ defineChain({ + id: 2494104990, + name: 'Tron Shasta', + nativeCurrency: { name: 'TRON', symbol: 'TRX', decimals: 6 }, + rpcUrls: { + default: { + http: ['https://api.shasta.trongrid.io/jsonrpc'], + }, + }, + blockExplorers: { + default: { + name: 'Tronscan', + url: 'https://shasta.tronscan.org', + }, + }, + testnet: true, +}) diff --git a/src/chains/definitions/worldchainSepolia.ts b/src/chains/definitions/worldchainSepolia.ts index dbe30e9a09..5225eaf02c 100644 --- a/src/chains/definitions/worldchainSepolia.ts +++ b/src/chains/definitions/worldchainSepolia.ts @@ -32,7 +32,7 @@ export const worldchainSepolia = /*#__PURE__*/ defineChain({ }, disputeGameFactory: { [sourceId]: { - address: '0x8cF97Ee616C986a070F5020d973b456D0120C253', + address: '0x8Ec1111f67Dad6b6A93B3F42DfBC92D81c98449A', }, }, l2OutputOracle: { diff --git a/src/chains/index.ts b/src/chains/index.ts index 7855551ddb..bf4a74b86a 100644 --- a/src/chains/index.ts +++ b/src/chains/index.ts @@ -21,6 +21,7 @@ export { arbitrum } from './definitions/arbitrum.js' export { arbitrumGoerli } from './definitions/arbitrumGoerli.js' export { arbitrumNova } from './definitions/arbitrumNova.js' export { arbitrumSepolia } from './definitions/arbitrumSepolia.js' +export { arenaz } from './definitions/arenaz.js' export { areonNetwork } from './definitions/areonNetwork.js' export { areonNetworkTestnet } from './definitions/areonNetworkTestnet.js' export { artelaTestnet } from './definitions/artelaTestnet.js' @@ -98,6 +99,8 @@ export { coinex } from './definitions/coinex.js' export { confluxESpace } from './definitions/confluxESpace.js' export { confluxESpaceTestnet } from './definitions/confluxESpaceTestnet.js' export { coreDao } from './definitions/coreDao.js' +export { coreTestnet1 } from './definitions/coreTestnet1.js' +export { coreTestnet2 } from './definitions/coreTestnet2.js' export { corn } from './definitions/corn.js' export { cornTestnet } from './definitions/cornTestnet.js' export { crab } from './definitions/crab.js' @@ -184,6 +187,7 @@ export { fluenceTestnet } from './definitions/fluenceTestnet.js' export { fluentTestnet } from './definitions/fluentTestnet.js' export { forma } from './definitions/forma.js' export { form } from './definitions/form.js' +export { formicarium } from './definitions/memecoreFormicariumTestnet.js' export { formTestnet } from './definitions/formTestnet.js' export { forta } from './definitions/forta.js' /** @deprecated Use `anvil` instead. */ @@ -209,6 +213,7 @@ export { goChain } from './definitions/goChain.js' export { godwoken } from './definitions/godwoken.js' export { goerli } from './definitions/goerli.js' export { gravity } from './definitions/gravity.js' +export { gunz } from './definitions/gunz.js' export { guruNetwork } from './definitions/guruNetwork.js' export { guruTestnet } from './definitions/guruTestnet.js' export { ham } from './definitions/ham.js' @@ -284,7 +289,9 @@ export { kromaSepolia } from './definitions/kromaSepolia.js' export { l3x } from './definitions/l3x.js' export { l3xTestnet } from './definitions/l3xTestnet.js' export { lavita } from './definitions/lavita.js' +export { lens } from './definitions/lens.js' export { lensTestnet } from './definitions/lensTestnet.js' +export { lestnet } from './definitions/lestnet.js' export { lightlinkPegasus } from './definitions/lightlinkPegasus.js' export { lightlinkPhoenix } from './definitions/lightlinkPhoenix.js' export { linea } from './definitions/linea.js' @@ -320,6 +327,7 @@ export { mchVerse } from './definitions/mchVerse.js' export { megaethTestnet } from './definitions/megaethTestnet.js' export { mekong } from './definitions/mekong.js' export { meld } from './definitions/meld.js' +export { memecore } from './definitions/memecore.js' export { merlin } from './definitions/merlin.js' export { merlinErigonTestnet } from './definitions/merlinErigonTestnet.js' export { metachain } from './definitions/metachain.js' @@ -445,6 +453,7 @@ export { seiTestnet } from './definitions/seiTestnet.js' export { sepolia } from './definitions/sepolia.js' export { shape } from './definitions/shape.js' export { shapeSepolia } from './definitions/shapeSepolia.js' +export { shardeum } from './definitions/shardeum.js' export { shardeumSphinx } from './definitions/shardeumSphinx.js' export { shibarium } from './definitions/shibarium.js' export { shibariumTestnet } from './definitions/shibariumTestnet.js' @@ -459,13 +468,16 @@ export { skaleBlockBrawlers } from './definitions/skale/brawl.js' export { skaleCalypso } from './definitions/skale/calypso.js' export { skaleCalypsoTestnet } from './definitions/skale/calypsoTestnet.js' export { skaleCryptoBlades } from './definitions/skale/cryptoBlades.js' +/** @deprecated */ export { skaleCryptoColosseum } from './definitions/skale/cryptoColosseum.js' export { skaleEuropa } from './definitions/skale/europa.js' export { skaleEuropaTestnet } from './definitions/skale/europaTestnet.js' export { skaleExorde } from './definitions/skale/exorde.js' +/** @deprecated */ export { skaleHumanProtocol } from './definitions/skale/humanProtocol.js' export { skaleNebula } from './definitions/skale/nebula.js' export { skaleNebulaTestnet } from './definitions/skale/nebulaTestnet.js' +/** @deprecated Use `skaleEuropa` instead.*/ export { skaleRazor } from './definitions/skale/razor.js' export { skaleTitan } from './definitions/skale/titan.js' export { skaleTitanTestnet } from './definitions/skale/titanTestnet.js' @@ -531,6 +543,7 @@ export { tomb } from './definitions/tomb.js' export { treasure } from './definitions/treasure.js' export { treasureTopaz } from './definitions/treasureTopaz.js' export { tron } from './definitions/tron.js' +export { tronShasta } from './definitions/tronShasta.js' export { ubiq } from './definitions/ubiq.js' export { ultra } from './definitions/ultra.js' export { ultraTestnet } from './definitions/ultraTestnet.js' diff --git a/src/clients/createPublicClient.test.ts b/src/clients/createPublicClient.test.ts index 56960f7098..6fb7ef2a39 100644 --- a/src/clients/createPublicClient.test.ts +++ b/src/clients/createPublicClient.test.ts @@ -550,6 +550,8 @@ test('extend', () => { "getBlockNumber": [Function], "getBlockTransactionCount": [Function], "getBytecode": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getCode": [Function], "getContractEvents": [Function], @@ -591,6 +593,7 @@ test('extend', () => { "requestPermissions": [Function], "reset": [Function], "revert": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], "sendUnsignedTransaction": [Function], @@ -608,6 +611,7 @@ test('extend', () => { "setNonce": [Function], "setRpcUrl": [Function], "setStorageAt": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -636,6 +640,7 @@ test('extend', () => { "verifyMessage": [Function], "verifySiweMessage": [Function], "verifyTypedData": [Function], + "waitForCallsStatus": [Function], "waitForTransactionReceipt": [Function], "watchAsset": [Function], "watchBlockNumber": [Function], diff --git a/src/clients/createTestClient.bench-d.ts b/src/clients/createTestClient.bench-d.ts index 47f48ae7c5..fb7e52e821 100644 --- a/src/clients/createTestClient.bench-d.ts +++ b/src/clients/createTestClient.bench-d.ts @@ -11,12 +11,12 @@ test('createTestClient', () => { mode: 'anvil', transport: http('https://cloudflare-eth.com'), }) - attest.instantiations([2100, 'instantiations']) + attest.instantiations([3155, 'instantiations']) }) test('createClient.extend + testActions', () => { createClient({ transport: http('https://cloudflare-eth.com'), }).extend(testActions({ mode: 'anvil' })) - attest.instantiations([7900, 'instantiations']) + attest.instantiations([9142, 'instantiations']) }) diff --git a/src/clients/createTestClient.test.ts b/src/clients/createTestClient.test.ts index d1d7c15402..f02d11cff5 100644 --- a/src/clients/createTestClient.test.ts +++ b/src/clients/createTestClient.test.ts @@ -340,6 +340,8 @@ test('extend', () => { "getBlockNumber": [Function], "getBlockTransactionCount": [Function], "getBytecode": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getCode": [Function], "getContractEvents": [Function], @@ -382,6 +384,7 @@ test('extend', () => { "requestPermissions": [Function], "reset": [Function], "revert": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], "sendUnsignedTransaction": [Function], @@ -399,6 +402,7 @@ test('extend', () => { "setNonce": [Function], "setRpcUrl": [Function], "setStorageAt": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -427,6 +431,7 @@ test('extend', () => { "verifyMessage": [Function], "verifySiweMessage": [Function], "verifyTypedData": [Function], + "waitForCallsStatus": [Function], "waitForTransactionReceipt": [Function], "watchAsset": [Function], "watchBlockNumber": [Function], diff --git a/src/clients/createWalletClient.test.ts b/src/clients/createWalletClient.test.ts index 538d32bb8d..6c91cc844a 100644 --- a/src/clients/createWalletClient.test.ts +++ b/src/clients/createWalletClient.test.ts @@ -43,6 +43,8 @@ test('creates', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -53,8 +55,10 @@ test('creates', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -71,6 +75,7 @@ test('creates', () => { "type": "mock", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -101,6 +106,8 @@ describe('args: account', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -111,8 +118,10 @@ describe('args: account', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -129,6 +138,7 @@ describe('args: account', () => { "type": "mock", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -166,6 +176,8 @@ describe('args: account', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -176,8 +188,10 @@ describe('args: account', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -194,6 +208,7 @@ describe('args: account', () => { "type": "mock", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -219,6 +234,8 @@ describe('args: transport', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -229,8 +246,10 @@ describe('args: transport', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -247,6 +266,7 @@ describe('args: transport', () => { "type": "custom", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -270,6 +290,8 @@ describe('args: transport', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -280,8 +302,10 @@ describe('args: transport', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -300,6 +324,7 @@ describe('args: transport', () => { "url": "https://mockapi.com/rpc", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -342,6 +367,8 @@ describe('args: transport', () => { "deployContract": [Function], "extend": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "key": "wallet", @@ -352,8 +379,10 @@ describe('args: transport', () => { "request": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -373,6 +402,7 @@ describe('args: transport', () => { "type": "webSocket", }, "type": "walletClient", + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } @@ -440,6 +470,8 @@ test('extend', () => { "getBlockNumber": [Function], "getBlockTransactionCount": [Function], "getBytecode": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getCode": [Function], "getContractEvents": [Function], @@ -481,6 +513,7 @@ test('extend', () => { "requestPermissions": [Function], "reset": [Function], "revert": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], "sendUnsignedTransaction": [Function], @@ -498,6 +531,7 @@ test('extend', () => { "setNonce": [Function], "setRpcUrl": [Function], "setStorageAt": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], @@ -526,6 +560,7 @@ test('extend', () => { "verifyMessage": [Function], "verifySiweMessage": [Function], "verifyTypedData": [Function], + "waitForCallsStatus": [Function], "waitForTransactionReceipt": [Function], "watchAsset": [Function], "watchBlockNumber": [Function], diff --git a/src/clients/decorators/wallet.test.ts b/src/clients/decorators/wallet.test.ts index 0f36be2a25..643f452641 100644 --- a/src/clients/decorators/wallet.test.ts +++ b/src/clients/decorators/wallet.test.ts @@ -20,19 +20,24 @@ test('default', async () => { "addChain": [Function], "deployContract": [Function], "getAddresses": [Function], + "getCallsStatus": [Function], + "getCapabilities": [Function], "getChainId": [Function], "getPermissions": [Function], "prepareAuthorization": [Function], "prepareTransactionRequest": [Function], "requestAddresses": [Function], "requestPermissions": [Function], + "sendCalls": [Function], "sendRawTransaction": [Function], "sendTransaction": [Function], + "showCallsStatus": [Function], "signAuthorization": [Function], "signMessage": [Function], "signTransaction": [Function], "signTypedData": [Function], "switchChain": [Function], + "waitForCallsStatus": [Function], "watchAsset": [Function], "writeContract": [Function], } diff --git a/src/clients/decorators/wallet.ts b/src/clients/decorators/wallet.ts index fbb1b6962e..5b7360fcd9 100644 --- a/src/clients/decorators/wallet.ts +++ b/src/clients/decorators/wallet.ts @@ -18,6 +18,16 @@ import { type GetAddressesReturnType, getAddresses, } from '../../actions/wallet/getAddresses.js' +import { + type GetCallsStatusParameters, + type GetCallsStatusReturnType, + getCallsStatus, +} from '../../actions/wallet/getCallsStatus.js' +import { + type GetCapabilitiesParameters, + type GetCapabilitiesReturnType, + getCapabilities, +} from '../../actions/wallet/getCapabilities.js' import { type GetPermissionsReturnType, getPermissions, @@ -42,6 +52,11 @@ import { type RequestPermissionsReturnType, requestPermissions, } from '../../actions/wallet/requestPermissions.js' +import { + type SendCallsParameters, + type SendCallsReturnType, + sendCalls, +} from '../../actions/wallet/sendCalls.js' import { type SendRawTransactionParameters, type SendRawTransactionReturnType, @@ -53,6 +68,11 @@ import { type SendTransactionReturnType, sendTransaction, } from '../../actions/wallet/sendTransaction.js' +import { + type ShowCallsStatusParameters, + type ShowCallsStatusReturnType, + showCallsStatus, +} from '../../actions/wallet/showCallsStatus.js' import { type SignAuthorizationParameters, type SignAuthorizationReturnType, @@ -78,6 +98,11 @@ import { type SwitchChainParameters, switchChain, } from '../../actions/wallet/switchChain.js' +import { + type WaitForCallsStatusParameters, + type WaitForCallsStatusReturnType, + waitForCallsStatus, +} from '../../actions/wallet/waitForCallsStatus.js' import { type WatchAssetParameters, type WatchAssetReturnType, @@ -168,6 +193,54 @@ export type WalletActions< * const accounts = await client.getAddresses() */ getAddresses: () => Promise + /** + * Returns the status of a call batch that was sent via `sendCalls`. + * + * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus + * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns Status of the calls. {@link GetCallsStatusReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * const { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' }) + */ + getCallsStatus: ( + parameters: GetCallsStatusParameters, + ) => Promise + /** + * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc). + * + * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities + * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * const capabilities = await client.getCapabilities({ + * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', + * }) + */ + getCapabilities: ( + parameters?: GetCapabilitiesParameters, + ) => Promise> /** * Returns the chain ID associated with the current network. * @@ -218,15 +291,14 @@ export type WalletActions< * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType} * * @example - * import { createClient, http } from 'viem' + * import { createWalletClient, http } from 'viem' * import { privateKeyToAccount } from 'viem/accounts' * import { mainnet } from 'viem/chains' - * import { eip7702Actions } from 'viem/experimental' * - * const client = createClient({ + * const client = createWalletClient({ * chain: mainnet, * transport: http(), - * }).extend(eip7702Actions()) + * }) * * const authorization = await client.prepareAuthorization({ * account: privateKeyToAccount('0x..'), @@ -235,16 +307,15 @@ export type WalletActions< * * @example * // Account Hoisting - * import { createClient, http } from 'viem' + * import { createWalletClient, http } from 'viem' * import { privateKeyToAccount } from 'viem/accounts' * import { mainnet } from 'viem/chains' - * import { eip7702Actions } from 'viem/experimental' * - * const client = createClient({ + * const client = createWalletClient({ * account: privateKeyToAccount('0x…'), * chain: mainnet, * transport: http(), - * }).extend(eip7702Actions()) + * }) * * const authorization = await client.prepareAuthorization({ * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', @@ -362,6 +433,44 @@ export type WalletActions< requestPermissions: ( args: RequestPermissionsParameters, ) => Promise + /** + * Requests the connected wallet to send a batch of calls. + * + * - Docs: https://viem.sh/docs/actions/wallet/sendCalls + * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns Transaction identifier. {@link SendCallsReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * const id = await client.sendCalls({ + * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', + * calls: [ + * { + * data: '0xdeadbeef', + * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + * }, + * { + * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', + * value: 69420n, + * }, + * ], + * }) + */ + sendCalls: < + const calls extends readonly unknown[], + chainOverride extends Chain | undefined = undefined, + >( + parameters: SendCallsParameters, + ) => Promise /** * Sends a **signed** transaction to the network * @@ -437,6 +546,30 @@ export type WalletActions< >( args: SendTransactionParameters, ) => Promise + /** + * Requests for the wallet to show information about a call batch + * that was sent via `sendCalls`. + * + * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus + * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @returns Displays status of the calls in wallet. {@link ShowCallsStatusReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * await client.showCallsStatus({ id: '0xdeadbeef' }) + */ + showCallsStatus: ( + parameters: ShowCallsStatusParameters, + ) => Promise /** * Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object. * @@ -449,15 +582,14 @@ export type WalletActions< * @returns The signed Authorization object. {@link SignAuthorizationReturnType} * * @example - * import { createClient, http } from 'viem' + * import { createWalletClient, http } from 'viem' * import { privateKeyToAccount } from 'viem/accounts' * import { mainnet } from 'viem/chains' - * import { eip7702Actions } from 'viem/experimental' * - * const client = createClient({ + * const client = createWalletClient({ * chain: mainnet, * transport: http(), - * }).extend(eip7702Actions()) + * }) * * const signature = await client.signAuthorization({ * account: privateKeyToAccount('0x..'), @@ -466,16 +598,15 @@ export type WalletActions< * * @example * // Account Hoisting - * import { createClient, http } from 'viem' + * import { createWalletClient, http } from 'viem' * import { privateKeyToAccount } from 'viem/accounts' * import { mainnet } from 'viem/chains' - * import { eip7702Actions } from 'viem/experimental' * - * const client = createClient({ + * const client = createWalletClient({ * account: privateKeyToAccount('0x…'), * chain: mainnet, * transport: http(), - * }).extend(eip7702Actions()) + * }) * * const signature = await client.signAuthorization({ * contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', @@ -703,6 +834,30 @@ export type WalletActions< * await client.switchChain({ id: optimism.id }) */ switchChain: (args: SwitchChainParameters) => Promise + /** + * Waits for the status & receipts of a call bundle that was sent via `sendCalls`. + * + * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus + * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) + * + * @param client - Client to use + * @param parameters - {@link WaitForCallsStatusParameters} + * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' }) + */ + waitForCallsStatus: ( + parameters: WaitForCallsStatusParameters, + ) => Promise /** * Adds an EVM chain to the wallet. * @@ -807,6 +962,8 @@ export function walletActions< addChain: (args) => addChain(client, args), deployContract: (args) => deployContract(client, args), getAddresses: () => getAddresses(client), + getCallsStatus: (args) => getCallsStatus(client, args), + getCapabilities: (args) => getCapabilities(client, args), getChainId: () => getChainId(client), getPermissions: () => getPermissions(client), prepareAuthorization: (args) => prepareAuthorization(client, args), @@ -814,13 +971,16 @@ export function walletActions< prepareTransactionRequest(client as any, args as any) as any, requestAddresses: () => requestAddresses(client), requestPermissions: (args) => requestPermissions(client, args), + sendCalls: (args) => sendCalls(client, args), sendRawTransaction: (args) => sendRawTransaction(client, args), sendTransaction: (args) => sendTransaction(client, args), + showCallsStatus: (args) => showCallsStatus(client, args), signAuthorization: (args) => signAuthorization(client, args), signMessage: (args) => signMessage(client, args), signTransaction: (args) => signTransaction(client, args), signTypedData: (args) => signTypedData(client, args), switchChain: (args) => switchChain(client, args), + waitForCallsStatus: (args) => waitForCallsStatus(client, args), watchAsset: (args) => watchAsset(client, args), writeContract: (args) => writeContract(client, args as any), } diff --git a/src/constants/abis.test.ts b/src/constants/abis.test.ts index 023553e166..3f36c0f344 100644 --- a/src/constants/abis.test.ts +++ b/src/constants/abis.test.ts @@ -45,6 +45,473 @@ test('exports abis', () => { "type": "function", }, ], + "batchGatewayAbi": [ + { + "inputs": [ + { + "components": [ + { + "name": "sender", + "type": "address", + }, + { + "name": "urls", + "type": "string[]", + }, + { + "name": "data", + "type": "bytes", + }, + ], + "name": "queries", + "type": "tuple[]", + }, + ], + "name": "query", + "outputs": [ + { + "name": "failures", + "type": "bool[]", + }, + { + "name": "responses", + "type": "bytes[]", + }, + ], + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [ + { + "name": "status", + "type": "uint16", + }, + { + "name": "message", + "type": "string", + }, + ], + "name": "HttpError", + "type": "error", + }, + ], + "erc1155Abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256", + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256", + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256", + }, + ], + "name": "ERC1155InsufficientBalance", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address", + }, + ], + "name": "ERC1155InvalidApprover", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256", + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256", + }, + ], + "name": "ERC1155InvalidArrayLength", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address", + }, + ], + "name": "ERC1155InvalidOperator", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address", + }, + ], + "name": "ERC1155InvalidReceiver", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + }, + ], + "name": "ERC1155InvalidSender", + "type": "error", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address", + }, + { + "internalType": "address", + "name": "owner", + "type": "address", + }, + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error", + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address", + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address", + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool", + }, + ], + "name": "ApprovalForAll", + "type": "event", + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address", + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address", + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address", + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]", + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]", + }, + ], + "name": "TransferBatch", + "type": "event", + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address", + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address", + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address", + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256", + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256", + }, + ], + "name": "TransferSingle", + "type": "event", + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string", + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256", + }, + ], + "name": "URI", + "type": "event", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address", + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + }, + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256", + }, + ], + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]", + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]", + }, + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]", + }, + ], + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address", + }, + { + "internalType": "address", + "name": "operator", + "type": "address", + }, + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool", + }, + ], + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + }, + { + "internalType": "address", + "name": "to", + "type": "address", + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]", + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]", + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes", + }, + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + }, + { + "internalType": "address", + "name": "to", + "type": "address", + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256", + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes", + }, + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address", + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool", + }, + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4", + }, + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool", + }, + ], + "stateMutability": "view", + "type": "function", + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256", + }, + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string", + }, + ], + "stateMutability": "view", + "type": "function", + }, + ], "erc20Abi": [ { "inputs": [ diff --git a/src/constants/abis.ts b/src/constants/abis.ts index 0d0500e8b3..66acc0a55f 100644 --- a/src/constants/abis.ts +++ b/src/constants/abis.ts @@ -43,6 +43,58 @@ export const multicall3Abi = [ }, ] as const +export const batchGatewayAbi = [ + { + name: 'query', + type: 'function', + stateMutability: 'view', + inputs: [ + { + type: 'tuple[]', + name: 'queries', + components: [ + { + type: 'address', + name: 'sender', + }, + { + type: 'string[]', + name: 'urls', + }, + { + type: 'bytes', + name: 'data', + }, + ], + }, + ], + outputs: [ + { + type: 'bool[]', + name: 'failures', + }, + { + type: 'bytes[]', + name: 'responses', + }, + ], + }, + { + name: 'HttpError', + type: 'error', + inputs: [ + { + type: 'uint16', + name: 'status', + }, + { + type: 'string', + name: 'message', + }, + ], + }, +] as const + const universalResolverErrors = [ { inputs: [], @@ -633,6 +685,424 @@ export const erc20Abi_bytes32 = [ }, ] as const +/** [ERC-1155 Multi Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-1155) */ +export const erc1155Abi = [ + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + { + internalType: 'uint256', + name: 'balance', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'needed', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, + ], + name: 'ERC1155InsufficientBalance', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'approver', + type: 'address', + }, + ], + name: 'ERC1155InvalidApprover', + type: 'error', + }, + { + inputs: [ + { + internalType: 'uint256', + name: 'idsLength', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'valuesLength', + type: 'uint256', + }, + ], + name: 'ERC1155InvalidArrayLength', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'ERC1155InvalidOperator', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'receiver', + type: 'address', + }, + ], + name: 'ERC1155InvalidReceiver', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'sender', + type: 'address', + }, + ], + name: 'ERC1155InvalidSender', + type: 'error', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'address', + name: 'owner', + type: 'address', + }, + ], + name: 'ERC1155MissingApprovalForAll', + type: 'error', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'ApprovalForAll', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + { + indexed: false, + internalType: 'uint256[]', + name: 'values', + type: 'uint256[]', + }, + ], + name: 'TransferBatch', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', + }, + { + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', + }, + { + indexed: false, + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + ], + name: 'TransferSingle', + type: 'event', + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: 'string', + name: 'value', + type: 'string', + }, + { + indexed: true, + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + ], + name: 'URI', + type: 'event', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + ], + name: 'balanceOf', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address[]', + name: 'accounts', + type: 'address[]', + }, + { + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + ], + name: 'balanceOfBatch', + outputs: [ + { + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'account', + type: 'address', + }, + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + ], + name: 'isApprovedForAll', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256[]', + name: 'ids', + type: 'uint256[]', + }, + { + internalType: 'uint256[]', + name: 'values', + type: 'uint256[]', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + name: 'safeBatchTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'from', + type: 'address', + }, + { + internalType: 'address', + name: 'to', + type: 'address', + }, + { + internalType: 'uint256', + name: 'id', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, + { + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, + ], + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'address', + name: 'operator', + type: 'address', + }, + { + internalType: 'bool', + name: 'approved', + type: 'bool', + }, + ], + name: 'setApprovalForAll', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [ + { + internalType: 'bytes4', + name: 'interfaceId', + type: 'bytes4', + }, + ], + name: 'supportsInterface', + outputs: [ + { + internalType: 'bool', + name: '', + type: 'bool', + }, + ], + stateMutability: 'view', + type: 'function', + }, + { + inputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + name: 'uri', + outputs: [ + { + internalType: 'string', + name: '', + type: 'string', + }, + ], + stateMutability: 'view', + type: 'function', + }, +] as const + /** [ERC-721 Non-Fungible Token Standard](https://ethereum.org/en/developers/docs/standards/tokens/erc-721) */ export const erc721Abi = [ { diff --git a/src/constants/address.ts b/src/constants/address.ts index c417c0182e..423736d609 100644 --- a/src/constants/address.ts +++ b/src/constants/address.ts @@ -2,6 +2,8 @@ export const entryPoint06Address = '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789' as const export const entryPoint07Address = '0x0000000071727De22E5E9d8BAf0edAc6f37da032' as const +export const entryPoint08Address = + '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108' as const export const ethAddress = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' as const diff --git a/src/errors/request.test.ts b/src/errors/request.test.ts index 5b32aa6eae..587b646b76 100644 --- a/src/errors/request.test.ts +++ b/src/errors/request.test.ts @@ -43,7 +43,7 @@ test('HttpRequestError', () => { Status: 500 URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: Some error Version: viem@x.y.z] @@ -63,7 +63,7 @@ test('WebSocketRequestError', () => { [WebSocketRequestError: WebSocket request failed. URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: Some error Version: viem@x.y.z] @@ -95,7 +95,7 @@ test('TimeoutError', () => { [TimeoutError: The request took too long to respond. URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: The request timed out. Version: viem@x.y.z] diff --git a/src/errors/rpc.test.ts b/src/errors/rpc.test.ts index ec29dc4740..a8b8666f74 100644 --- a/src/errors/rpc.test.ts +++ b/src/errors/rpc.test.ts @@ -2,7 +2,11 @@ import { expect, test } from 'vitest' import { RpcRequestError } from './request.js' import { + AtomicReadyWalletRejectedUpgradeError, + AtomicityNotSupportedError, + BundleTooLargeError, ChainDisconnectedError, + DuplicateIdError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, @@ -20,7 +24,10 @@ import { SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, + UnknownBundleIdError, UnknownRpcError, + UnsupportedChainIdError, + UnsupportedNonOptionalCapabilityError, UnsupportedProviderMethodError, UserRejectedRequestError, } from './rpc.js' @@ -568,6 +575,167 @@ test('SwitchChainError', () => { `) }) +test('UnsupportedNonOptionalCapabilityError', () => { + expect( + new UnsupportedNonOptionalCapabilityError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5700, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [UnsupportedNonOptionalCapabilityError: This Wallet does not support a capability that was not marked as optional. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('UnsupportedChainIdError', () => { + expect( + new UnsupportedChainIdError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5710, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [UnsupportedChainIdError: This Wallet does not support the requested chain ID. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('DuplicateIdError', () => { + expect( + new DuplicateIdError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5720, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [DuplicateIdError: There is already a bundle submitted with this ID. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('UnknownBundleIdError', () => { + expect( + new UnknownBundleIdError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5730, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [UnknownBundleIdError: This bundle id is unknown / has not been submitted + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('BundleTooLargeError', () => { + expect( + new BundleTooLargeError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5740, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [BundleTooLargeError: The call bundle is too large for the Wallet to process. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('AtomicReadyWalletRejectedUpgradeError', () => { + expect( + new AtomicReadyWalletRejectedUpgradeError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5750, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [AtomicReadyWalletRejectedUpgradeError: The Wallet can support atomicity after an upgrade, but the user rejected the upgrade. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + +test('AtomicityNotSupportedError', () => { + expect( + new AtomicityNotSupportedError( + new RpcRequestError({ + body: { foo: 'bar' }, + url: 'https://viem.sh', + error: { + code: 5760, + message: 'message', + }, + }), + ), + ).toMatchInlineSnapshot(` + [AtomicityNotSupportedError: The wallet does not support atomic execution but the request requires it. + + URL: http://localhost + Request body: {"foo":"bar"} + + Details: message + Version: viem@x.y.z] + `) +}) + test('UnknownRpcError', async () => { expect(new UnknownRpcError(new Error('oh no'))).toMatchInlineSnapshot(` [UnknownRpcError: An unknown RPC error occurred. diff --git a/src/errors/rpc.ts b/src/errors/rpc.ts index 89ea325fb2..b9fe179c6a 100644 --- a/src/errors/rpc.ts +++ b/src/errors/rpc.ts @@ -68,6 +68,13 @@ export type ProviderRpcErrorCode = | 4900 // Disconnected | 4901 // Chain Disconnected | 4902 // Chain Not Recognized + | 5700 // Unsupported non-optional capability + | 5710 // Unsupported chain id + | 5720 // Duplicate ID + | 5730 // Unknown bundle id + | 5740 // Bundle too large + | 5750 // Atomic-ready wallet rejected upgrade + | 5760 // Atomicity not supported /** * Error subclass implementing Ethereum Provider errors per EIP-1193. @@ -485,6 +492,158 @@ export class SwitchChainError extends ProviderRpcError { } } +/** + * Subclass for an "Unsupported non-optional capability" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type UnsupportedNonOptionalCapabilityErrorType = + UnsupportedNonOptionalCapabilityError & { + code: 5700 + name: 'UnsupportedNonOptionalCapabilityError' + } +export class UnsupportedNonOptionalCapabilityError extends ProviderRpcError { + static code = 5700 as const + + constructor(cause: Error) { + super(cause, { + code: UnsupportedNonOptionalCapabilityError.code, + name: 'UnsupportedNonOptionalCapabilityError', + shortMessage: + 'This Wallet does not support a capability that was not marked as optional.', + }) + } +} + +/** + * Subclass for an "Unsupported chain id" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type UnsupportedChainIdErrorType = UnsupportedChainIdError & { + code: 5710 + name: 'UnsupportedChainIdError' +} +export class UnsupportedChainIdError extends ProviderRpcError { + static code = 5710 as const + + constructor(cause: Error) { + super(cause, { + code: UnsupportedChainIdError.code, + name: 'UnsupportedChainIdError', + shortMessage: 'This Wallet does not support the requested chain ID.', + }) + } +} + +/** + * Subclass for an "Duplicate ID" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type DuplicateIdErrorType = DuplicateIdError & { + code: 5720 + name: 'DuplicateIdError' +} +export class DuplicateIdError extends ProviderRpcError { + static code = 5720 as const + + constructor(cause: Error) { + super(cause, { + code: DuplicateIdError.code, + name: 'DuplicateIdError', + shortMessage: 'There is already a bundle submitted with this ID.', + }) + } +} + +/** + * Subclass for an "Unknown bundle ID" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type UnknownBundleIdErrorType = UnknownBundleIdError & { + code: 5730 + name: 'UnknownBundleIdError' +} +export class UnknownBundleIdError extends ProviderRpcError { + static code = 5730 as const + + constructor(cause: Error) { + super(cause, { + code: UnknownBundleIdError.code, + name: 'UnknownBundleIdError', + shortMessage: 'This bundle id is unknown / has not been submitted', + }) + } +} + +/** + * Subclass for an "Bundle too large" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type BundleTooLargeErrorType = BundleTooLargeError & { + code: 5740 + name: 'BundleTooLargeError' +} +export class BundleTooLargeError extends ProviderRpcError { + static code = 5740 as const + + constructor(cause: Error) { + super(cause, { + code: BundleTooLargeError.code, + name: 'BundleTooLargeError', + shortMessage: 'The call bundle is too large for the Wallet to process.', + }) + } +} + +/** + * Subclass for an "Atomic-ready wallet rejected upgrade" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type AtomicReadyWalletRejectedUpgradeErrorType = + AtomicReadyWalletRejectedUpgradeError & { + code: 5750 + name: 'AtomicReadyWalletRejectedUpgradeError' + } +export class AtomicReadyWalletRejectedUpgradeError extends ProviderRpcError { + static code = 5750 as const + + constructor(cause: Error) { + super(cause, { + code: AtomicReadyWalletRejectedUpgradeError.code, + name: 'AtomicReadyWalletRejectedUpgradeError', + shortMessage: + 'The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.', + }) + } +} + +/** + * Subclass for an "Atomicity not supported" EIP-5792 error. + * + * EIP https://eips.ethereum.org/EIPS/eip-5792#error-codes + */ +export type AtomicityNotSupportedErrorType = AtomicityNotSupportedError & { + code: 5760 + name: 'AtomicityNotSupportedError' +} +export class AtomicityNotSupportedError extends ProviderRpcError { + static code = 5760 as const + + constructor(cause: Error) { + super(cause, { + code: AtomicityNotSupportedError.code, + name: 'AtomicityNotSupportedError', + shortMessage: + 'The wallet does not support atomic execution but the request requires it.', + }) + } +} + /** * Subclass for an unknown RPC error. */ diff --git a/src/errors/version.ts b/src/errors/version.ts index 7b80f297ef..22b2af86a1 100644 --- a/src/errors/version.ts +++ b/src/errors/version.ts @@ -1 +1 @@ -export const version = '2.25.0' +export const version = '2.29.1' diff --git a/src/experimental/eip5792/actions/getCallsStatus.ts b/src/experimental/eip5792/actions/getCallsStatus.ts deleted file mode 100644 index a788f3ea1b..0000000000 --- a/src/experimental/eip5792/actions/getCallsStatus.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import type { ErrorType } from '../../../errors/utils.js' -import type { Account } from '../../../types/account.js' -import type { Chain } from '../../../types/chain.js' -import type { WalletGetCallsStatusReturnType } from '../../../types/eip1193.js' -import type { Prettify } from '../../../types/utils.js' -import type { RequestErrorType } from '../../../utils/buildRequest.js' -import { hexToBigInt } from '../../../utils/encoding/fromHex.js' -import { receiptStatuses } from '../../../utils/formatters/transactionReceipt.js' - -export type GetCallsStatusParameters = { id: string } - -export type GetCallsStatusReturnType = Prettify< - WalletGetCallsStatusReturnType -> - -export type GetCallsStatusErrorType = RequestErrorType | ErrorType - -/** - * Returns the status of a call batch that was sent via `sendCalls`. - * - * - Docs: https://viem.sh/experimental/eip5792/getCallsStatus - * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792) - * - * @param client - Client to use - * @returns Status of the calls. {@link GetCallsStatusReturnType} - * - * @example - * import { createWalletClient, custom } from 'viem' - * import { mainnet } from 'viem/chains' - * import { getCallsStatus } from 'viem/experimental' - * - * const client = createWalletClient({ - * chain: mainnet, - * transport: custom(window.ethereum), - * }) - * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' }) - */ -export async function getCallsStatus< - chain extends Chain | undefined, - account extends Account | undefined = undefined, ->( - client: Client, - parameters: GetCallsStatusParameters, -): Promise { - const { id } = parameters - const { receipts, status } = await client.request({ - method: 'wallet_getCallsStatus', - params: [id], - }) - return { - status, - receipts: - receipts?.map((receipt) => ({ - ...receipt, - blockNumber: hexToBigInt(receipt.blockNumber), - gasUsed: hexToBigInt(receipt.gasUsed), - status: receiptStatuses[receipt.status as '0x0' | '0x1'], - })) ?? [], - } -} diff --git a/src/experimental/eip5792/actions/getCapabilities.test.ts b/src/experimental/eip5792/actions/getCapabilities.test.ts deleted file mode 100644 index facdfd1e0a..0000000000 --- a/src/experimental/eip5792/actions/getCapabilities.test.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { expect, test } from 'vitest' - -import { accounts } from '../../../../test/src/constants.js' -import type { JsonRpcAccount } from '../../../accounts/types.js' -import { type Client, createClient } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import { custom } from '../../../clients/transports/custom.js' -import type { Chain } from '../../../types/chain.js' -import { getCapabilities } from './getCapabilities.js' - -const client = createClient({ - transport: custom({ - async request({ method, params }) { - if (method === 'wallet_getCapabilities') - return { - '0x2105': { - paymasterService: { - supported: params[0] === accounts[0].address, - }, - sessionKeys: { - supported: true, - }, - }, - '0x14A34': { - paymasterService: { - supported: params[0] === accounts[0].address, - }, - }, - } - - return null - }, - }), -}) - -test('default', async () => { - const capabilities = await getCapabilities(client, { - account: accounts[0].address, - }) - expect(capabilities).toMatchInlineSnapshot(` - { - "8453": { - "paymasterService": { - "supported": true, - }, - "sessionKeys": { - "supported": true, - }, - }, - "84532": { - "paymasterService": { - "supported": true, - }, - }, - } - `) -}) - -test('account on client', async () => { - const client_2 = { - ...client, - account: accounts[1].address, - } as unknown as Client - - const capabilities = await getCapabilities(client_2) - expect(capabilities).toMatchInlineSnapshot(` - { - "8453": { - "paymasterService": { - "supported": false, - }, - "sessionKeys": { - "supported": true, - }, - }, - "84532": { - "paymasterService": { - "supported": false, - }, - }, - } - `) -}) diff --git a/src/experimental/eip5792/actions/getCapabilities.ts b/src/experimental/eip5792/actions/getCapabilities.ts deleted file mode 100644 index a8b898fffe..0000000000 --- a/src/experimental/eip5792/actions/getCapabilities.ts +++ /dev/null @@ -1,68 +0,0 @@ -import type { Address } from 'abitype' - -import { parseAccount } from '../../../accounts/utils/parseAccount.js' -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import { AccountNotFoundError } from '../../../errors/account.js' -import type { ErrorType } from '../../../errors/utils.js' -import type { Account } from '../../../types/account.js' -import type { Chain } from '../../../types/chain.js' -import type { - WalletCapabilities, - WalletCapabilitiesRecord, -} from '../../../types/eip1193.js' -import type { Prettify } from '../../../types/utils.js' -import type { RequestErrorType } from '../../../utils/buildRequest.js' - -export type GetCapabilitiesParameters = { - account?: Account | Address | undefined -} - -export type GetCapabilitiesReturnType = Prettify< - WalletCapabilitiesRecord -> - -export type GetCapabilitiesErrorType = RequestErrorType | ErrorType - -/** - * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc). - * - * - Docs: https://viem.sh/experimental/eip5792/getCapabilities - * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792) - * - * @param client - Client to use - * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType} - * - * @example - * import { createWalletClient, custom } from 'viem' - * import { mainnet } from 'viem/chains' - * import { getCapabilities } from 'viem/experimental' - * - * const client = createWalletClient({ - * chain: mainnet, - * transport: custom(window.ethereum), - * }) - * const capabilities = await getCapabilities(client) - */ -export async function getCapabilities( - client: Client, - parameters: GetCapabilitiesParameters = {}, -): Promise { - const account_raw = parameters?.account ?? client.account - - if (!account_raw) throw new AccountNotFoundError() - const account = parseAccount(account_raw) - - const capabilities_raw = await client.request({ - method: 'wallet_getCapabilities', - params: [account.address], - }) - - const capabilities = {} as WalletCapabilitiesRecord< - WalletCapabilities, - number - > - for (const [key, value] of Object.entries(capabilities_raw)) - capabilities[Number(key)] = value - return capabilities -} diff --git a/src/experimental/eip5792/actions/writeContracts.test.ts b/src/experimental/eip5792/actions/writeContracts.test.ts index 22315eac96..f5bd07d673 100644 --- a/src/experimental/eip5792/actions/writeContracts.test.ts +++ b/src/experimental/eip5792/actions/writeContracts.test.ts @@ -1,8 +1,11 @@ +// TODO(v3): Remove this. + import { expect, test } from 'vitest' import { wagmiContractConfig } from '~test/src/abis.js' import { anvilMainnet } from '../../../../test/src/anvil.js' import { accounts } from '../../../../test/src/constants.js' import { mine, reset } from '../../../actions/index.js' +import { getCallsStatus } from '../../../actions/wallet/getCallsStatus.js' import { mainnet } from '../../../chains/index.js' import { createClient } from '../../../clients/createClient.js' import { custom } from '../../../clients/transports/custom.js' @@ -11,7 +14,6 @@ import type { WalletCallReceipt } from '../../../types/eip1193.js' import type { Hex } from '../../../types/misc.js' import { getHttpRpcClient } from '../../../utils/index.js' import { uid } from '../../../utils/uid.js' -import { getCallsStatus } from './getCallsStatus.js' import { writeContracts } from './writeContracts.js' type Uid = string @@ -113,7 +115,7 @@ test('default', async () => { jsonRpcUrl: anvilMainnet.forkUrl, }) - const id_ = await writeContracts(client, { + const { id: id_ } = await writeContracts(client, { account: accounts[0].address, chain: mainnet, contracts: [ @@ -137,6 +139,7 @@ test('default', async () => { [ [ { + "atomicRequired": false, "calls": [ { "data": "0x1249c58b", @@ -154,10 +157,11 @@ test('default', async () => { "value": undefined, }, ], - "capabilities": undefined, + "capabilities": {}, "chainId": "0x1", "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "version": "1.0", + "id": undefined, + "version": "2.0.0", }, ], ] @@ -198,12 +202,12 @@ test('default', async () => { "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", "0x0000000000000000000000000000000000000000000000000000000000000221", ], - "transactionHash": "0x2883882416bce269c19c50520cef0489e9558db5d6bc8be4dabda9ac46d39756", + "transactionHash": "0xacdee6d5b6d2d68a38da86c3abe7b8ab6010f33c64f4d88b974561f6b1d56347", "transactionIndex": "0x0", }, ], "status": "success", - "transactionHash": "0x2883882416bce269c19c50520cef0489e9558db5d6bc8be4dabda9ac46d39756", + "transactionHash": "0xacdee6d5b6d2d68a38da86c3abe7b8ab6010f33c64f4d88b974561f6b1d56347", }, { "blockHash": undefined, @@ -224,12 +228,12 @@ test('default', async () => { "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", "0x0000000000000000000000000000000000000000000000000000000000000222", ], - "transactionHash": "0x06e6e4ff8c9f6c9bf1ce08dbf545bcdcfa4412b4f0572507d6cd2c070e084950", + "transactionHash": "0x176194788ff554fcf779fd1930e829fa833e13312b68a70c27cc45baf9db9fa7", "transactionIndex": "0x1", }, ], "status": "success", - "transactionHash": "0x06e6e4ff8c9f6c9bf1ce08dbf545bcdcfa4412b4f0572507d6cd2c070e084950", + "transactionHash": "0x176194788ff554fcf779fd1930e829fa833e13312b68a70c27cc45baf9db9fa7", }, { "blockHash": undefined, @@ -250,12 +254,12 @@ test('default', async () => { "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", "0x0000000000000000000000000000000000000000000000000000000000000223", ], - "transactionHash": "0x99e3b89bb761e99c81345b002b6d30815d6c708b8230936373f5e64f8e35aeb9", + "transactionHash": "0xf159bb3cddf63e24b3486d4d88213258c1860d74721e77b466c26ba6cb1b8a4b", "transactionIndex": "0x2", }, ], "status": "success", - "transactionHash": "0x99e3b89bb761e99c81345b002b6d30815d6c708b8230936373f5e64f8e35aeb9", + "transactionHash": "0xf159bb3cddf63e24b3486d4d88213258c1860d74721e77b466c26ba6cb1b8a4b", }, ] `) diff --git a/src/experimental/eip5792/actions/writeContracts.ts b/src/experimental/eip5792/actions/writeContracts.ts index 3f94f66c48..a12e5f76c7 100644 --- a/src/experimental/eip5792/actions/writeContracts.ts +++ b/src/experimental/eip5792/actions/writeContracts.ts @@ -1,5 +1,13 @@ +// TODO(v3): Remove this. + import type { Abi, AbiStateMutability, Address, Narrow } from 'abitype' +import { + type SendCallsErrorType, + type SendCallsParameters, + type SendCallsReturnType, + sendCalls, +} from '../../../actions/wallet/sendCalls.js' import type { Client } from '../../../clients/createClient.js' import type { Transport } from '../../../clients/transports/createTransport.js' import type { ErrorType } from '../../../errors/utils.js' @@ -18,12 +26,6 @@ import { encodeFunctionData, } from '../../../utils/abi/encodeFunctionData.js' import { getAction } from '../../../utils/getAction.js' -import { - type SendCallsErrorType, - type SendCallsParameters, - type SendCallsReturnType, - sendCalls, -} from './sendCalls.js' export type WriteContractsParameters< contracts extends @@ -50,8 +52,6 @@ export type WriteContractsErrorType = | ErrorType /** - * @deprecated Use {@link sendCalls} instead. See https://viem.sh/experimental/eip5792/sendCalls#contract-calls. - * * Requests for the wallet to sign and broadcast a batch of write contract calls (transactions) to the network. * * - Docs: https://viem.sh/experimental/eip5792/writeContracts diff --git a/src/experimental/eip5792/decorators/eip5792.test.ts b/src/experimental/eip5792/decorators/eip5792.test.ts index 2c7609cc5e..2f1d8b5a55 100644 --- a/src/experimental/eip5792/decorators/eip5792.test.ts +++ b/src/experimental/eip5792/decorators/eip5792.test.ts @@ -1,3 +1,5 @@ +// TODO(v3): Remove this. + import { describe, expect, test } from 'vitest' import { wagmiContractConfig } from '~test/src/abis.js' @@ -88,6 +90,8 @@ describe('smoke test', () => { test('getCallsStatus', async () => { expect(await client.getCallsStatus({ id: '0x123' })).toMatchInlineSnapshot(` { + "atomic": false, + "chainId": undefined, "receipts": [ { "blockHash": "0x66a7b39a0c4635c2f30cd191d7e1fb0bd370c11dd93199f236c5bdacfc9136b3", @@ -98,7 +102,9 @@ describe('smoke test', () => { "transactionHash": "0x66a7b39a0c4635c2f30cd191d7e1fb0bd370c11dd93199f236c5bdacfc9136b3", }, ], - "status": "CONFIRMED", + "status": "success", + "statusCode": 200, + "version": "2.0.0", } `) }) @@ -110,7 +116,11 @@ describe('smoke test', () => { calls: [{ to: '0x0000000000000000000000000000000000000000' }], chain: mainnet, }), - ).toMatchInlineSnapshot(`"0x1"`) + ).toMatchInlineSnapshot(` + { + "id": "0x1", + } + `) }) test('writeContracts', async () => { @@ -124,6 +134,10 @@ describe('smoke test', () => { { ...wagmiContractConfig, functionName: 'mint' }, ], }), - ).toMatchInlineSnapshot(`"0x1"`) + ).toMatchInlineSnapshot(` + { + "id": "0x1", + } + `) }) }) diff --git a/src/experimental/eip5792/decorators/eip5792.ts b/src/experimental/eip5792/decorators/eip5792.ts index 50660cf960..ae588bbb6a 100644 --- a/src/experimental/eip5792/decorators/eip5792.ts +++ b/src/experimental/eip5792/decorators/eip5792.ts @@ -1,32 +1,34 @@ -import type { Client } from '../../../clients/createClient.js' -import type { Transport } from '../../../clients/transports/createTransport.js' -import type { Account } from '../../../types/account.js' -import type { Chain } from '../../../types/chain.js' +// TODO(v3): Remove this. + import { type GetCallsStatusParameters, type GetCallsStatusReturnType, getCallsStatus, -} from '../actions/getCallsStatus.js' +} from '../../../actions/wallet/getCallsStatus.js' import { type GetCapabilitiesParameters, type GetCapabilitiesReturnType, getCapabilities, -} from '../actions/getCapabilities.js' +} from '../../../actions/wallet/getCapabilities.js' import { type SendCallsParameters, type SendCallsReturnType, sendCalls, -} from '../actions/sendCalls.js' +} from '../../../actions/wallet/sendCalls.js' import { type ShowCallsStatusParameters, type ShowCallsStatusReturnType, showCallsStatus, -} from '../actions/showCallsStatus.js' +} from '../../../actions/wallet/showCallsStatus.js' import { type WaitForCallsStatusParameters, type WaitForCallsStatusReturnType, waitForCallsStatus, -} from '../actions/waitForCallsStatus.js' +} from '../../../actions/wallet/waitForCallsStatus.js' +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { Account } from '../../../types/account.js' +import type { Chain } from '../../../types/chain.js' import { type WriteContractsParameters, type WriteContractsReturnType, @@ -90,7 +92,7 @@ export type Eip5792Actions< /** * Requests the connected wallet to send a batch of calls. * - * - Docs: https://viem.sh/experimental/eip5792/sendCalls + * - Docs: https://viem.sh/docs/actions/wallet/sendCalls * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792) * * @param client - Client to use @@ -120,8 +122,11 @@ export type Eip5792Actions< * ], * }) */ - sendCalls: ( - parameters: SendCallsParameters, + sendCalls: < + const calls extends readonly unknown[], + chainOverride extends Chain | undefined = undefined, + >( + parameters: SendCallsParameters, ) => Promise /** * Requests for the wallet to show information about a call batch diff --git a/src/experimental/erc7739/actions/signMessage.ts b/src/experimental/erc7739/actions/signMessage.ts index 740260c9a4..3d6bfdaefa 100644 --- a/src/experimental/erc7739/actions/signMessage.ts +++ b/src/experimental/erc7739/actions/signMessage.ts @@ -117,11 +117,9 @@ export async function signMessage< }) const account = parseAccount(account_) - const domain = await (async () => { + const { salt, ...domain } = await (async () => { if (parameters.verifierDomain) return parameters.verifierDomain - const { - domain: { salt, ...domain }, - } = await getAction( + const { domain } = await getAction( client, getEip712Domain, 'getEip712Domain', diff --git a/src/experimental/erc7846/actions/connect.test.ts b/src/experimental/erc7846/actions/connect.test.ts new file mode 100644 index 0000000000..762da5e770 --- /dev/null +++ b/src/experimental/erc7846/actions/connect.test.ts @@ -0,0 +1,245 @@ +import { describe, expect, test } from 'vitest' +import { anvilMainnet } from '../../../../test/src/anvil.js' +import { UnsupportedProviderMethodError } from '../../../errors/rpc.js' +import { connect } from './connect.js' + +const client = anvilMainnet.getClient() + +test('default', async () => { + const response = await connect(client) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": {}, + }, + ], + } + `) +}) + +describe('behavior: eth_requestAccounts fallback', async () => { + test('default', async () => { + const client = anvilMainnet.getClient() + const request = client.request + client.request = (parameters: any) => { + if (parameters.method === 'wallet_connect') + throw new UnsupportedProviderMethodError(new Error()) + return request(parameters) + } + + const response = await connect(client) + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "capabilities": {}, + }, + ], + } + `) + }) + + test('behavior: with capabilities', async () => { + const client = anvilMainnet.getClient() + const request = client.request + client.request = (parameters: any) => { + if (parameters.method === 'wallet_connect') + throw new UnsupportedProviderMethodError(new Error()) + return request(parameters) + } + + await expect(() => + connect(client, { + capabilities: { + unstable_signInWithEthereum: { + chainId: 1, + nonce: 'abcd1234', + }, + }, + }), + ).rejects.toThrow(UnsupportedProviderMethodError) + }) +}) + +test('behavior: capability: signInWithEthereum', async () => { + { + const response = await connect(client, { + capabilities: { + unstable_signInWithEthereum: { + chainId: 1, + nonce: 'abcd1234', + }, + }, + }) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": { + "unstable_signInWithEthereum": { + "message": "example.com wants you to sign in with your Ethereum account: + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + + + URI: https://example.com + Version: 1 + Chain ID: 1 + Nonce: abcd1234 + Issued At: 2024-01-01T00:00:00.000Z + Expiration Time: 2024-01-01T00:00:00.000Z + Not Before: 2024-01-01T00:00:00.000Z", + "signature": "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + }, + }, + }, + ], + } + `) + } + + { + const response = await connect(client, { + capabilities: { + unstable_signInWithEthereum: { + chainId: 1, + nonce: 'abcd1234', + expirationTime: new Date('2025-01-01T00:00:00.000Z'), + issuedAt: new Date('2025-01-01T00:00:00.000Z'), + notBefore: new Date('2025-01-01T00:00:00.000Z'), + }, + }, + }) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": { + "unstable_signInWithEthereum": { + "message": "example.com wants you to sign in with your Ethereum account: + 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 + + + URI: https://example.com + Version: 1 + Chain ID: 1 + Nonce: abcd1234 + Issued At: 2024-01-01T00:00:00.000Z + Expiration Time: 2024-01-01T00:00:00.000Z + Not Before: 2024-01-01T00:00:00.000Z", + "signature": "0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", + }, + }, + }, + ], + } + `) + } +}) + +test('behavior: capability: addSubAccount', async () => { + { + const response = await connect(client, { + capabilities: { + unstable_addSubAccount: { + account: { + keys: [ + { + publicKey: '0x0000000000000000000000000000000000000000', + type: 'address', + }, + ], + type: 'create', + }, + }, + }, + }) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": { + "unstable_subAccounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + }, + ], + }, + }, + ], + } + `) + } + + { + const response = await connect(client, { + capabilities: { + unstable_addSubAccount: { + account: { + address: '0x0000000000000000000000000000000000000000', + chainId: 1, + type: 'deployed', + }, + }, + }, + }) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": { + "unstable_subAccounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + }, + ], + }, + }, + ], + } + `) + } + + { + const response = await connect(client, { + capabilities: { + unstable_addSubAccount: { + account: { + address: '0x0000000000000000000000000000000000000000', + factory: '0x0000000000000000000000000000000000000000', + factoryData: '0x', + type: 'undeployed', + }, + }, + }, + }) + + expect(response).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": { + "unstable_subAccounts": [ + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + }, + ], + }, + }, + ], + } + `) + } +}) diff --git a/src/experimental/erc7846/actions/connect.ts b/src/experimental/erc7846/actions/connect.ts new file mode 100644 index 0000000000..dec2c1a116 --- /dev/null +++ b/src/experimental/erc7846/actions/connect.ts @@ -0,0 +1,179 @@ +import type { Address } from 'abitype' +import { + type RequestAddressesErrorType, + requestAddresses, +} from '../../../actions/wallet/requestAddresses.js' +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { BaseError } from '../../../errors/base.js' +import type { ExtractCapabilities } from '../../../types/capabilities.js' +import type { Chain } from '../../../types/chain.js' +import type { Prettify } from '../../../types/utils.js' +import type { RequestErrorType } from '../../../utils/buildRequest.js' +import { numberToHex } from '../../../utils/encoding/toHex.js' + +export type ConnectParameters = Prettify<{ + capabilities?: ExtractCapabilities<'connect', 'Request'> | undefined +}> + +export type ConnectReturnType = Prettify<{ + accounts: readonly { + address: Address + capabilities?: ExtractCapabilities<'connect', 'ReturnType'> | undefined + }[] +}> + +export type ConnectErrorType = RequestErrorType | RequestAddressesErrorType + +/** + * Requests to connect account(s) with optional capabilities. + * + * - Docs: https://viem.sh/experimental/erc7846/connect + * - JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md) + * + * @param client - Client to use + * @param parameters - {@link ConnectParameters} + * @returns List of accounts managed by a wallet {@link ConnectReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { connect } from 'viem/experimental/erc7846' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * const response = await connect(client) + */ +export async function connect( + client: Client, + parameters: ConnectParameters = {}, +): Promise { + const capabilities = formatRequestCapabilities(parameters.capabilities) + + const response = await (async () => { + try { + return await client.request( + { method: 'wallet_connect', params: [{ capabilities, version: '1' }] }, + { dedupe: true, retryCount: 0 }, + ) + } catch (e) { + const error = e as BaseError + + // If the wallet does not support `wallet_connect`, and has no + // capabilities, attempt to use `eth_requestAccounts` instead. + if ( + !parameters.capabilities && + (error.name === 'InvalidInputRpcError' || + error.name === 'InvalidParamsRpcError' || + error.name === 'MethodNotFoundRpcError' || + error.name === 'MethodNotSupportedRpcError' || + error.name === 'UnsupportedProviderMethodError') + ) { + const addresses = await requestAddresses(client) + return { + accounts: addresses.map((address) => ({ + address, + capabilities: {}, + })), + } + } + + throw error + } + })() + + return { + ...response, + accounts: (response.accounts ?? []).map((account) => ({ + ...account, + capabilities: formatResponseCapabilities(account.capabilities), + })), + } +} + +function formatRequestCapabilities( + capabilities: ExtractCapabilities<'connect', 'Request'> | undefined, +) { + const { + unstable_addSubAccount, + unstable_getSubAccounts: getSubAccounts, + unstable_signInWithEthereum, + ...rest + } = capabilities ?? {} + + const addSubAccount = unstable_addSubAccount + ? { + ...unstable_addSubAccount, + account: { + ...unstable_addSubAccount.account, + ...(unstable_addSubAccount.account.chainId + ? { + chainId: numberToHex(unstable_addSubAccount.account.chainId), + } + : {}), + }, + } + : undefined + + const { chainId, expirationTime, issuedAt, notBefore } = + unstable_signInWithEthereum ?? {} + const signInWithEthereum = unstable_signInWithEthereum + ? { + ...unstable_signInWithEthereum, + chainId: numberToHex(chainId!), + ...(expirationTime + ? { + expirationTime: expirationTime.toISOString(), + } + : {}), + ...(issuedAt + ? { + issuedAt: issuedAt.toISOString(), + } + : {}), + ...(notBefore + ? { + notBefore: notBefore.toISOString(), + } + : {}), + } + : undefined + + return { + ...rest, + ...(addSubAccount + ? { + addSubAccount, + } + : {}), + ...(getSubAccounts + ? { + getSubAccounts, + } + : {}), + ...(signInWithEthereum + ? { + signInWithEthereum, + } + : {}), + } +} + +function formatResponseCapabilities( + capabilities: ExtractCapabilities<'connect', 'ReturnType'> | undefined, +) { + return Object.entries(capabilities ?? {}).reduce( + (capabilities, [key, value]) => { + const k = (() => { + if (key === 'signInWithEthereum') return 'unstable_signInWithEthereum' + if (key === 'subAccounts') return 'unstable_subAccounts' + return key + })() + capabilities[k] = value + return capabilities + }, + {} as Record, + ) +} diff --git a/src/experimental/erc7846/actions/disconnect.test.ts b/src/experimental/erc7846/actions/disconnect.test.ts new file mode 100644 index 0000000000..966685b56e --- /dev/null +++ b/src/experimental/erc7846/actions/disconnect.test.ts @@ -0,0 +1,9 @@ +import { test } from 'vitest' +import { anvilMainnet } from '../../../../test/src/anvil.js' +import { disconnect } from './disconnect.js' + +const client = anvilMainnet.getClient() + +test('default', async () => { + await disconnect(client) +}) diff --git a/src/experimental/erc7846/actions/disconnect.ts b/src/experimental/erc7846/actions/disconnect.ts new file mode 100644 index 0000000000..7f31bc97be --- /dev/null +++ b/src/experimental/erc7846/actions/disconnect.ts @@ -0,0 +1,36 @@ +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { Chain } from '../../../types/chain.js' +import type { RequestErrorType } from '../../../utils/buildRequest.js' + +export type DisconnectErrorType = RequestErrorType + +/** + * Requests to disconnect connected accounts. + * + * - Docs: https://viem.sh/experimental/erc7846/disconnect + * - JSON-RPC Methods: [`wallet_disconnect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md) + * + * @param client - Client to use + * @returns void + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { disconnect } from 'viem/experimental/erc7846' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * + * await disconnect(client) + */ +export async function disconnect( + client: Client, +) { + return await client.request( + { method: 'wallet_disconnect' }, + { dedupe: true, retryCount: 0 }, + ) +} diff --git a/src/experimental/erc7846/decorators/erc7846.test.ts b/src/experimental/erc7846/decorators/erc7846.test.ts new file mode 100644 index 0000000000..92bbf21c49 --- /dev/null +++ b/src/experimental/erc7846/decorators/erc7846.test.ts @@ -0,0 +1,36 @@ +// TODO(v3): Remove this. + +import { describe, expect, test } from 'vitest' + +import { anvilMainnet } from '~test/src/anvil.js' +import { erc7846Actions } from './erc7846.js' + +const client = anvilMainnet.getClient().extend(erc7846Actions()) + +test('default', async () => { + expect(erc7846Actions()(client)).toMatchInlineSnapshot(` + { + "connect": [Function], + "disconnect": [Function], + } + `) +}) + +describe('smoke test', () => { + test('connect', async () => { + expect(await client.connect()).toMatchInlineSnapshot(` + { + "accounts": [ + { + "address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "capabilities": {}, + }, + ], + } + `) + }) + + test('disconnect', async () => { + await client.disconnect() + }) +}) diff --git a/src/experimental/erc7846/decorators/erc7846.ts b/src/experimental/erc7846/decorators/erc7846.ts new file mode 100644 index 0000000000..1705f9252d --- /dev/null +++ b/src/experimental/erc7846/decorators/erc7846.ts @@ -0,0 +1,88 @@ +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { Chain } from '../../../types/chain.js' +import { + type ConnectParameters, + type ConnectReturnType, + connect, +} from '../actions/connect.js' +import { disconnect } from '../actions/disconnect.js' + +export type Erc7846Actions = { + /** + * Requests to connect to a wallet. + * + * - Docs: https://viem.sh/experimental/erc7846/connect + * - JSON-RPC Methods: [`wallet_connect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md) + * + * @param client - Client to use + * @param parameters - {@link ConnectParameters} + * @returns List of accounts managed by a wallet {@link ConnectReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { erc7846Actions } from 'viem/experimental/erc7846' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }).extend(erc7846Actions()) + * + * const response = await client.connect() + */ + connect: ( + parameters?: ConnectParameters | undefined, + ) => Promise + /** + * Requests to disconnect connected accounts. + * + * - Docs: https://viem.sh/experimental/erc7846/disconnect + * - JSON-RPC Methods: [`wallet_disconnect`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md) + * + * @param client - Client to use + * @returns void + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { erc7846Actions } from 'viem/experimental/erc7846' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }).extend(erc7846Actions()) + * + * await client.disconnect() + */ + disconnect: () => Promise +} + +/** + * A suite of ERC-7846 Wallet Actions. + * + * @example + * import { createPublicClient, createWalletClient, http } from 'viem' + * import { mainnet } from 'viem/chains' + * import { erc7846Actions } from 'viem/experimental/erc7846' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: http(), + * }).extend(erc7846Actions()) + * + * const response = await client.connect() + */ +export function erc7846Actions() { + return < + transport extends Transport, + chain extends Chain | undefined = Chain | undefined, + >( + client: Client, + ): Erc7846Actions => { + return { + connect: (parameters) => connect(client, parameters), + disconnect: () => disconnect(client), + } + } +} diff --git a/src/experimental/erc7846/index.ts b/src/experimental/erc7846/index.ts new file mode 100644 index 0000000000..0d4cb2a5b8 --- /dev/null +++ b/src/experimental/erc7846/index.ts @@ -0,0 +1,13 @@ +// biome-ignore lint/performance/noBarrelFile: entrypoint +export { + type ConnectErrorType, + type ConnectParameters, + type ConnectReturnType, + connect, +} from './actions/connect.js' +export { + type DisconnectErrorType, + disconnect, +} from './actions/disconnect.js' + +export { type Erc7846Actions, erc7846Actions } from './decorators/erc7846.js' diff --git a/src/experimental/erc7846/package.json b/src/experimental/erc7846/package.json new file mode 100644 index 0000000000..c395083ef4 --- /dev/null +++ b/src/experimental/erc7846/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "types": "../../_types/experimental/erc7846/index.d.ts", + "module": "../../_esm/experimental/erc7846/index.js", + "main": "../../_cjs/experimental/erc7846/index.js" +} diff --git a/src/experimental/erc7895/actions/addSubAccount.test.ts b/src/experimental/erc7895/actions/addSubAccount.test.ts new file mode 100644 index 0000000000..3195d3657f --- /dev/null +++ b/src/experimental/erc7895/actions/addSubAccount.test.ts @@ -0,0 +1,39 @@ +import { expect, test } from 'vitest' +import { anvilMainnet } from '../../../../test/src/anvil.js' +import { addSubAccount } from './addSubAccount.js' + +const client = anvilMainnet.getClient() + +test('default', async () => { + { + const response = await addSubAccount(client, { + keys: [ + { + publicKey: '0x0000000000000000000000000000000000000000', + type: 'address', + }, + ], + type: 'create', + }) + + expect(response).toMatchInlineSnapshot(` + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + } + `) + } + + { + const response = await addSubAccount(client, { + address: '0x0000000000000000000000000000000000000000', + chainId: 1, + type: 'deployed', + }) + + expect(response).toMatchInlineSnapshot(` + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + } + `) + } +}) diff --git a/src/experimental/erc7895/actions/addSubAccount.ts b/src/experimental/erc7895/actions/addSubAccount.ts new file mode 100644 index 0000000000..5389982cb1 --- /dev/null +++ b/src/experimental/erc7895/actions/addSubAccount.ts @@ -0,0 +1,84 @@ +import type { Address } from 'abitype' +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { Chain } from '../../../types/chain.js' +import type { Hex } from '../../../types/misc.js' +import type { OneOf, Prettify } from '../../../types/utils.js' +import type { RequestErrorType } from '../../../utils/buildRequest.js' +import { numberToHex } from '../../../utils/index.js' + +export type AddSubAccountParameters = Prettify< + OneOf< + | { + keys: readonly { + publicKey: Hex + type: 'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256' + }[] + type: 'create' + } + | { + address: Address + chainId?: number | undefined + type: 'deployed' + } + | { + address: Address + chainId?: number | undefined + factory: Address + factoryData: Hex + type: 'undeployed' + } + > +> + +export type AddSubAccountReturnType = Prettify<{ + address: Address + factory?: Address | undefined + factoryData?: Hex | undefined +}> + +export type AddSubAccountErrorType = RequestErrorType + +/** + * Requests to add a Sub Account. + * + * - Docs: https://viem.sh/experimental/erc7895/addSubAccount + * - JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md) + * + * @param client - Client to use + * @param parameters - {@link AddSubAccountParameters} + * @returns Sub Account. {@link AddSubAccountReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { addSubAccount } from 'viem/experimental/erc7895' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }) + * const response = await addSubAccount(client, { + * keys: [{ publicKey: '0x0000000000000000000000000000000000000000', type: 'address' }], + * type: 'create', + * }) + */ +export async function addSubAccount( + client: Client, + parameters: AddSubAccountParameters, +): Promise { + return client.request({ + method: 'wallet_addSubAccount', + params: [ + { + account: { + ...parameters, + ...(parameters.chainId + ? { chainId: numberToHex(parameters.chainId) } + : {}), + } as never, + version: '1', + }, + ], + }) +} diff --git a/src/experimental/erc7895/decorators/erc7895.test.ts b/src/experimental/erc7895/decorators/erc7895.test.ts new file mode 100644 index 0000000000..d936cf09d7 --- /dev/null +++ b/src/experimental/erc7895/decorators/erc7895.test.ts @@ -0,0 +1,36 @@ +// TODO(v3): Remove this. + +import { describe, expect, test } from 'vitest' + +import { anvilMainnet } from '~test/src/anvil.js' +import { erc7895Actions } from './erc7895.js' + +const client = anvilMainnet.getClient().extend(erc7895Actions()) + +test('default', async () => { + expect(erc7895Actions()(client)).toMatchInlineSnapshot(` + { + "addSubAccount": [Function], + } + `) +}) + +describe('smoke test', () => { + test('addSubAccount', async () => { + expect( + await client.addSubAccount({ + keys: [ + { + publicKey: '0x0000000000000000000000000000000000000000', + type: 'address', + }, + ], + type: 'create', + }), + ).toMatchInlineSnapshot(` + { + "address": "0x70997970c51812dc3a010c7d01b50e0d17dc79c8", + } + `) + }) +}) diff --git a/src/experimental/erc7895/decorators/erc7895.ts b/src/experimental/erc7895/decorators/erc7895.ts new file mode 100644 index 0000000000..9e1189a961 --- /dev/null +++ b/src/experimental/erc7895/decorators/erc7895.ts @@ -0,0 +1,70 @@ +import type { Client } from '../../../clients/createClient.js' +import type { Transport } from '../../../clients/transports/createTransport.js' +import type { Chain } from '../../../types/chain.js' +import { + type AddSubAccountParameters, + type AddSubAccountReturnType, + addSubAccount, +} from '../actions/addSubAccount.js' + +export type Erc7895Actions = { + /** + * Requests to add a Sub Account. + * + * - Docs: https://viem.sh/experimental/erc7895/addSubAccount + * - JSON-RPC Methods: [`wallet_addSubAccount`](https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7895.md) + * + * @param client - Client to use + * @param parameters - {@link AddSubAccountParameters} + * @returns Sub Account. {@link AddSubAccountReturnType} + * + * @example + * import { createWalletClient, custom } from 'viem' + * import { mainnet } from 'viem/chains' + * import { erc7895Actions } from 'viem/experimental' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: custom(window.ethereum), + * }).extend(erc7895Actions()) + * + * const response = await client.addSubAccount({ + * keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }], + * type: 'create', + * }) + */ + addSubAccount: ( + parameters: AddSubAccountParameters, + ) => Promise +} + +/** + * A suite of ERC-7895 Wallet Actions. + * + * @example + * import { createPublicClient, createWalletClient, http } from 'viem' + * import { mainnet } from 'viem/chains' + * import { erc7895Actions } from 'viem/experimental' + * + * const client = createWalletClient({ + * chain: mainnet, + * transport: http(), + * }).extend(erc7895Actions()) + * + * const response = await client.addSubAccount({ + * keys: [{ key: '0x0000000000000000000000000000000000000000', type: 'address' }], + * type: 'create', + * }) + */ +export function erc7895Actions() { + return < + transport extends Transport, + chain extends Chain | undefined = Chain | undefined, + >( + client: Client, + ): Erc7895Actions => { + return { + addSubAccount: (parameters) => addSubAccount(client, parameters), + } + } +} diff --git a/src/experimental/erc7895/index.ts b/src/experimental/erc7895/index.ts new file mode 100644 index 0000000000..aeb811b1be --- /dev/null +++ b/src/experimental/erc7895/index.ts @@ -0,0 +1,9 @@ +// biome-ignore lint/performance/noBarrelFile: entrypoint +export { + type AddSubAccountErrorType, + type AddSubAccountParameters, + type AddSubAccountReturnType, + addSubAccount, +} from './actions/addSubAccount.js' + +export { type Erc7895Actions, erc7895Actions } from './decorators/erc7895.js' diff --git a/src/experimental/erc7895/package.json b/src/experimental/erc7895/package.json new file mode 100644 index 0000000000..c31a44daa5 --- /dev/null +++ b/src/experimental/erc7895/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "types": "../../_types/experimental/erc7895/index.d.ts", + "module": "../../_esm/experimental/erc7895/index.js", + "main": "../../_cjs/experimental/erc7895/index.js" +} diff --git a/src/experimental/index.ts b/src/experimental/index.ts index e326cb9bf3..b124369dc6 100644 --- a/src/experimental/index.ts +++ b/src/experimental/index.ts @@ -1,45 +1,72 @@ // biome-ignore lint/performance/noBarrelFile: entrypoint module export { + /** @deprecated This is no longer experimental – use `import type { GetCapabilitiesParameters } from 'viem/actions'` instead. */ type GetCapabilitiesParameters, + /** @deprecated This is no longer experimental – use `import type { GetCapabilitiesErrorType } from 'viem/actions'` instead. */ type GetCapabilitiesErrorType, + /** @deprecated This is no longer experimental – use `import type { GetCapabilitiesReturnType } from 'viem/actions'` instead. */ type GetCapabilitiesReturnType, + /** @deprecated This is no longer experimental – use `import { getCapabilities } from 'viem/actions'` instead. */ getCapabilities, -} from './eip5792/actions/getCapabilities.js' +} from '../actions/wallet/getCapabilities.js' export { + /** @deprecated This is no longer experimental – use `import type { SendCallsErrorType } from 'viem/actions'` instead. */ type SendCallsErrorType, + /** @deprecated This is no longer experimental – use `import type { SendCallsParameters } from 'viem/actions'` instead. */ type SendCallsParameters, + /** @deprecated This is no longer experimental – use `import type { SendCallsReturnType } from 'viem/actions'` instead. */ type SendCallsReturnType, + /** @deprecated This is no longer experimental – use `import { sendCalls } from 'viem/actions'` instead. */ sendCalls, -} from './eip5792/actions/sendCalls.js' +} from '../actions/wallet/sendCalls.js' export { + /** @deprecated This is no longer experimental – use `import type { GetCallsStatusErrorType } from 'viem/actions'` instead. */ type GetCallsStatusErrorType, + /** @deprecated This is no longer experimental – use `import type { GetCallsStatusParameters } from 'viem/actions'` instead. */ type GetCallsStatusParameters, + /** @deprecated This is no longer experimental – use `import type { GetCallsStatusReturnType } from 'viem/actions'` instead. */ type GetCallsStatusReturnType, + /** @deprecated This is no longer experimental – use `import { getCallsStatus } from 'viem/actions'` instead. */ getCallsStatus, -} from './eip5792/actions/getCallsStatus.js' +} from '../actions/wallet/getCallsStatus.js' export { + /** @deprecated This is no longer experimental – use `import type { ShowCallsStatusErrorType } from 'viem/actions'` instead. */ type ShowCallsStatusErrorType, + /** @deprecated This is no longer experimental – use `import type { ShowCallsStatusParameters } from 'viem/actions'` instead. */ type ShowCallsStatusParameters, + /** @deprecated This is no longer experimental – use `import type { ShowCallsStatusReturnType } from 'viem/actions'` instead. */ type ShowCallsStatusReturnType, + /** @deprecated This is no longer experimental – use `import { showCallsStatus } from 'viem/actions'` instead. */ showCallsStatus, -} from './eip5792/actions/showCallsStatus.js' +} from '../actions/wallet/showCallsStatus.js' export { + /** @deprecated This is no longer experimental – use `import type { WaitForCallsStatusErrorType } from 'viem/actions'` instead. */ type WaitForCallsStatusErrorType, + /** @deprecated This is no longer experimental – use `import type { WaitForCallsStatusParameters } from 'viem/actions'` instead. */ type WaitForCallsStatusParameters, + /** @deprecated This is no longer experimental – use `import type { WaitForCallsStatusReturnType } from 'viem/actions'` instead. */ type WaitForCallsStatusReturnType, + /** @deprecated This is no longer experimental – use `import type { WaitForCallsStatusTimeoutErrorType } from 'viem/actions'` instead. */ type WaitForCallsStatusTimeoutErrorType, - WaitForCallsStatusTimeoutError, + /** @deprecated This is no longer experimental – use `import { waitForCallsStatus } from 'viem/actions'` instead. */ waitForCallsStatus, -} from './eip5792/actions/waitForCallsStatus.js' +} from '../actions/wallet/waitForCallsStatus.js' export { + /** @deprecated Use `SendCallsErrorType` instead. */ type WriteContractsErrorType, + /** @deprecated Use `SendCallsParameters` instead. */ type WriteContractsParameters, + /** @deprecated Use `SendCallsReturnType` instead. */ type WriteContractsReturnType, + /** @deprecated */ type WriteContractFunctionParameters, + /** @deprecated Use `sendCalls` instead. */ writeContracts, } from './eip5792/actions/writeContracts.js' export { + /** @deprecated This is no longer experimental – use `import type { WalletActions } from 'viem'` instead. */ type Eip5792Actions, + /** @deprecated This is no longer experimental – use `import { createWalletClient } from 'viem'` or `import { walletActions } from 'viem'` instead. */ eip5792Actions, } from './eip5792/decorators/eip5792.js' @@ -148,3 +175,13 @@ export { type Erc7821Actions, erc7821Actions, } from './erc7821/decorators/erc7821.js' + +export { + type Erc7846Actions, + erc7846Actions, +} from './erc7846/decorators/erc7846.js' + +export { + type Erc7895Actions, + erc7895Actions, +} from './erc7895/decorators/erc7895.js' diff --git a/src/index.test.ts b/src/index.test.ts index 9ac7a8b8a2..9cffad5d3a 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -24,6 +24,7 @@ test('exports', () => { "parseAbiParameter", "parseAbiParameters", "getContract", + "WaitForCallsStatusTimeoutError", "createClient", "rpcSchema", "custom", @@ -42,6 +43,7 @@ test('exports', () => { "erc20Abi", "erc20Abi_bytes32", "erc721Abi", + "erc1155Abi", "erc4626Abi", "universalSignatureValidatorAbi", "ethAddress", @@ -187,7 +189,11 @@ test('exports', () => { "BaseFeeScalarError", "Eip1559FeesNotSupportedError", "MaxFeePerGasTooLowError", + "AtomicReadyWalletRejectedUpgradeError", + "AtomicityNotSupportedError", + "BundleTooLargeError", "ChainDisconnectedError", + "DuplicateIdError", "InternalRpcError", "InvalidInputRpcError", "InvalidParamsRpcError", @@ -205,7 +211,10 @@ test('exports', () => { "SwitchChainError", "TransactionRejectedRpcError", "UnauthorizedProviderError", + "UnknownBundleIdError", "UnknownRpcError", + "UnsupportedChainIdError", + "UnsupportedNonOptionalCapabilityError", "UnsupportedProviderMethodError", "UserRejectedRequestError", "ChainDoesNotSupportContract", @@ -363,6 +372,7 @@ test('exports', () => { "extractChain", "getChainContractAddress", "encodePacked", + "withCache", "withRetry", "withTimeout", "formatEther", diff --git a/src/index.ts b/src/index.ts index fe526f8e76..64a235a970 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,7 +13,6 @@ export { type ParseAbiItem, type ParseAbiParameter, type ParseAbiParameters, - type ResolvedRegister, type TypedData, type TypedDataDomain, type TypedDataParameter, @@ -378,6 +377,33 @@ export type { PrepareTransactionRequestRequest, PrepareTransactionRequestReturnType, } from './actions/wallet/prepareTransactionRequest.js' +export type { + GetCapabilitiesParameters, + GetCapabilitiesErrorType, + GetCapabilitiesReturnType, +} from './actions/wallet/getCapabilities.js' +export type { + SendCallsErrorType, + SendCallsParameters, + SendCallsReturnType, +} from './actions/wallet/sendCalls.js' +export type { + GetCallsStatusErrorType, + GetCallsStatusParameters, + GetCallsStatusReturnType, +} from './actions/wallet/getCallsStatus.js' +export type { + ShowCallsStatusErrorType, + ShowCallsStatusParameters, + ShowCallsStatusReturnType, +} from './actions/wallet/showCallsStatus.js' +export { WaitForCallsStatusTimeoutError } from './actions/wallet/waitForCallsStatus.js' +export type { + WaitForCallsStatusErrorType, + WaitForCallsStatusParameters, + WaitForCallsStatusReturnType, + WaitForCallsStatusTimeoutErrorType, +} from './actions/wallet/waitForCallsStatus.js' export type { SendUnsignedTransactionErrorType, SendUnsignedTransactionParameters, @@ -579,6 +605,7 @@ export { erc20Abi, erc20Abi_bytes32, erc721Abi, + erc1155Abi, erc4626Abi, universalSignatureValidatorAbi, } from './constants/abis.js' @@ -769,8 +796,16 @@ export { type MaxFeePerGasTooLowErrorType, } from './errors/fee.js' export { + AtomicReadyWalletRejectedUpgradeError, + type AtomicReadyWalletRejectedUpgradeErrorType, + AtomicityNotSupportedError, + type AtomicityNotSupportedErrorType, + BundleTooLargeError, + type BundleTooLargeErrorType, ChainDisconnectedError, type ChainDisconnectedErrorType, + DuplicateIdError, + type DuplicateIdErrorType, InternalRpcError, type InternalRpcErrorType, InvalidInputRpcError, @@ -806,8 +841,14 @@ export { type TransactionRejectedRpcErrorType, UnauthorizedProviderError, type UnauthorizedProviderErrorType, + UnknownBundleIdError, + type UnknownBundleIdErrorType, UnknownRpcError, type UnknownRpcErrorType, + UnsupportedChainIdError, + type UnsupportedChainIdErrorType, + UnsupportedNonOptionalCapabilityError, + type UnsupportedNonOptionalCapabilityErrorType, UnsupportedProviderMethodError, type UnsupportedProviderMethodErrorType, UserRejectedRequestError, @@ -1063,6 +1104,16 @@ export type { BlockTag, Uncle, } from './types/block.js' +export type { + Capabilities, + /** @deprecated Use `Capabilities` instead. */ + Capabilities as WalletCapabilities, + CapabilitiesSchema, + /** @deprecated Use `ChainIdToCapabilities` instead. */ + ChainIdToCapabilities as WalletCapabilitiesRecord, + ChainIdToCapabilities, + ExtractCapabilities, +} from './types/capabilities.js' export type { ByteArray, Hash, @@ -1091,13 +1142,12 @@ export type { RpcSchema, RpcSchemaOverride, TestRpcSchema, - WalletCapabilities, - WalletCapabilitiesRecord, WalletCallReceipt, WalletGetCallsStatusReturnType, WalletGrantPermissionsParameters, WalletGrantPermissionsReturnType, WalletSendCallsParameters, + WalletSendCallsReturnType, WalletPermissionCaveat, WalletPermission, WalletRpcSchema, @@ -1135,6 +1185,7 @@ export type { SignedAuthorization, SignedAuthorizationList, } from './types/authorization.js' +export type { Register, ResolvedRegister } from './types/register.js' export type { Index, Quantity, @@ -1591,6 +1642,7 @@ export { type EncodePackedErrorType, encodePacked, } from './utils/abi/encodePacked.js' +export { withCache } from './utils/promise/withCache.js' export { type WithRetryErrorType, withRetry, diff --git a/src/jsr.json b/src/jsr.json index 59b51cb51e..60ee3d0866 100644 --- a/src/jsr.json +++ b/src/jsr.json @@ -1,6 +1,6 @@ { "name": "@wevm/viem", - "version": "2.25.0", + "version": "2.29.1", "exports": { ".": "./index.ts", "./accounts-abstraction": "./account-abstraction/index.ts", diff --git a/src/linea/actions/estimateGas.test.ts b/src/linea/actions/estimateGas.test.ts index 14d58a6aa4..8e176d327e 100644 --- a/src/linea/actions/estimateGas.test.ts +++ b/src/linea/actions/estimateGas.test.ts @@ -33,7 +33,5 @@ test('error: insufficient balance', async () => { to: '0x0000000000000000000000000000000000000000', value: parseEther('0.0001'), }), - ).rejects.toThrowError( - 'transaction up-front cost 0x5af31a7dba00 exceeds transaction sender', - ) + ).rejects.toThrowError('exceeds transaction sender account balance') }) diff --git a/src/linea/actions/estimateGas.ts b/src/linea/actions/estimateGas.ts index e38f254735..a1aa1f98cb 100644 --- a/src/linea/actions/estimateGas.ts +++ b/src/linea/actions/estimateGas.ts @@ -80,7 +80,8 @@ export async function estimateGas< ...rest } = args - const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined + const blockNumberHex = + typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined const block = blockNumberHex || blockTag assertRequest(args as AssertRequestParameters) diff --git a/src/op-stack/actions/getWithdrawalStatus.ts b/src/op-stack/actions/getWithdrawalStatus.ts index 31789a183d..0af5348caa 100644 --- a/src/op-stack/actions/getWithdrawalStatus.ts +++ b/src/op-stack/actions/getWithdrawalStatus.ts @@ -284,7 +284,6 @@ export async function getWithdrawalStatus< // All potential error causes listed here, can either be the error string or the error name // if custom error types are returned. const errorCauses = { - 'waiting-to-prove': ['Unproven'], 'ready-to-prove': [ 'OptimismPortal: invalid game type', 'OptimismPortal: withdrawal has not been proven yet', @@ -292,6 +291,7 @@ export async function getWithdrawalStatus< 'OptimismPortal: dispute game created before respected game type was updated', 'InvalidGameType', 'LegacyGame', + 'Unproven', ], 'waiting-to-finalize': [ 'OptimismPortal: proven withdrawal has not matured yet', @@ -306,10 +306,6 @@ export async function getWithdrawalStatus< error.cause.data?.errorName, error.cause.data?.args?.[0] as string, ] - if ( - errorCauses['waiting-to-prove'].some((cause) => errors.includes(cause)) - ) - return 'waiting-to-prove' if (errorCauses['ready-to-prove'].some((cause) => errors.includes(cause))) return 'ready-to-prove' if ( diff --git a/src/package.json b/src/package.json index 7ee9e01ab9..c45d6daddf 100644 --- a/src/package.json +++ b/src/package.json @@ -1,7 +1,7 @@ { "name": "zkr-viem", "description": "TypeScript Interface for Ethereum & Zircuit", - "version": "1.0.0", + "version": "1.2.2", "type": "module", "main": "./_cjs/index.js", "module": "./_esm/index.js", @@ -75,6 +75,16 @@ "import": "./_esm/experimental/erc7821/index.js", "default": "./_cjs/experimental/erc7821/index.js" }, + "./experimental/erc7846": { + "types": "./_types/experimental/erc7846/index.d.ts", + "import": "./_esm/experimental/erc7846/index.js", + "default": "./_cjs/experimental/erc7846/index.js" + }, + "./experimental/erc7895": { + "types": "./_types/experimental/erc7895/index.d.ts", + "import": "./_esm/experimental/erc7895/index.js", + "default": "./_cjs/experimental/erc7895/index.js" + }, "./linea": { "types": "./_types/linea/index.d.ts", "import": "./_esm/linea/index.js", @@ -128,6 +138,8 @@ "experimental": ["./_types/experimental/index.d.ts"], "experimental/erc7739": ["./_types/experimental/erc7739/index.d.ts"], "experimental/erc7821": ["./_types/experimental/erc7821/index.d.ts"], + "experimental/erc7846": ["./_types/experimental/erc7846/index.d.ts"], + "experimental/erc7895": ["./_types/experimental/erc7895/index.d.ts"], "node": ["./_types/node/index.d.ts"], "op-stack": ["./_types/op-stack/index.d.ts"], "siwe": ["./_types/siwe/index.d.ts"], @@ -145,8 +157,8 @@ } }, "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", + "@noble/curves": "1.8.2", + "@noble/hashes": "1.7.2", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", diff --git a/src/types/authorization.ts b/src/types/authorization.ts index 6fa1a4c0a4..8b3568ca30 100644 --- a/src/types/authorization.ts +++ b/src/types/authorization.ts @@ -9,7 +9,7 @@ export type Authorization = { chainId: uint32 /** Nonce of the EOA to delegate to. */ nonce: uint32 -} & (signed extends true ? Signature : ExactPartial) +} & (signed extends true ? Signature : ExactPartial>) export type AuthorizationList< uint32 = number, diff --git a/src/types/block.ts b/src/types/block.ts index 82056b95bc..f0164c863b 100644 --- a/src/types/block.ts +++ b/src/types/block.ts @@ -32,7 +32,7 @@ export type Block< hash: blockTag extends 'pending' ? null : Hash /** Logs bloom filter or `null` if pending */ logsBloom: blockTag extends 'pending' ? null : Hex - /** Address that received this block’s mining rewards */ + /** Address that received this block’s mining rewards, COINBASE address */ miner: Address /** Unique identifier for the block. */ mixHash: Hash @@ -83,8 +83,27 @@ export type BlockIdentifier = { } ) +/** Represents a block number in the blockchain. */ export type BlockNumber = quantity +/** + * Specifies a particular block in the blockchain. + * + * - `"latest"`: the latest proposed block + * - `"earliest"`: the earliest/genesis block – lowest numbered block the client has available + * - `"pending"`: pending state/transactions – next block built by the client on top + * of unsafe and containing the set of transactions usually taken from local mempool + * - `"safe"`: the latest safe head block – the most recent block that is safe from + * re-orgs under honest majority and certain synchronicity assumptions + * - `"finalized"`: the latest finalized block – the most recent crypto-economically secure block; + * cannot be re-orged outside of manual intervention driven by community coordination + * + * Using `pending`, while allowed, is not advised, as it may lead + * to internally inconsistent results. Use of `latest` is safe and will not + * lead to inconsistent results. Depending on the backing RPC networks caching system, + * the usage of `pending` may lead to inconsistencies as a result of an + * overly aggressive cache system. This may cause downstream errors/invalid states. + */ export type BlockTag = 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized' export type Uncle< diff --git a/src/types/capabilities.ts b/src/types/capabilities.ts new file mode 100644 index 0000000000..aa71aba01f --- /dev/null +++ b/src/types/capabilities.ts @@ -0,0 +1,96 @@ +import type { + AddSubAccountParameters, + AddSubAccountReturnType, +} from '../experimental/erc7895/actions/addSubAccount.js' +import type { SiweMessage } from '../utils/siwe/types.js' +import type { Hex } from './misc.js' +import type { ResolvedRegister } from './register.js' +import type { Prettify, RequiredBy } from './utils.js' + +export type CapabilitiesSchema = ResolvedRegister['CapabilitiesSchema'] + +export type DefaultCapabilitiesSchema = { + connect: { + Request: { + unstable_addSubAccount?: + | { + account: AddSubAccountParameters + } + | undefined + unstable_signInWithEthereum?: + | RequiredBy, 'chainId' | 'nonce'> + | undefined + } + ReturnType: { + unstable_signInWithEthereum?: + | { + message: string + signature: Hex + } + | undefined + unstable_subAccounts?: readonly AddSubAccountReturnType[] | undefined + } + } + getCapabilities: { + ReturnType: { + atomic?: + | { + status: 'supported' | 'ready' | 'unsupported' + } + | undefined + unstable_addSubAccount?: + | { + keyTypes: ( + | 'address' + | 'p256' + | 'webcrypto-p256' + | 'webauthn-p256' + )[] + supported: boolean + } + | undefined + paymasterService?: + | { + supported: boolean + } + | undefined + } + } + sendCalls: { + Request: { + paymasterService?: + | { + [chainId: number]: { + context?: Record | undefined + optional?: boolean | undefined + url: string + } + } + | undefined + } + } +} + +export type Capabilities = {}> = { + [key: string]: any +} & capabilities + +export type ChainIdToCapabilities< + capabilities extends Capabilities = Capabilities, + id extends string | number = Hex, +> = { + [chainId in id]: capabilities +} + +export type ExtractCapabilities< + method extends string, + key extends 'Request' | 'ReturnType', +> = Prettify< + method extends keyof CapabilitiesSchema + ? CapabilitiesSchema[method] extends { + [k in key]: infer value extends Record + } + ? Capabilities + : Capabilities + : Capabilities +> diff --git a/src/types/chain.test-d.ts b/src/types/chain.test-d.ts index 73f4c6e385..76812a3e5b 100644 --- a/src/types/chain.test-d.ts +++ b/src/types/chain.test-d.ts @@ -1,6 +1,6 @@ import { expectTypeOf, test } from 'vitest' -import type { base } from '~viem/chains/index.js' +import type { base } from '~zkr-viem/chains/index.js' import type { celo } from '../chains/definitions/celo.js' import type { mainnet } from '../chains/definitions/mainnet.js' import type { optimism } from '../chains/definitions/optimism.js' diff --git a/src/types/chainZircuit.ts b/src/types/chainZircuit.ts index 9ba8196a40..3ef495c673 100644 --- a/src/types/chainZircuit.ts +++ b/src/types/chainZircuit.ts @@ -9,7 +9,7 @@ export interface L2ToL1MessagePasserContract extends ChainContract { } // Explicit contract mapping -export interface ZircuitContractsMap { +interface ZircuitContractsMap { gasPriceOracle: ChainContract l1Block: ChainContract l2CrossDomainMessenger: ChainContract diff --git a/src/types/eip1193.ts b/src/types/eip1193.ts index bc00e02189..531a764339 100644 --- a/src/types/eip1193.ts +++ b/src/types/eip1193.ts @@ -9,6 +9,7 @@ import type { RpcUserOperationReceipt, } from '../account-abstraction/types/rpc.js' import type { BlockTag } from './block.js' +import type { Capabilities, ChainIdToCapabilities } from './capabilities.js' import type { Hash, Hex, LogTopic } from './misc.js' import type { RpcStateOverride } from './rpc.js' import type { @@ -121,17 +122,6 @@ export type NetworkSync = { startingBlock: Quantity } -export type WalletCapabilities = { - [capability: string]: any -} - -export type WalletCapabilitiesRecord< - capabilities extends WalletCapabilities = WalletCapabilities, - id extends string | number = Hex, -> = { - [chainId in id]: capabilities -} - export type WalletCallReceipt = { logs: { address: Hex @@ -186,9 +176,19 @@ export type WalletGrantPermissionsReturnType = { | undefined } -export type WalletGetCallsStatusReturnType = { - status: 'PENDING' | 'CONFIRMED' - receipts?: WalletCallReceipt[] | undefined +export type WalletGetCallsStatusReturnType< + capabilities extends Capabilities = Capabilities, + numberType = Hex, + bigintType = Hex, + receiptStatus = Hex, +> = { + atomic: boolean + capabilities?: capabilities | Capabilities | undefined + chainId: numberType + id: string + receipts?: WalletCallReceipt[] | undefined + status: number + version: string } export type WalletPermissionCaveat = { @@ -205,23 +205,33 @@ export type WalletPermission = { } export type WalletSendCallsParameters< - capabilities extends WalletCapabilities = WalletCapabilities, + capabilities extends Capabilities = Capabilities, chainId extends Hex | number = Hex, quantity extends Quantity | bigint = Quantity, > = [ { + atomicRequired: boolean calls: readonly { + capabilities?: capabilities | Capabilities | undefined to?: Address | undefined data?: Hex | undefined value?: quantity | undefined }[] - capabilities?: capabilities | undefined + capabilities?: capabilities | Capabilities | undefined chainId?: chainId | undefined + id?: string | undefined from?: Address | undefined version: string }, ] +export type WalletSendCallsReturnType< + capabilities extends Capabilities = Capabilities, +> = { + capabilities?: capabilities | undefined + id: string +} + export type WatchAssetParams = { /** Token type. */ type: 'ERC20' @@ -633,16 +643,22 @@ export type PublicRpcSchema = [ { Method: 'eth_call' Parameters: - | [transaction: ExactPartial] - | [ + | readonly [transaction: ExactPartial] + | readonly [ transaction: ExactPartial, block: BlockNumber | BlockTag | BlockIdentifier, ] - | [ + | readonly [ transaction: ExactPartial, block: BlockNumber | BlockTag | BlockIdentifier, stateOverrideSet: RpcStateOverride, ] + | readonly [ + transaction: ExactPartial, + block: BlockNumber | BlockTag | BlockIdentifier, + stateOverrideSet: RpcStateOverride, + blockOverrides: BlockOverrides.Rpc, + ] ReturnType: Hex }, /** @@ -1754,6 +1770,76 @@ export type WalletRpcSchema = [ Parameters: [chain: AddEthereumChainParameter] ReturnType: null }, + /** + * + */ + { + Method: 'wallet_addSubAccount' + Parameters: [ + { + account: OneOf< + | { + keys: readonly { + publicKey: Hex + type: 'address' | 'p256' | 'webcrypto-p256' | 'webauthn-p256' + }[] + type: 'create' + } + | { + address: Address + chainId?: number | undefined + type: 'deployed' + } + | { + address: Address + chainId?: number | undefined + factory: Address + factoryData: Hex + type: 'undeployed' + } + > + version: string + }, + ] + ReturnType: { + address: Address + factory?: Address | undefined + factoryData?: Hex | undefined + } + }, + /** + * @description Requests to connect account(s). + * @link https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md + * @example + * provider.request({ method: 'wallet_connect' }) + * // => { ... } + */ + { + Method: 'wallet_connect' + Parameters: [ + { + capabilities?: Capabilities | undefined + version: string + }, + ] + ReturnType: { + accounts: readonly { + address: Address + capabilities?: Capabilities | undefined + }[] + } + }, + /** + * @description Disconnects connected account(s). + * @link https://github.com/ethereum/ERCs/blob/abd1c9f4eda2d6ad06ade0e3af314637a27d1ee7/ERCS/erc-7846.md + * @example + * provider.request({ method: 'wallet_disconnect' }) + */ + { + Method: 'wallet_disconnect' + Parameters?: undefined + ReturnType: void + }, /** * @description Returns the status of a call batch that was sent via `wallet_sendCalls`. * @link https://eips.ethereum.org/EIPS/eip-5792 @@ -1775,8 +1861,12 @@ export type WalletRpcSchema = [ */ { Method: 'wallet_getCapabilities' - Parameters?: [Address] - ReturnType: Prettify + Parameters?: + | readonly [] + | readonly [Address | undefined] + | readonly [Address | undefined, readonly Hex[] | undefined] + | undefined + ReturnType: Prettify }, /** * @description Gets the wallets current permissions. @@ -1836,7 +1926,7 @@ export type WalletRpcSchema = [ { Method: 'wallet_sendCalls' Parameters?: WalletSendCallsParameters - ReturnType: string + ReturnType: WalletSendCallsReturnType }, /** * @description Creates, signs, and sends a new transaction to the network diff --git a/src/types/misc.ts b/src/types/misc.ts index fd26e17912..625ba085cc 100644 --- a/src/types/misc.ts +++ b/src/types/misc.ts @@ -10,26 +10,26 @@ export type SignableMessage = /** Raw data representation of the message. */ raw: Hex | ByteArray } -export type SignatureLegacy = { +export type SignatureLegacy = { r: Hex s: Hex - v: bigint + v: bigintType } -export type Signature = OneOf< +export type Signature = OneOf< | SignatureLegacy | { r: Hex s: Hex /** @deprecated use `yParity`. */ - v: bigint - yParity?: number | undefined + v: bigintType + yParity?: numberType | undefined } | { r: Hex s: Hex /** @deprecated use `yParity`. */ - v?: bigint | undefined - yParity: number + v?: bigintType | undefined + yParity: numberType } > export type CompactSignature = { diff --git a/src/types/register.ts b/src/types/register.ts new file mode 100644 index 0000000000..1fc1c607ee --- /dev/null +++ b/src/types/register.ts @@ -0,0 +1,15 @@ +import type { DefaultCapabilitiesSchema } from './capabilities.js' + +// biome-ignore lint/suspicious/noEmptyInterface: +export interface Register {} + +export type ResolvedRegister = { + CapabilitiesSchema: Register extends { CapabilitiesSchema: infer schema } + ? schema + : DefaultRegister['CapabilitiesSchema'] +} + +/** @internal */ +type DefaultRegister = { + CapabilitiesSchema: DefaultCapabilitiesSchema +} diff --git a/src/utils/abi/parseEventLogs.test.ts b/src/utils/abi/parseEventLogs.test.ts index 08843d944d..9ab60de445 100644 --- a/src/utils/abi/parseEventLogs.test.ts +++ b/src/utils/abi/parseEventLogs.test.ts @@ -122,27 +122,27 @@ test('default', async () => { abi, logs, }) - expect(parsedLogs.length).toBe(1348) + expect(parsedLogs.length).toBe(1626) expect(parsedLogs[0]).toMatchInlineSnapshot(` { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "args": { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, }, - "blockHash": "0x69ae1f61ac90b81e2f7a012e7792a4443397c6f692598d500ed7c5f08416c691", - "blockNumber": 22180092n, - "data": "0x00000000000000000000000000000000000000000000000004f90dbcf7000000", + "blockHash": "0xcefce01338b9da7553647cf3912ae562abaa0139fc7360f1ca279a609473ef3f", + "blockNumber": 22263618n, + "data": "0x0000000000000000000000000000000000000000000000000000001c0a6ed6ca", "eventName": "Transfer", "logIndex": 0, "removed": false, "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001b4b33b4c7307a2971e934302523ed084ded6a3f", + "0x0000000000000000000000009a772018fbd77fcd2d25657e5c547baff3fd7d16", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", ], - "transactionHash": "0xca4e1c9355b454c147d213828387f768c204e238fed198ec4f946a36225751ea", + "transactionHash": "0x5a85da72e82150fc8272f4baa637f0bb9e5b7159912650f2c11f45e7a2b6d1a5", "transactionIndex": 0, } `) @@ -864,27 +864,27 @@ test('args: eventName', async () => { eventName: 'Transfer', logs, }) - expect(transferLogs.length).toBe(1245) + expect(transferLogs.length).toBe(1465) expect(transferLogs[0]).toMatchInlineSnapshot(` { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "args": { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, }, - "blockHash": "0x69ae1f61ac90b81e2f7a012e7792a4443397c6f692598d500ed7c5f08416c691", - "blockNumber": 22180092n, - "data": "0x00000000000000000000000000000000000000000000000004f90dbcf7000000", + "blockHash": "0xcefce01338b9da7553647cf3912ae562abaa0139fc7360f1ca279a609473ef3f", + "blockNumber": 22263618n, + "data": "0x0000000000000000000000000000000000000000000000000000001c0a6ed6ca", "eventName": "Transfer", "logIndex": 0, "removed": false, "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001b4b33b4c7307a2971e934302523ed084ded6a3f", + "0x0000000000000000000000009a772018fbd77fcd2d25657e5c547baff3fd7d16", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", ], - "transactionHash": "0xca4e1c9355b454c147d213828387f768c204e238fed198ec4f946a36225751ea", + "transactionHash": "0x5a85da72e82150fc8272f4baa637f0bb9e5b7159912650f2c11f45e7a2b6d1a5", "transactionIndex": 0, } `) @@ -894,28 +894,28 @@ test('args: eventName', async () => { eventName: 'Approval', logs, }) - expect(approvalLogs.length).toBe(103) + expect(approvalLogs.length).toBe(161) expect(approvalLogs[0]).toMatchInlineSnapshot(` { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "address": "0x62b9c7356a2dc64a1969e19c23e4f579f9810aa7", "args": { - "owner": "0xC47591F5c023e44931c78D5A993834875b79FB11", - "spender": "0x75f21e4D88923e9ac9BB600D8AD3BE2d89Dd025d", - "value": 5000000n, + "owner": "0xf081470f5C6FBCCF48cC4e5B82Dd926409DcdD67", + "spender": "0x971add32Ea87f10bD192671630be3BE8A11b8623", + "value": 115792089237316195423570985008687907853269984665640553065265497905716727142853n, }, - "blockHash": "0x69ae1f61ac90b81e2f7a012e7792a4443397c6f692598d500ed7c5f08416c691", - "blockNumber": 22180092n, - "data": "0x00000000000000000000000000000000000000000000000000000000004c4b40", + "blockHash": "0xcefce01338b9da7553647cf3912ae562abaa0139fc7360f1ca279a609473ef3f", + "blockNumber": 22263618n, + "data": "0xfffffffffffffffffffffffffffffffffffffffffff6ec1fdaddeba7574c59c5", "eventName": "Approval", - "logIndex": 24, + "logIndex": 91, "removed": false, "topics": [ "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11", - "0x00000000000000000000000075f21e4d88923e9ac9bb600d8ad3be2d89dd025d", + "0x000000000000000000000000f081470f5c6fbccf48cc4e5b82dd926409dcdd67", + "0x000000000000000000000000971add32ea87f10bd192671630be3be8a11b8623", ], - "transactionHash": "0x9c59f8efde07e6eb01bdd5d73231ab0a5abc2cb0be57ecd3c385a98f3ea2fc7f", - "transactionIndex": 13, + "transactionHash": "0xd1426c3c24ca7eedd1cc53a09fed99c1e04796f15d8f6f8c09fd395d1af1b99c", + "transactionIndex": 38, } `) @@ -924,27 +924,27 @@ test('args: eventName', async () => { eventName: ['Approval', 'Transfer'], logs, }) - expect(contractLogs.length).toBe(1348) + expect(contractLogs.length).toBe(1626) expect(contractLogs[0]).toMatchInlineSnapshot(` { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "args": { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, }, - "blockHash": "0x69ae1f61ac90b81e2f7a012e7792a4443397c6f692598d500ed7c5f08416c691", - "blockNumber": 22180092n, - "data": "0x00000000000000000000000000000000000000000000000004f90dbcf7000000", + "blockHash": "0xcefce01338b9da7553647cf3912ae562abaa0139fc7360f1ca279a609473ef3f", + "blockNumber": 22263618n, + "data": "0x0000000000000000000000000000000000000000000000000000001c0a6ed6ca", "eventName": "Transfer", "logIndex": 0, "removed": false, "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001b4b33b4c7307a2971e934302523ed084ded6a3f", + "0x0000000000000000000000009a772018fbd77fcd2d25657e5c547baff3fd7d16", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", ], - "transactionHash": "0xca4e1c9355b454c147d213828387f768c204e238fed198ec4f946a36225751ea", + "transactionHash": "0x5a85da72e82150fc8272f4baa637f0bb9e5b7159912650f2c11f45e7a2b6d1a5", "transactionIndex": 0, } `) @@ -961,27 +961,27 @@ test('args: strict', async () => { logs, strict: false, }) - expect(parsedLogs.length).toBe(1510) + expect(parsedLogs.length).toBe(1650) expect(parsedLogs[0]).toMatchInlineSnapshot(` { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "args": { - "from": "0x1f2F10D1C40777AE1Da742455c65828FF36Df387", - "to": "0x1B4b33b4c7307a2971E934302523Ed084dEd6A3F", - "value": 358332750601650176n, + "from": "0x9a772018FbD77fcD2d25657e5C547BAfF3Fd7D16", + "to": "0x51C72848c68a965f66FA7a88855F9f7784502a7F", + "value": 120434120394n, }, - "blockHash": "0x69ae1f61ac90b81e2f7a012e7792a4443397c6f692598d500ed7c5f08416c691", - "blockNumber": 22180092n, - "data": "0x00000000000000000000000000000000000000000000000004f90dbcf7000000", + "blockHash": "0xcefce01338b9da7553647cf3912ae562abaa0139fc7360f1ca279a609473ef3f", + "blockNumber": 22263618n, + "data": "0x0000000000000000000000000000000000000000000000000000001c0a6ed6ca", "eventName": "Transfer", "logIndex": 0, "removed": false, "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001b4b33b4c7307a2971e934302523ed084ded6a3f", + "0x0000000000000000000000009a772018fbd77fcd2d25657e5c547baff3fd7d16", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", ], - "transactionHash": "0xca4e1c9355b454c147d213828387f768c204e238fed198ec4f946a36225751ea", + "transactionHash": "0x5a85da72e82150fc8272f4baa637f0bb9e5b7159912650f2c11f45e7a2b6d1a5", "transactionIndex": 0, } `) diff --git a/src/utils/buildRequest.test.ts b/src/utils/buildRequest.test.ts index 604b383971..ae9b71fe4d 100644 --- a/src/utils/buildRequest.test.ts +++ b/src/utils/buildRequest.test.ts @@ -8,7 +8,11 @@ import { TimeoutError, } from '../errors/request.js' import { + AtomicReadyWalletRejectedUpgradeError, + AtomicityNotSupportedError, + BundleTooLargeError, ChainDisconnectedError, + DuplicateIdError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, @@ -24,7 +28,10 @@ import { SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, + UnknownBundleIdError, UnknownRpcError, + UnsupportedChainIdError, + UnsupportedNonOptionalCapabilityError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js' @@ -756,6 +763,190 @@ describe('behavior', () => { `) }) + test('UnsupportedNonOptionalCapabilityError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { + code: UnsupportedNonOptionalCapabilityError.code, + message: 'message', + }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UnsupportedNonOptionalCapabilityError: This Wallet does not support a capability that was not marked as optional. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('UnsupportedChainIdError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { code: UnsupportedChainIdError.code, message: 'message' }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UnsupportedChainIdError: This Wallet does not support the requested chain ID. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('DuplicateIdError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { code: DuplicateIdError.code, message: 'message' }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [DuplicateIdError: There is already a bundle submitted with this ID. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('UnknownBundleIdError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { code: UnknownBundleIdError.code, message: 'message' }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [UnknownBundleIdError: This bundle id is unknown / has not been submitted + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('BundleTooLargeError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { code: BundleTooLargeError.code, message: 'message' }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [BundleTooLargeError: The call bundle is too large for the Wallet to process. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('AtomicReadyWalletRejectedUpgradeError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { + code: AtomicReadyWalletRejectedUpgradeError.code, + message: 'message', + }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [AtomicReadyWalletRejectedUpgradeError: The Wallet can support atomicity after an upgrade, but the user rejected the upgrade. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + + test('AtomicityNotSupportedError', async () => { + const server = await createHttpServer((_req, res) => { + res.writeHead(200, { + 'Content-Type': 'application/json', + }) + res.end( + JSON.stringify({ + error: { + code: AtomicityNotSupportedError.code, + message: 'message', + }, + }), + ) + }) + + await expect(() => + buildRequest(request(server.url))({ method: 'eth_blockNumber' }), + ).rejects.toThrowErrorMatchingInlineSnapshot(` + [AtomicityNotSupportedError: The wallet does not support atomic execution but the request requires it. + + URL: http://localhost + Request body: {"method":"eth_blockNumber"} + + Details: message + Version: viem@x.y.z] + `) + }) + test('InvalidParamsRpcError', async () => { const server = await createHttpServer((_req, res) => { res.writeHead(200, { @@ -859,22 +1050,22 @@ describe('behavior', () => { .map((arg) => JSON.stringify(arg)), ).toMatchInlineSnapshot(` [ - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":74,"method":"eth_blockNumber","params":[1]}", - "{"jsonrpc":"2.0","id":75,"method":"eth_chainId"}", - "{"jsonrpc":"2.0","id":76,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":88,"method":"eth_blockNumber","params":[1]}", + "{"jsonrpc":"2.0","id":89,"method":"eth_chainId"}", + "{"jsonrpc":"2.0","id":90,"method":"eth_blockNumber"}", ] `) expect(results).toMatchInlineSnapshot(` [ - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":74,"method":"eth_blockNumber","params":[1]}", - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":75,"method":"eth_chainId"}", - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":76,"method":"eth_blockNumber"}", - "{"jsonrpc":"2.0","id":73,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":88,"method":"eth_blockNumber","params":[1]}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":89,"method":"eth_chainId"}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":90,"method":"eth_blockNumber"}", + "{"jsonrpc":"2.0","id":87,"method":"eth_blockNumber"}", ] `) }) diff --git a/src/utils/buildRequest.ts b/src/utils/buildRequest.ts index 2b2763c53d..b218008913 100644 --- a/src/utils/buildRequest.ts +++ b/src/utils/buildRequest.ts @@ -7,8 +7,16 @@ import { type WebSocketRequestErrorType, } from '../errors/request.js' import { + AtomicReadyWalletRejectedUpgradeError, + type AtomicReadyWalletRejectedUpgradeErrorType, + AtomicityNotSupportedError, + type AtomicityNotSupportedErrorType, + BundleTooLargeError, + type BundleTooLargeErrorType, ChainDisconnectedError, type ChainDisconnectedErrorType, + DuplicateIdError, + type DuplicateIdErrorType, InternalRpcError, type InternalRpcErrorType, InvalidInputRpcError, @@ -43,8 +51,14 @@ import { type TransactionRejectedRpcErrorType, UnauthorizedProviderError, type UnauthorizedProviderErrorType, + UnknownBundleIdError, + type UnknownBundleIdErrorType, UnknownRpcError, type UnknownRpcErrorType, + UnsupportedChainIdError, + type UnsupportedChainIdErrorType, + UnsupportedNonOptionalCapabilityError, + type UnsupportedNonOptionalCapabilityErrorType, UnsupportedProviderMethodError, type UnsupportedProviderMethodErrorType, UserRejectedRequestError, @@ -63,8 +77,12 @@ import type { GetSocketRpcClientErrorType } from './rpc/socket.js' import { stringify } from './stringify.js' export type RequestErrorType = + | AtomicityNotSupportedErrorType + | AtomicReadyWalletRejectedUpgradeErrorType + | BundleTooLargeErrorType | ChainDisconnectedErrorType | CreateBatchSchedulerErrorType + | DuplicateIdErrorType | HttpRequestErrorType | InternalRpcErrorType | InvalidInputRpcErrorType @@ -85,7 +103,10 @@ export type RequestErrorType = | TimeoutErrorType | TransactionRejectedRpcErrorType | UnauthorizedProviderErrorType + | UnknownBundleIdErrorType | UnknownRpcErrorType + | UnsupportedChainIdErrorType + | UnsupportedNonOptionalCapabilityErrorType | UnsupportedProviderMethodErrorType | UserRejectedRequestErrorType | WebSocketRequestErrorType @@ -170,6 +191,7 @@ export function buildRequest Promise>( // -32006 case JsonRpcVersionUnsupportedError.code: throw new JsonRpcVersionUnsupportedError(err) + // 4001 case UserRejectedRequestError.code: throw new UserRejectedRequestError(err) @@ -188,10 +210,34 @@ export function buildRequest Promise>( // 4902 case SwitchChainError.code: throw new SwitchChainError(err) + + // 5700 + case UnsupportedNonOptionalCapabilityError.code: + throw new UnsupportedNonOptionalCapabilityError(err) + // 5710 + case UnsupportedChainIdError.code: + throw new UnsupportedChainIdError(err) + // 5720 + case DuplicateIdError.code: + throw new DuplicateIdError(err) + // 5730 + case UnknownBundleIdError.code: + throw new UnknownBundleIdError(err) + // 5740 + case BundleTooLargeError.code: + throw new BundleTooLargeError(err) + // 5750 + case AtomicReadyWalletRejectedUpgradeError.code: + throw new AtomicReadyWalletRejectedUpgradeError(err) + // 5760 + case AtomicityNotSupportedError.code: + throw new AtomicityNotSupportedError(err) + // CAIP-25: User Rejected Error // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25 case 5000: throw new UserRejectedRequestError(err) + default: if (err_ instanceof BaseError) throw err_ throw new UnknownRpcError(err as Error) diff --git a/src/utils/ccip.ts b/src/utils/ccip.ts index eeff5cb520..a8eba5b351 100644 --- a/src/utils/ccip.ts +++ b/src/utils/ccip.ts @@ -24,6 +24,10 @@ import { encodeAbiParameters } from './abi/encodeAbiParameters.js' import { isAddressEqual } from './address/isAddressEqual.js' import { concat } from './data/concat.js' import { isHex } from './data/isHex.js' +import { + localBatchGatewayRequest, + localBatchGatewayUrl, +} from './ens/localBatchGatewayRequest.js' import { stringify } from './stringify.js' export const offchainLookupSignature = '0x556f1830' @@ -84,7 +88,12 @@ export async function offchainLookup( if (!isAddressEqual(to, sender)) throw new OffchainLookupSenderMismatchError({ sender, to }) - const result = await ccipRequest_({ data: callData, sender, urls }) + const result = urls.includes(localBatchGatewayUrl) + ? await localBatchGatewayRequest({ + data: callData, + ccipRequest: ccipRequest_, + }) + : await ccipRequest_({ data: callData, sender, urls }) const { data: data_ } = await call(client, { blockNumber, diff --git a/src/utils/ens/localBatchGatewayRequest.test.ts b/src/utils/ens/localBatchGatewayRequest.test.ts new file mode 100755 index 0000000000..86384c2c8f --- /dev/null +++ b/src/utils/ens/localBatchGatewayRequest.test.ts @@ -0,0 +1,144 @@ +import { expect, test, vi } from 'vitest' +import { batchGatewayAbi } from '../../constants/abis.js' +import { solidityError } from '../../constants/solidity.js' +import { decodeFunctionResult } from '../abi/decodeFunctionResult.js' +import { encodeErrorResult } from '../abi/encodeErrorResult.js' +import { encodeFunctionData } from '../abi/encodeFunctionData.js' +import { encodeFunctionResult } from '../abi/encodeFunctionResult.js' +import { ccipRequest } from '../ccip.js' +import { localBatchGatewayRequest } from './localBatchGatewayRequest.js' + +test('default', async () => { + const sender = '0x0000000000000000000000000000000000000001' + const data = encodeFunctionData({ + abi: batchGatewayAbi, + functionName: 'query', + args: [ + [ + { + sender, + data: '0x', + urls: ['data:application/json,{"data":"0x"}'], + }, + { + sender, + data: '0x', + urls: ['data:application/json,{"data":"0x12345678"}'], + }, + { + sender, + data: '0x', + urls: [], // no urls + }, + { + sender, + data: '0x', + urls: ['_'], // invalid url + }, + { + sender, + data: '0x', + urls: ['data:text/plain,chonk'], // OffchainLookupResponseMalformedError + }, + ], + ], + }) + + const result = await localBatchGatewayRequest({ data, ccipRequest }) + + const [failures, responses] = decodeFunctionResult({ + abi: batchGatewayAbi, + functionName: 'query', + data: result, + }) + + expect(failures, 'failures').toEqual([false, false, true, true, true]) + expect(responses[0]).toStrictEqual('0x') + expect(responses[1]).toStrictEqual('0x12345678') + expect(responses[2]).toStrictEqual( + encodeErrorResult({ + abi: [solidityError], + errorName: 'Error', + args: ['An unknown error occurred.'], + }), + ) + expect(responses[3]).toStrictEqual( + encodeErrorResult({ + abi: [solidityError], + errorName: 'Error', + args: ['HTTP request failed.'], + }), + ) + expect(responses[4]).toStrictEqual( + encodeErrorResult({ + abi: [solidityError], + errorName: 'Error', + args: [ + 'Offchain gateway response is malformed. Response data must be a hex value.', + ], + }), + ) +}) + +test('behavior: empty', async () => { + await expect( + localBatchGatewayRequest({ + data: encodeFunctionData({ + abi: batchGatewayAbi, + functionName: 'query', + args: [[]], + }), + ccipRequest, + }), + ).resolves.toStrictEqual( + encodeFunctionResult({ + abi: batchGatewayAbi, + functionName: 'query', + result: [[], []], + }), + ) +}) + +test('behavior: http error', async () => { + vi.spyOn(global, 'fetch').mockResolvedValue({ + headers: new Headers(), + ok: false, + status: 400, + json: vi.fn().mockResolvedValue({ + data: '0x', + }), + text: vi.fn().mockResolvedValue('0x'), + } as any) + + const data = await localBatchGatewayRequest({ + data: encodeFunctionData({ + abi: batchGatewayAbi, + functionName: 'query', + args: [ + [ + { + sender: '0x0000000000000000000000000000000000000000', + data: '0x', + urls: ['data:application/json,{"data":"0x"}'], + }, + ], + ], + }), + ccipRequest, + }) + + const [failures, responses] = decodeFunctionResult({ + abi: batchGatewayAbi, + functionName: 'query', + data, + }) + + expect(failures).toEqual([true]) + expect(responses[0]).toStrictEqual( + encodeErrorResult({ + abi: batchGatewayAbi, + errorName: 'HttpError', + args: [400, 'HTTP request failed.'], + }), + ) +}) diff --git a/src/utils/ens/localBatchGatewayRequest.ts b/src/utils/ens/localBatchGatewayRequest.ts new file mode 100755 index 0000000000..00aad48fdd --- /dev/null +++ b/src/utils/ens/localBatchGatewayRequest.ts @@ -0,0 +1,60 @@ +import { batchGatewayAbi } from '../../constants/abis.js' +import { solidityError } from '../../constants/solidity.js' +import type { Hex } from '../../types/misc.js' +import { decodeFunctionData } from '../abi/decodeFunctionData.js' +import { encodeErrorResult } from '../abi/encodeErrorResult.js' +import { encodeFunctionResult } from '../abi/encodeFunctionResult.js' +import type { + CcipRequestErrorType, + CcipRequestParameters, + CcipRequestReturnType, +} from '../ccip.js' + +export const localBatchGatewayUrl = 'x-batch-gateway:true' + +export async function localBatchGatewayRequest(parameters: { + data: Hex + ccipRequest: ( + parameters: CcipRequestParameters, + ) => Promise +}): Promise { + const { data, ccipRequest } = parameters + + const { + args: [queries], + } = decodeFunctionData({ abi: batchGatewayAbi, data }) + + const failures: boolean[] = [] + const responses: Hex[] = [] + await Promise.all( + queries.map(async (query, i) => { + try { + responses[i] = await ccipRequest(query) + failures[i] = false + } catch (err) { + failures[i] = true + responses[i] = encodeError(err as CcipRequestErrorType) + } + }), + ) + + return encodeFunctionResult({ + abi: batchGatewayAbi, + functionName: 'query', + result: [failures, responses], + }) +} + +function encodeError(error: CcipRequestErrorType): Hex { + if (error.name === 'HttpRequestError' && error.status) + return encodeErrorResult({ + abi: batchGatewayAbi, + errorName: 'HttpError', + args: [error.status, error.shortMessage], + }) + return encodeErrorResult({ + abi: [solidityError], + errorName: 'Error', + args: ['shortMessage' in error ? error.shortMessage : error.message], + }) +} diff --git a/src/utils/rpc/http.test.ts b/src/utils/rpc/http.test.ts index b988f2c540..d83ad11c77 100644 --- a/src/utils/rpc/http.test.ts +++ b/src/utils/rpc/http.test.ts @@ -7,7 +7,7 @@ import { createHttpServer } from '~test/src/utils.js' import { anvilMainnet } from '../../../test/src/anvil.js' import { getBlockNumber, mine } from '../../actions/index.js' -import { keccak256 } from '~viem/index.js' +import { keccak256 } from '~zkr-viem/index.js' import { numberToHex, toHex } from '../encoding/toHex.js' import * as withTimeout from '../promise/withTimeout.js' import { wait } from '../wait.js' @@ -26,7 +26,7 @@ describe('request', () => { { "id": 1, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) }) @@ -41,7 +41,7 @@ describe('request', () => { { "id": 3, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) }) @@ -294,7 +294,7 @@ describe('request', () => { Status: 500 URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: "ngmi" Version: viem@x.y.z] @@ -322,7 +322,7 @@ describe('request', () => { Status: 500 URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: Internal Server Error Version: viem@x.y.z] @@ -395,7 +395,7 @@ describe('request', () => { [HttpRequestError: HTTP request failed. URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: foo Version: viem@x.y.z] @@ -421,12 +421,12 @@ describe('http (batch)', () => { { "id": 93, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", }, { "id": 94, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", }, ] `) @@ -447,7 +447,7 @@ describe('http (batch)', () => { { "id": 96, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", }, { "error": { @@ -473,7 +473,7 @@ describe('http (batch)', () => { { "id": 99, "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", }, { "error": { @@ -512,7 +512,7 @@ describe('http (batch)', () => { Status: 500 URL: http://localhost - Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x1527101",false]}] + Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x153b747",false]}] Details: "ngmi" Version: viem@x.y.z] @@ -543,7 +543,7 @@ describe('http (batch)', () => { Status: 500 URL: http://localhost - Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x1527101",false]}] + Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x153b747",false]}] Details: Internal Server Error Version: viem@x.y.z] @@ -573,7 +573,7 @@ describe('http (batch)', () => { [HttpRequestError: HTTP request failed. URL: http://localhost - Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x1527101",false]}] + Request body: [{"method":"web3_clientVersion"},{"method":"eth_getBlockByNumber","params":["0x153b747",false]}] Details: foo Version: viem@x.y.z] @@ -604,7 +604,7 @@ test('https://github.com/wevm/viem/issues/2775', async () => { Status: 404 URL: http://localhost - Request body: {"method":"eth_getBlockByNumber","params":["0x1527101",false]} + Request body: {"method":"eth_getBlockByNumber","params":["0x153b747",false]} Details: "default backend - 404" Version: viem@x.y.z] diff --git a/src/utils/rpc/ipc.test.ts b/src/utils/rpc/ipc.test.ts index 77834cef23..30d31a0f27 100644 --- a/src/utils/rpc/ipc.test.ts +++ b/src/utils/rpc/ipc.test.ts @@ -64,7 +64,7 @@ describe('request', () => { expect(version).toMatchInlineSnapshot(` { "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) expect(rpcClient.requests.size).toBe(0) @@ -315,7 +315,7 @@ describe('requestAsync', () => { expect(version).toMatchInlineSnapshot(` { "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) expect(client.requests.size).toBe(0) diff --git a/src/utils/rpc/webSocket.test.ts b/src/utils/rpc/webSocket.test.ts index 34770d3a22..bde5034341 100644 --- a/src/utils/rpc/webSocket.test.ts +++ b/src/utils/rpc/webSocket.test.ts @@ -72,7 +72,7 @@ describe('request', () => { expect(version).toMatchInlineSnapshot(` { "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) expect(socketClient.requests.size).toBe(0) @@ -94,216 +94,247 @@ describe('request', () => { { "jsonrpc": "2.0", "result": { - "baseFeePerGas": "0x227fec6b", - "blobGasUsed": "0x0", + "baseFeePerGas": "0x25e3b018", + "blobGasUsed": "0xc0000", "difficulty": "0x0", - "excessBlobGas": "0x20000", - "extraData": "0xd983010e0d846765746889676f312e32322e3131856c696e7578", + "excessBlobGas": "0x180000", + "extraData": "0x6265617665726275696c642e6f7267", "gasLimit": "0x224c7ad", - "gasUsed": "0x3d9ddc", - "hash": "0xe84f123bd1dbb0bc21807a48079e21d5a3ee68b9629ab72d889436e8de57e919", - "logsBloom": "0x906108000108400000818203842012000420102940210030628000400812208410710804220810002000050240124991460900518c0b825600a3228004284d484d01204409048110c88040181060a4e404000010c140480410100408800002146820180002c3402104088390104028821080440a04100c009a10003400051261b0100444000020004314006810306010020b04814526000c90408840281004921a214200301029c0400288e00001280c341080820840088024280402004060410202101a6300010040000818110c024480146009020000346808001a080860020510301000800024008000510480000190002100010c04c00040018408000c41", - "miner": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "mixHash": "0xab048d1aba06968cf2a054968593c88d54edf4a8c303a7bf045d9a55d655ab07", + "gasUsed": "0xd83b57", + "hash": "0xd028bdc00aff985bdf872d6b961110d41a6fe4df5e93aeb6dffe2f38ae0a4f7d", + "logsBloom": "0xa336825265c0691c36791a28c7814901910c6b230e016020408d80135c1980b01016af2c481b78027612ff562ed6c7821228e23a0ccfea2b689d740905656000544085800d0928884ad6e10a344820e9f508517102f601cc0c081464d844b6993b4dd2a082e3462944ca5a4ab4227e8ce368046230b8974506a20496000f111406a9b5004e25a580a0e9204843b3100e18454253b384b508362280d101b634a12f62148431086a90625f16a482818f0841bac44db90101000f39c532160c7460d012000688201ea0013a33920e7b384728250356c52700955c3e2bc20891e2c62572a843e142470000051461200009428f79b8428b08a4c04b899412204954a5", + "miner": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", + "mixHash": "0x33fd71ca8e38da7aa264c9b9252b7d2864484826eeeae67c2aaf3ab0a756f133", "nonce": "0x0000000000000000", - "number": "0x1527101", - "parentBeaconBlockRoot": "0xa3c571522029f61c8a3ab34a6683b461ebcebbae0786a597babb69cc479c7c88", - "parentHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "receiptsRoot": "0x02e8fada9484c1c30d5eba8ee6516b49e703db0ed25f4dc494b67d7580f64739", + "number": "0x153b747", + "parentBeaconBlockRoot": "0xa7b4e889e408381f1860000a708b6e5fd42ccd9de7fb1cb442a8e91ecb9e6f6c", + "parentHash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "receiptsRoot": "0x230fa17d30bd0ca83606cd4704400735bf05cd09110bc96eeee7dbfbc0f870c9", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": "0x4b5e", - "stateRoot": "0xb72df164d58ca907fbd8593cd0c1a2b2f985745bf76f905a6a09abbaee4669b4", - "timestamp": "0x67ecf833", + "size": "0x1595e", + "stateRoot": "0xadea44d9167ee7c415601810dbb3f090de70edfdea34632b7e077cefad038af3", + "timestamp": "0x67fc55db", "transactions": [ - "0x854722bdc63c7b3a389391c88cf8ba8215a78348e57fc1cc12fd0ab5281ddbee", - "0x02cae7161a4e06197ae0178b4875299932bbb88bb7722b8d45dd4be10ed78c98", - "0xb7d723dfdbd3c3bab81060b438bd87bcf07914753d39e2a0faddb87066e7944f", - "0x4787c0f5ee67cb10805c4e9cc81ea5f7037a7eda4e93ef145ae4c2fecf03f660", - "0x59ff041e644a7294cf79da092f65af4329ea6cabe88bd1df53d0ab4518cc518f", - "0x5520923d4abe5a7a1eb9d481eba9a69740fabdf95b3aae9594a8c1005f5424b6", - "0x4f547ae4274b602dff5cde7a7fa962bd451e639ba2b856c903009f831715aa56", - "0x83bce88701a89e0df991dacc817ecb31671a8aa06e0725aceaf2e03f93258237", - "0xb56128d1a930d85d529f05a8a01ab8ac31341be758c4f733ba13b32ebc2a4cea", - "0x01886366db19111106a42f7a3fce8d3a31266e72478403c901c9b59bf2bd01dc", - "0xa2f08cebd167a4cae54c5e2d6907b5e2d49739ca3881214c49e58a37bf6e9455", - "0xf4174f3311480a400f9a7d8960c7440c186e1beedf2dc946f81a87b0d48d235a", - "0xcf8b1cd812489193f99cee59d558364ce36593bc89bbc174851d173897241180", - "0xfb0267c2413094f54a4cc4e913e6fc384ef2ea31bd15b5371d1be17206f41602", - "0x5ee9e22b89405c490d938e8904d8f50e5788cb400f6f8f89523227eddf8b0629", - "0xbd808d6736b93870c1a81cb944b444ec02611d85136647c090502ce86bf9c923", - "0x18c1c967ff87ae710de86210a32e13999509aeaa1472296c17faefe145c53f91", - "0xfc759550f99be38b1a938f3bd26267353828476e7f5a8dabebb676f710f380de", - "0x4019b7b381fa1daadad90b4b6d2e02de07eb1e8d6f0b36bb14b62f2e85fe9efa", - "0xd2bac5f3c8d0b8ea1efc84fea5b7c92ac1369f9b7be90527ffbbb35d35aca077", - "0xfd69918724b556e832e85e22a359891e08fcab37f4e6c70a8ff1699176e15453", - "0x50a7e4b5697b0df1bb4a6bbf97321bb94a996fea894aa071fc210a7423cf4838", - "0x1af867463b10a71305740219c1fab218571d88f5b75472ad8c25885cbfc01b91", - "0x5c67e0c7ab694c4714576ff54d2bd2dc6b19dcd55df337ceb72bfcc89034becf", - "0x2b917db8c9adbdd78fd0bab4edf8f599c2ac99c8b6171b1dc3fc42bc3607d164", - "0xa15e4bca5ac39a8d3023dad307b3743f801baefba07f203f98429c71cf2d2582", - "0x8cb6e16ecc5d6b659170423b6e5bb39ccd6933ca214c843ba079ad6306111000", - "0x269f116d71f5886f59dbfb63ea5a1d4621afc6e6f163f984fd4d1a6c33ebdddc", - "0x2129b8e7f727a14b793959c5a812ad3ad65c6dfd2b4d41944baa40c56bec0312", - "0xa026091fa779b2fa5a05afdc01b9af8c618e936ee237274f500ca4b07761b6a3", - "0x1af67c12db72606b9687d413fd3b9a7960e78d38df615e9e8094192055f9f8ba", - "0xf00dd3ad522918ff5af7fd8eb85946736d119e5ae560bc5339d3197d03a27c25", - "0xa196faa90844cc30ed6e48f31e5f5e44415c0a9ce605b5537c80fbc8c597c2eb", - "0x9b01070b12d11f4e980a37ae00716f58c0ef45482984e21219011e8c96c3359a", - "0xb20c352eb48b4b0166a64d947b9bf43a0a6da5c3f6f61742725e3ac692d351b5", - "0xaacc6e6b9ca5935a28cdc115ec187a093031c8f071785b1077525ad62caff8ef", - "0xee8bfcf3180572c02cbd7d7a0a60d616d58a5a689057a23e38e78aea2980a481", - "0xba86efff334626a0abef6b52be7648ab073049636d6bca087b473d2e24353103", - "0x8a3eba30e9d148a217434f2951882d8a620a0a37fddbfef7063c4c0914d33712", - "0xec9ebbe6e1855f3b9f6e20be38bde066e353bd35604e43a96a24e65e6760781c", - "0x86df945e7311b1b341f2ebfd3ad7979d5dec093a3de6e89a7233374129b6df1a", - "0x63870fcb38ea65b28ec381a48c49ae92477662bea9ae78c8a88fff309adb596a", - "0x6711b81447f1f43eab0609e4f3281b421c8252cd3e95252f2843f2666f916e67", - "0x053cdb9cd0619da6f570e5ad1330f498199d89a4bea9e60ea32b8004f8796581", - "0x481645366e47224457043d354bd9fac3a0d342d85fa3489b8ba2c4c95ad06e79", - "0x3aa5be2e84dd1eb17f1eacf4c8922d622c38c6893afb371e953818bb18085073", - "0x4d70545132c47146f6ba915aac0e550f1458148c4242f6c73b11d3bdfb43242f", - "0x18d74382159845c6e1b3fe17512ba167aa2314495b0af6f6648caf0bc9cf02d9", - "0x965a698cd7a04d50b9421b1719305cb932e3fa60b7efa4e7947309809e4bf89f", - "0x98af2e3b23bbca8448a3a3a0275890c4841b74953c2c3ff7de3f60146014022b", - "0x14b6ce018d72dbc4bf9696fca2450a67a3ec30b83d7f3f29b5705a9b11cf0023", - "0x5b6aaf14c07490e42422da3090c1f96b75f621b883155815f39fcc62e52b33f4", - "0xc771676cdb93ec14b0d8cbf595dc71201d6dc8d0e7eac292516883515da9853e", - "0x77f8b676af27863e5c209de3b83c6b28548ef8f9e2ac8dbbb811c72426ce1314", - "0xe6c20952ac5828c60e0fdf6ac90a5265dd37d82d07efb994abad8a394d0c09af", - "0xa3120d24651113f14068b578b321a2932729607f910629dcaf98e5468ce269eb", - "0xecee7c812393be6a0c8674f1753e1036e8ae94aa65e1554826fbe70117fa3864", - "0x2b4e80afa71c648ea44b68571b1d49dbbd8ec43d6ed7c0c50497e4dada79b7cf", - "0xefc09f41c36293ff1054cbef26b2100343234b162def2d9958b6cf7f178be2e1", - "0x36fb9e07cebde3bfd5428c264cf7a48a53ff4335821e94a4453a74e21926fdab", - "0xc2d7ed094cac9adeafcee17d6108528d605afb3cab55f4e2be2698ab7a2be42c", - "0x94bd0c645445a3066db377e7805e9adbfcc7e1bbd03d431b93ed6afdb413f524", - "0x644d39762057df05ef6d81c6091e28696540336f30fbe38e8f77fb02adeb14dd", - "0xa0335e5efcb94ae2fd7065a7d0b4e6480d24a55eef2db3adbe7e56f4a10f885e", - "0x70cc6a56f1578efc21747421e3c65dfbdd64b9d045b035eb2270c099c90fc7ce", - "0xd6da75a688304dff7f987d3b6be703bcebe9926184e57c85e1e20cba53bdcc6c", - "0x60c676a4bb996f4d8767649a9cc2d5d53ab5d3f50fa80867e147911f20686c43", - "0x3905355abddf0be3f4c3213420a81a080f6a9eda1f0014ae5f5a0bdd1a90a696", - "0x94e65d80b8dd755f8ea3f6e7ba385a1b598f6edc52b7f08e3df445717d795cf7", - "0xe078055c7d78bb0473914d62ae8dbb557c3fec7b3a7c5d757169823c89729e2f", - "0xcbadc3ca4a1881c2640558e7d60a3e8c7c753281836eeecd856737087a295431", - "0xd002e072a411c84b48c37d21ff7df3c41b62172f0dc094d5497b565818459fdb", - "0x2a63ee7e01b3b54691e0bbc03b2fe641202d3d22dd0c48c2348d1e93ad7b0492", - "0xe10b19b8956908c1e554b53dbf1e52424de31ff75008fe4ac9f8b3a9db9504fe", - "0x7925eb0a9767c6e05e39118e799245f68026eb93a094fa9b24404fdd1bd9926c", - "0xbe5dc882a0ffeee04731180dec24ed1ac1d49393e742470f163c83a0e5147ccd", - "0x91b44316445eac651a9692dfe324e91b57b9ddb544c8961643fbaecaadd4ed0a", - "0x0ce80c94b4783a3e5f8ad97619fc6a74ece81f1728712502a1c5089076e370fe", - "0xdb359e8c4805e64256bf706b3921547d666f7a82efe2e6be099f22a966ea5a3f", - "0x76bf7b5b3fe06055a4a14368a7ca4a84f8ba80f5ac17f26ec747ed596a0a4e94", - "0xa7e4e10a4d52ee6e151ca74bc68ee7fb6868d22cf94a67cf75468d1a4d0382e5", - "0x6fee722066f0556812667007cd3e38176ca66821932e437d9bdf2d98434102fc", - "0x9085a6a8def5f6c3a25d6e036829807cd5b0695268a4c645f01165021bad1d24", - "0xf2849a8fb3ad7cd02171d076ccb1fc2fba8732e116734fc72158fa97d6cfb6df", - "0x03d78a43ef4db904736b09ec8167deacf78ca14b0bcfa22d280c8db53688563a", - "0x6c962a3376c5d50f9a6fbe71c555294bb639192aaedc6d8ff1f43c2e6c7f6255", - "0x432d13a977ea8df24859c70f1eeebd303d0ac099d7da6df4bd7db2e2802bdeb1", + "0xa830b5e09e6d2709eaddc555c12fe5177aa22a0862869aefab392d64bcb67926", + "0xec8dae0c3c87e84115d6d80a13f18fa09149b26b6185dec8b1feb9277f57de16", + "0x6bdee6726ede49f0caedbb039559a3ecbeb30beccdbad0d0ad34b7878fd76756", + "0xec27e6ef7e8e0c5e495d978e2409f18d09efbac99f6a1d9766e8951eb20c1bb6", + "0x388f16334f1217cf27bbefcc8798834af13166cd7857b5c56892b1ebeef6c708", + "0x10f56c635bde3733b330e41fe1dedd83c303dbef4b713a87ad1fb0feda79a5e1", + "0x0b20063113f3377255f2d1fe4e3277feadaa98d122ebdfa4f08b2e58113c3bf2", + "0xa418d5bd350d6a7947d5801cfcda9aa9068cf43611cc5ec26a3e0996b3e6b1e0", + "0xcdb2fcead0254ce044d050761b3308f9fafb1bc419a8ca9a6dc4b3e62c437169", + "0x1b1e60b3aa4031704fae193d7f97a5484a1673f5ba2da0ee31e3b0858d839684", + "0x59917ed06b3fa39d2d311086d6032e2abe1341a31db2422e9467afad00fabfe4", + "0x185f39d2b7b2cbe0c0950ddc45df5948e167bbbceab235ae2b18193ccdbf3cf7", + "0x9aa22d79c11e83cecc8043528527d9c88a62d6103ca8f250aa8cb86eca02eb11", + "0xf914ecdf0c1922a1bd4effe4d2f15adaebea229b7b52ad610984a979ea09e565", + "0x27feb453dd1e91b41d5860c32ac34470d101f6e5da57c57c4e0c074c5d00cd5d", + "0x069bf514fa826397e81c88d4587530538e10baeb5e0388048030287d85b2b5f9", + "0x6c89d2775e9919fe8afde564755021b2291a797490e7d64a42231cd0e9ebec85", + "0x01975a1e08fac4209e625990cd4a0fbf2fa05e3c08d9e98898a5f50207f36c04", + "0x5eb6d26ad0d67a9af50cccb5e4d2e7c11e8d9e86fe51c61483cb62b84dd8e2bb", + "0xb600b487433b17d85b33ae7567e4558698afd3f72a8fa968985ac847055e09bc", + "0x002dd9d9fc69777dfac9ae0cae8d9b47ece05930f3dc971c23a3e7674629ce72", + "0x384b2c0059e7ecae49b44dfa6f5ed44fd9fac1dc0fab8c01d341cc886bd45789", + "0x403412968589902149efd2df44385afa00c4299c52aa83d64008bbee0c953d47", + "0xb6ef0c02e08374d3cea3eda42b8e08ed218033a70406712c9db64620ebe6ff62", + "0xca031374a4aa643a169e7edbfa8505b310b52f1559c49f7bb1acbcbd9281f8fe", + "0xeac0cf72d02033c8d24dd22ca23882773402f8791f57d9e3f161b1086cea39bf", + "0x7ac526702bccafe985f08a35ab96250066f230bfa4c589696d52f388dc28cd9b", + "0x7663feb1a75df42652c26c6c114d711956b03de8aada2493e8e858bc19163f18", + "0x7dd2137fdb2f69d3714bbd8cdc1be5ad0a4503ddfe19ffb8e752ee3537a6baab", + "0x88608458416217eb145836116357017d8ee7f0bff8f18e2a708b578645b115f7", + "0x03037c03f30232ed8b486ee3e43212f40d7e48317c733fad92034850420a29c6", + "0x96c58606a41010569c74160b3ff879948d4e254f305df63491dfb77637bb6fcb", + "0xc6391d3137b9937cc53e7044c7fde0e9e3d37ff3e2ce3e2c2daa40a1e855e8d6", + "0x126acf8dea4af4f8477d83fd40096277b8f46be7ce6f48c3f5ce12c73dbea9e2", + "0x5a3bb37a3859bfc316580c2c3016e0a602cc578e518fff5a1ca560cc3d457ff5", + "0x30c1bdd22384b8a1187dc5c30fe0aed454e1bbe724fad44e619fcf26287455a5", + "0xd664ff7bd195031873ab12bfddc3399bcab5a5e5e6b66e0ec9e7aca5eea533b9", + "0x52353a3786a5bc637d2a767d440a13ac426ae372301882a69cf99be5c08b9b34", + "0x8640c1cb3208b965e5405b952d4400f76ba5942640b6ff75559411d567c6624b", + "0xfc401c21638aeb2b853bb0e29bae2468fe6d757e76f455a0e00061301d243692", + "0xced23b981bc2fd12d5b45b8ae3f5b0effbb21cadc2d6431f677621ec8023ffc2", + "0x2b63a9e4d7d27a19ad8c84e2035b0bc5e1e2f61ceb53ad9fa7569f639bff78ec", + "0x9991c76fa2ba076162f0b8d21b9b2a6b2b9fe9dd5403dd6a4a05a72c85569a03", + "0x9a3a09b54dcae0cfe70d12a5d675f7e400d3f6d5c3b43ec018c7c1f587584ff4", + "0x848d7a6be7e269ee54437dc0272501e3aba635ad277903abafd75a21652ebde3", + "0xf4afe5774ac8d7196ad36103769ef606faa8a1c70284b609d5993db3c99773ee", + "0xdb2cc3a2dd936e22f3cccdacd3a95d6541070e2a0a9440b68d5b17036c791e25", + "0xdfc82c9edf56322fc2b2b42c49b4053fada87559d4269dc7f62df2043dff0391", + "0x6d4131a2c049efb6cbe31fcdc03aba6952875efbc8df336b915aea67a6d17cfa", + "0xc469810e7856cf8d1f748f2e5f8f80084253272019056b69474d0f10ff181ece", + "0x313e76bb4c1d58dd51df593e00369185d3612a660f67d5a3751bc341585b1eb4", + "0x6baf070c42ec0033ff0b0dec233c4ce7ab4f8b94369f67d02a6eb1a48ca6dff9", + "0x7544a200cb8855073410e2ef14666a2846f9e3c962fd68ab060bc63b2bf376f8", + "0xb6ca49f11c2be3541178e6896b98bf47b7c392e20c8c4c9e8dfc439ba7d34d37", + "0x5252bea73f0cb25d0096362e39faf73dd86eb1d1de8449bacf4aa7da96eaec4e", + "0x666875fa51d4cabf200b63db9b7c3110c593c60658f9ee174181ed7790a6f6de", + "0x68dd0295bf7d2f0d636ebc5d551db39132b3c8dc2374c1382a3a91d753cc93f7", + "0x4dbf6d86b0c8f87589b44fa8b8986684febb58815be0fb51bb5ab4904c3dd816", + "0xf5dac89d6f756e8e0728993f91420f883658306974b85df38d86dab3b1b66522", + "0x1929a2dd505f80e1d883eeaaccd09c3392e5d9ff0d42ebdf869bb413e72ae406", + "0x43c076bffb1b83e9208776bdc63b8e52ca2957c0f53966f0d388d97fe90ab84f", + "0x67abe41b249287654a1e34d15f386a11fb384dcb406ad179b7b6b6e2c66fbc58", + "0x8a8a45cea8595016bcad108c281ee8612cb0f6d4397d368315488feaa5f798d3", + "0x11592924727a9175d05e57635dc4b7eef9bebf67da90d590adeb3f2f27d3f4f4", + "0x8d816313b6dd7524ec3a22f82edee1aeb147a8468824c29bf48b53d2dc78a160", + "0x180de77173fd1e0a108a191f79edd955e35728d4dc17f00f3eb4f2a5aeb40d53", + "0x118f5228f1faf3c2301201d0451e578bae7bd7fae9c2aa860a85877fc94065d6", + "0xd23194a13c3302913bc044b8912f6361dfa997e667a8e00913e1349df04586a4", + "0x16395ca6eb8963ee04e3181c7233fa417678bc9446bd2602bf5f9b8eeb5b17c4", + "0x9d50f7dd271dff2451b4021ff75d0e581eae95d67260bc2ddf0c3e06d08b58f6", + "0xe342270887c85b5a5be6068ca116ebdf4a53ee29f5cbd0b1b6dd9b66f99699ec", + "0x74960a4a67cbf20e4e660747e16d9c82eff0b614baf34fc98dd125323555e319", + "0x0ba0a9eb5c3ba2700d70d1cb00dd1ba892205f47883690f5343f0d6e8a012110", + "0xbdc97aa06937fbb6227deaaf4242c4c136b03f7bf1c466b672c96b1e1994203b", + "0xccef5dd7738d65689ccfab4ce87431132dcff26c30f1337017c6f2cd2573f121", + "0xd4b7fa9c33c877ad0e0ca65caf27998e7d32bc3ef9cd351c2c318b294468c8ab", + "0x676858b075e31a88caf5d84bfb5e8bc8f1fda60c8b47ad6d1510e16025dab1b5", + "0x467afd1e746c073475d396198420fb504c330bc9759a9d49fb375c3831ccd863", + "0xc41560172f2c1e5880de04c06bc28872cf1aaf2bf5e86a42979b4ecfcd44d311", + "0xfc505c0a8009f008433aaf366e7a8a585f66336e77ab3066630552bb8c67a800", + "0x7454273c2845eea8611fecce8016bcbf7571959a1600c7ac97387ed3510e3582", + "0xdc856c8d91705f4b3d03964c8ad4befc3799a8849f2d527709432db45d3a388c", + "0x17d71b1691589e9597fc6d29d571be8d674f86538355806e697af188cb18eea9", + "0x5f0faee4777596897c3f8b7206ae31fe7ed5d3eb4718cdba07e1e743cda7cc1a", + "0x7c68af4b9e5c22ce5bcf74929a19180ad06125a80e9118128b653d0056260c58", + "0xe222040952e6f7fd617290b7b8904b00f81ef49e4fb37be040db1f66f1f4ddc8", + "0x1ad0b706c9a1d376cde377fb73395ecd5e0e55f428ad3299317806daef8de882", + "0x4f24aff0b5d7269902fef75cb69ba67aefd39f114f91b0d7a519e86e10d9c8b7", + "0x32e23029b54b3ffbc78c4e9f115a4cbefe65faf67ec295e2ad9a0603ed44d4de", + "0xfc424bbd777126fb913242238dafbacdd75344b6fd0f6d524d64f85b7420627d", + "0x2742143d7f34fa33714619ccf9c1f01f4f32a47ccbf69b6ecff00d398c483cf7", + "0x81d16e35c2f2372d18b2898778cd9f81eaa0a553b06bcc2620d69d2df39431ac", + "0x5ff48d7e61c45a9be174bf915f864318123dd16458550322b2fca85490a4c0f6", + "0xdfedd288385085f2f33a4235d9e65dffca463c555f3ef351f7ac6992360e6980", + "0xf8e19739eb8068854f9e6a2274a826228896d0e8c56b33ace69199a92385c6e4", + "0x72c03ec1db7496a464214c3c17c2303d55882ff873ddd42cd9aadd11d6cd4674", + "0xcd66de6e1ba35f34e0c1ae90d470abba0b39cb798909db5350aaa0414121cfa6", + "0x647544c734fff0189ab55e86e2a38c78d4764aea12ed0cd16c3dbee9aca5a4c9", + "0x2fd9010ba8d614a8492c02914bc5aa9504e588ce2b98b7c097eb78c02318f734", + "0xf9e4ae3673db5a8961fdbd3253643b2f09a475b76a2d3639671bb5b8d8df8599", + "0x269240fcb4257e6e0b2d970d8a08b06fd56226b0afbc3c41ae952cebd1d1e84d", + "0x2f9db6986f9d46736e6532030627e0be514e6e7c8d844e316ec589d3e0dbb573", + "0xeb32497fce6f101f55959ea2ac0b090a0b26032865c74e279754ba13384f2245", + "0x4257448420523d4320b38aee51ef17e72ad59b316c390267f524dcb51fa1f3e2", + "0x511ba0618f654bce433edc15ead66c282b9628049398b117c8dea68b5956484c", + "0xa5ab42e4353a63a1dbbb5fcd9827b0b5784468b4c71074ad5124eb84ea87b687", + "0x018b3ecb07b3487253f4c6f26c4a66518e5b4127433da45e10f88a458da19932", + "0x8d9c8a91a8ffb007f20622068d27b3d21e641cf4495bd7791f76eff22bbe3b5a", + "0xc65564c139b75062f4989cb2eed6c436e6036f281c8c5dfd811911b7575b03bb", + "0x1fa029e5ff784a280d1d3aa8a0738942ecea6f271d0b3cb852edd2233fbf807b", + "0x893eb054cc26a7f84904a4c038f8b5ab62b6fd97201526308699c6f750879cb8", + "0x52150a57b9f7e1b4cd27294a81a27966421a791b11238075818d70683fd716d1", + "0xb56f65e5aa53351984d177cb0e9099f386c10ad0989255b0dc2818982c08794e", + "0x2a2b18674d4e5955ead4f4c3ee115e26ccd4f5d16112fc8438ab4424f18ec9bc", + "0xb30bd6264b27feec0fb74dbf5c0dfbf0c2f6c4e7a69c0c265f3fad84f94f622d", + "0x30f32b6cefaba17d25b5a8c58cd42c60e19a7f0dd1f16251bfcede5bda55b7bc", + "0x48c3c9f6a2344284079d4ee6ffc186c5eb36a5a5a88c3c2e256690d6e5a9dc15", + "0x6a29c02a54d80de73c015bb4f769ec74fdb61e784b0ca07ecb5c88adc0554e4b", ], - "transactionsRoot": "0xc103e60e253c07da5e7666463768a0029d50721bfcc06ce51d868c07caf5f4cc", + "transactionsRoot": "0x5c41008fd93b95aff0a1a453b657539b7e43d67d20c196c87fe59f5f2f1dd214", "uncles": [], "withdrawals": [ { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12761ee", - "index": "0x4e822fb", - "validatorIndex": "0x2f2b3", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12380f1", + "index": "0x4fc875b", + "validatorIndex": "0xbee4f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127530f", - "index": "0x4e822fc", - "validatorIndex": "0x2f2b4", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3f62a7a", + "index": "0x4fc875c", + "validatorIndex": "0xbee50", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127b3a1", - "index": "0x4e822fd", - "validatorIndex": "0x2f2b5", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1256773", + "index": "0x4fc875d", + "validatorIndex": "0xbee56", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126d432", - "index": "0x4e822fe", - "validatorIndex": "0x2f2b6", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x125b69c", + "index": "0x4fc875e", + "validatorIndex": "0xbee57", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a9d", - "index": "0x4e822ff", - "validatorIndex": "0x2f2b7", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e33e35", + "index": "0x4fc875f", + "validatorIndex": "0xbee58", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12704a9", - "index": "0x4e82300", - "validatorIndex": "0x2f2b8", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1266095", + "index": "0x4fc8760", + "validatorIndex": "0xbee59", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126c493", - "index": "0x4e82301", - "validatorIndex": "0x2f2b9", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1278100", + "index": "0x4fc8761", + "validatorIndex": "0xbee5a", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12785a7", - "index": "0x4e82302", - "validatorIndex": "0x2f2ba", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127ad22", + "index": "0x4fc8762", + "validatorIndex": "0xbee5b", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a3d", - "index": "0x4e82303", - "validatorIndex": "0x2f2bb", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127d890", + "index": "0x4fc8763", + "validatorIndex": "0xbee5c", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1276002", - "index": "0x4e82304", - "validatorIndex": "0x2f2bc", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12612df", + "index": "0x4fc8764", + "validatorIndex": "0xbee5d", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126f825", - "index": "0x4e82305", - "validatorIndex": "0x2f2bd", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e39635", + "index": "0x4fc8765", + "validatorIndex": "0xbee5e", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1275945", - "index": "0x4e82306", - "validatorIndex": "0x2f2be", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x126c872", + "index": "0x4fc8766", + "validatorIndex": "0xbee5f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1270e42", - "index": "0x4e82307", - "validatorIndex": "0x2f2bf", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1268edf", + "index": "0x4fc8767", + "validatorIndex": "0xbee60", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1270989", - "index": "0x4e82308", - "validatorIndex": "0x2f2c0", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1267257", + "index": "0x4fc8768", + "validatorIndex": "0xbee61", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x12757f2", - "index": "0x4e82309", - "validatorIndex": "0x2f2c1", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1269208", + "index": "0x4fc8769", + "validatorIndex": "0xbee62", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1276b9f", - "index": "0x4e8230a", - "validatorIndex": "0x2f2c2", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127534c", + "index": "0x4fc876a", + "validatorIndex": "0xbee63", }, ], - "withdrawalsRoot": "0x33747cc6d2692bffa01c25aab8323b628778f1e9456cfacea32efb81a17c445a", + "withdrawalsRoot": "0x96c5c22e9b58cb7141b2aecf4250fc84b0486a00a78353cdcfc9d42c214b2127", }, } `) @@ -534,7 +565,7 @@ describe('requestAsync', () => { expect(version).toMatchInlineSnapshot(` { "jsonrpc": "2.0", - "result": "anvil/v1.0.0", + "result": "anvil/v1.1.0", } `) expect(client.requests.size).toBe(0) @@ -553,216 +584,247 @@ describe('requestAsync', () => { { "jsonrpc": "2.0", "result": { - "baseFeePerGas": "0x227fec6b", - "blobGasUsed": "0x0", + "baseFeePerGas": "0x25e3b018", + "blobGasUsed": "0xc0000", "difficulty": "0x0", - "excessBlobGas": "0x20000", - "extraData": "0xd983010e0d846765746889676f312e32322e3131856c696e7578", + "excessBlobGas": "0x180000", + "extraData": "0x6265617665726275696c642e6f7267", "gasLimit": "0x224c7ad", - "gasUsed": "0x3d9ddc", - "hash": "0xe84f123bd1dbb0bc21807a48079e21d5a3ee68b9629ab72d889436e8de57e919", - "logsBloom": "0x906108000108400000818203842012000420102940210030628000400812208410710804220810002000050240124991460900518c0b825600a3228004284d484d01204409048110c88040181060a4e404000010c140480410100408800002146820180002c3402104088390104028821080440a04100c009a10003400051261b0100444000020004314006810306010020b04814526000c90408840281004921a214200301029c0400288e00001280c341080820840088024280402004060410202101a6300010040000818110c024480146009020000346808001a080860020510301000800024008000510480000190002100010c04c00040018408000c41", - "miner": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "mixHash": "0xab048d1aba06968cf2a054968593c88d54edf4a8c303a7bf045d9a55d655ab07", + "gasUsed": "0xd83b57", + "hash": "0xd028bdc00aff985bdf872d6b961110d41a6fe4df5e93aeb6dffe2f38ae0a4f7d", + "logsBloom": "0xa336825265c0691c36791a28c7814901910c6b230e016020408d80135c1980b01016af2c481b78027612ff562ed6c7821228e23a0ccfea2b689d740905656000544085800d0928884ad6e10a344820e9f508517102f601cc0c081464d844b6993b4dd2a082e3462944ca5a4ab4227e8ce368046230b8974506a20496000f111406a9b5004e25a580a0e9204843b3100e18454253b384b508362280d101b634a12f62148431086a90625f16a482818f0841bac44db90101000f39c532160c7460d012000688201ea0013a33920e7b384728250356c52700955c3e2bc20891e2c62572a843e142470000051461200009428f79b8428b08a4c04b899412204954a5", + "miner": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5", + "mixHash": "0x33fd71ca8e38da7aa264c9b9252b7d2864484826eeeae67c2aaf3ab0a756f133", "nonce": "0x0000000000000000", - "number": "0x1527101", - "parentBeaconBlockRoot": "0xa3c571522029f61c8a3ab34a6683b461ebcebbae0786a597babb69cc479c7c88", - "parentHash": "0x0c594782f0363fc69f546a34c6dfd2d51aca62a6348dd2432243eb9c65b8c14a", - "receiptsRoot": "0x02e8fada9484c1c30d5eba8ee6516b49e703db0ed25f4dc494b67d7580f64739", + "number": "0x153b747", + "parentBeaconBlockRoot": "0xa7b4e889e408381f1860000a708b6e5fd42ccd9de7fb1cb442a8e91ecb9e6f6c", + "parentHash": "0x019d374731477005b8d3e3236aca44d11ef53fc9eb0ab0c9e11f942636b04b1b", + "receiptsRoot": "0x230fa17d30bd0ca83606cd4704400735bf05cd09110bc96eeee7dbfbc0f870c9", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": "0x4b5e", - "stateRoot": "0xb72df164d58ca907fbd8593cd0c1a2b2f985745bf76f905a6a09abbaee4669b4", - "timestamp": "0x67ecf833", + "size": "0x1595e", + "stateRoot": "0xadea44d9167ee7c415601810dbb3f090de70edfdea34632b7e077cefad038af3", + "timestamp": "0x67fc55db", "transactions": [ - "0x854722bdc63c7b3a389391c88cf8ba8215a78348e57fc1cc12fd0ab5281ddbee", - "0x02cae7161a4e06197ae0178b4875299932bbb88bb7722b8d45dd4be10ed78c98", - "0xb7d723dfdbd3c3bab81060b438bd87bcf07914753d39e2a0faddb87066e7944f", - "0x4787c0f5ee67cb10805c4e9cc81ea5f7037a7eda4e93ef145ae4c2fecf03f660", - "0x59ff041e644a7294cf79da092f65af4329ea6cabe88bd1df53d0ab4518cc518f", - "0x5520923d4abe5a7a1eb9d481eba9a69740fabdf95b3aae9594a8c1005f5424b6", - "0x4f547ae4274b602dff5cde7a7fa962bd451e639ba2b856c903009f831715aa56", - "0x83bce88701a89e0df991dacc817ecb31671a8aa06e0725aceaf2e03f93258237", - "0xb56128d1a930d85d529f05a8a01ab8ac31341be758c4f733ba13b32ebc2a4cea", - "0x01886366db19111106a42f7a3fce8d3a31266e72478403c901c9b59bf2bd01dc", - "0xa2f08cebd167a4cae54c5e2d6907b5e2d49739ca3881214c49e58a37bf6e9455", - "0xf4174f3311480a400f9a7d8960c7440c186e1beedf2dc946f81a87b0d48d235a", - "0xcf8b1cd812489193f99cee59d558364ce36593bc89bbc174851d173897241180", - "0xfb0267c2413094f54a4cc4e913e6fc384ef2ea31bd15b5371d1be17206f41602", - "0x5ee9e22b89405c490d938e8904d8f50e5788cb400f6f8f89523227eddf8b0629", - "0xbd808d6736b93870c1a81cb944b444ec02611d85136647c090502ce86bf9c923", - "0x18c1c967ff87ae710de86210a32e13999509aeaa1472296c17faefe145c53f91", - "0xfc759550f99be38b1a938f3bd26267353828476e7f5a8dabebb676f710f380de", - "0x4019b7b381fa1daadad90b4b6d2e02de07eb1e8d6f0b36bb14b62f2e85fe9efa", - "0xd2bac5f3c8d0b8ea1efc84fea5b7c92ac1369f9b7be90527ffbbb35d35aca077", - "0xfd69918724b556e832e85e22a359891e08fcab37f4e6c70a8ff1699176e15453", - "0x50a7e4b5697b0df1bb4a6bbf97321bb94a996fea894aa071fc210a7423cf4838", - "0x1af867463b10a71305740219c1fab218571d88f5b75472ad8c25885cbfc01b91", - "0x5c67e0c7ab694c4714576ff54d2bd2dc6b19dcd55df337ceb72bfcc89034becf", - "0x2b917db8c9adbdd78fd0bab4edf8f599c2ac99c8b6171b1dc3fc42bc3607d164", - "0xa15e4bca5ac39a8d3023dad307b3743f801baefba07f203f98429c71cf2d2582", - "0x8cb6e16ecc5d6b659170423b6e5bb39ccd6933ca214c843ba079ad6306111000", - "0x269f116d71f5886f59dbfb63ea5a1d4621afc6e6f163f984fd4d1a6c33ebdddc", - "0x2129b8e7f727a14b793959c5a812ad3ad65c6dfd2b4d41944baa40c56bec0312", - "0xa026091fa779b2fa5a05afdc01b9af8c618e936ee237274f500ca4b07761b6a3", - "0x1af67c12db72606b9687d413fd3b9a7960e78d38df615e9e8094192055f9f8ba", - "0xf00dd3ad522918ff5af7fd8eb85946736d119e5ae560bc5339d3197d03a27c25", - "0xa196faa90844cc30ed6e48f31e5f5e44415c0a9ce605b5537c80fbc8c597c2eb", - "0x9b01070b12d11f4e980a37ae00716f58c0ef45482984e21219011e8c96c3359a", - "0xb20c352eb48b4b0166a64d947b9bf43a0a6da5c3f6f61742725e3ac692d351b5", - "0xaacc6e6b9ca5935a28cdc115ec187a093031c8f071785b1077525ad62caff8ef", - "0xee8bfcf3180572c02cbd7d7a0a60d616d58a5a689057a23e38e78aea2980a481", - "0xba86efff334626a0abef6b52be7648ab073049636d6bca087b473d2e24353103", - "0x8a3eba30e9d148a217434f2951882d8a620a0a37fddbfef7063c4c0914d33712", - "0xec9ebbe6e1855f3b9f6e20be38bde066e353bd35604e43a96a24e65e6760781c", - "0x86df945e7311b1b341f2ebfd3ad7979d5dec093a3de6e89a7233374129b6df1a", - "0x63870fcb38ea65b28ec381a48c49ae92477662bea9ae78c8a88fff309adb596a", - "0x6711b81447f1f43eab0609e4f3281b421c8252cd3e95252f2843f2666f916e67", - "0x053cdb9cd0619da6f570e5ad1330f498199d89a4bea9e60ea32b8004f8796581", - "0x481645366e47224457043d354bd9fac3a0d342d85fa3489b8ba2c4c95ad06e79", - "0x3aa5be2e84dd1eb17f1eacf4c8922d622c38c6893afb371e953818bb18085073", - "0x4d70545132c47146f6ba915aac0e550f1458148c4242f6c73b11d3bdfb43242f", - "0x18d74382159845c6e1b3fe17512ba167aa2314495b0af6f6648caf0bc9cf02d9", - "0x965a698cd7a04d50b9421b1719305cb932e3fa60b7efa4e7947309809e4bf89f", - "0x98af2e3b23bbca8448a3a3a0275890c4841b74953c2c3ff7de3f60146014022b", - "0x14b6ce018d72dbc4bf9696fca2450a67a3ec30b83d7f3f29b5705a9b11cf0023", - "0x5b6aaf14c07490e42422da3090c1f96b75f621b883155815f39fcc62e52b33f4", - "0xc771676cdb93ec14b0d8cbf595dc71201d6dc8d0e7eac292516883515da9853e", - "0x77f8b676af27863e5c209de3b83c6b28548ef8f9e2ac8dbbb811c72426ce1314", - "0xe6c20952ac5828c60e0fdf6ac90a5265dd37d82d07efb994abad8a394d0c09af", - "0xa3120d24651113f14068b578b321a2932729607f910629dcaf98e5468ce269eb", - "0xecee7c812393be6a0c8674f1753e1036e8ae94aa65e1554826fbe70117fa3864", - "0x2b4e80afa71c648ea44b68571b1d49dbbd8ec43d6ed7c0c50497e4dada79b7cf", - "0xefc09f41c36293ff1054cbef26b2100343234b162def2d9958b6cf7f178be2e1", - "0x36fb9e07cebde3bfd5428c264cf7a48a53ff4335821e94a4453a74e21926fdab", - "0xc2d7ed094cac9adeafcee17d6108528d605afb3cab55f4e2be2698ab7a2be42c", - "0x94bd0c645445a3066db377e7805e9adbfcc7e1bbd03d431b93ed6afdb413f524", - "0x644d39762057df05ef6d81c6091e28696540336f30fbe38e8f77fb02adeb14dd", - "0xa0335e5efcb94ae2fd7065a7d0b4e6480d24a55eef2db3adbe7e56f4a10f885e", - "0x70cc6a56f1578efc21747421e3c65dfbdd64b9d045b035eb2270c099c90fc7ce", - "0xd6da75a688304dff7f987d3b6be703bcebe9926184e57c85e1e20cba53bdcc6c", - "0x60c676a4bb996f4d8767649a9cc2d5d53ab5d3f50fa80867e147911f20686c43", - "0x3905355abddf0be3f4c3213420a81a080f6a9eda1f0014ae5f5a0bdd1a90a696", - "0x94e65d80b8dd755f8ea3f6e7ba385a1b598f6edc52b7f08e3df445717d795cf7", - "0xe078055c7d78bb0473914d62ae8dbb557c3fec7b3a7c5d757169823c89729e2f", - "0xcbadc3ca4a1881c2640558e7d60a3e8c7c753281836eeecd856737087a295431", - "0xd002e072a411c84b48c37d21ff7df3c41b62172f0dc094d5497b565818459fdb", - "0x2a63ee7e01b3b54691e0bbc03b2fe641202d3d22dd0c48c2348d1e93ad7b0492", - "0xe10b19b8956908c1e554b53dbf1e52424de31ff75008fe4ac9f8b3a9db9504fe", - "0x7925eb0a9767c6e05e39118e799245f68026eb93a094fa9b24404fdd1bd9926c", - "0xbe5dc882a0ffeee04731180dec24ed1ac1d49393e742470f163c83a0e5147ccd", - "0x91b44316445eac651a9692dfe324e91b57b9ddb544c8961643fbaecaadd4ed0a", - "0x0ce80c94b4783a3e5f8ad97619fc6a74ece81f1728712502a1c5089076e370fe", - "0xdb359e8c4805e64256bf706b3921547d666f7a82efe2e6be099f22a966ea5a3f", - "0x76bf7b5b3fe06055a4a14368a7ca4a84f8ba80f5ac17f26ec747ed596a0a4e94", - "0xa7e4e10a4d52ee6e151ca74bc68ee7fb6868d22cf94a67cf75468d1a4d0382e5", - "0x6fee722066f0556812667007cd3e38176ca66821932e437d9bdf2d98434102fc", - "0x9085a6a8def5f6c3a25d6e036829807cd5b0695268a4c645f01165021bad1d24", - "0xf2849a8fb3ad7cd02171d076ccb1fc2fba8732e116734fc72158fa97d6cfb6df", - "0x03d78a43ef4db904736b09ec8167deacf78ca14b0bcfa22d280c8db53688563a", - "0x6c962a3376c5d50f9a6fbe71c555294bb639192aaedc6d8ff1f43c2e6c7f6255", - "0x432d13a977ea8df24859c70f1eeebd303d0ac099d7da6df4bd7db2e2802bdeb1", + "0xa830b5e09e6d2709eaddc555c12fe5177aa22a0862869aefab392d64bcb67926", + "0xec8dae0c3c87e84115d6d80a13f18fa09149b26b6185dec8b1feb9277f57de16", + "0x6bdee6726ede49f0caedbb039559a3ecbeb30beccdbad0d0ad34b7878fd76756", + "0xec27e6ef7e8e0c5e495d978e2409f18d09efbac99f6a1d9766e8951eb20c1bb6", + "0x388f16334f1217cf27bbefcc8798834af13166cd7857b5c56892b1ebeef6c708", + "0x10f56c635bde3733b330e41fe1dedd83c303dbef4b713a87ad1fb0feda79a5e1", + "0x0b20063113f3377255f2d1fe4e3277feadaa98d122ebdfa4f08b2e58113c3bf2", + "0xa418d5bd350d6a7947d5801cfcda9aa9068cf43611cc5ec26a3e0996b3e6b1e0", + "0xcdb2fcead0254ce044d050761b3308f9fafb1bc419a8ca9a6dc4b3e62c437169", + "0x1b1e60b3aa4031704fae193d7f97a5484a1673f5ba2da0ee31e3b0858d839684", + "0x59917ed06b3fa39d2d311086d6032e2abe1341a31db2422e9467afad00fabfe4", + "0x185f39d2b7b2cbe0c0950ddc45df5948e167bbbceab235ae2b18193ccdbf3cf7", + "0x9aa22d79c11e83cecc8043528527d9c88a62d6103ca8f250aa8cb86eca02eb11", + "0xf914ecdf0c1922a1bd4effe4d2f15adaebea229b7b52ad610984a979ea09e565", + "0x27feb453dd1e91b41d5860c32ac34470d101f6e5da57c57c4e0c074c5d00cd5d", + "0x069bf514fa826397e81c88d4587530538e10baeb5e0388048030287d85b2b5f9", + "0x6c89d2775e9919fe8afde564755021b2291a797490e7d64a42231cd0e9ebec85", + "0x01975a1e08fac4209e625990cd4a0fbf2fa05e3c08d9e98898a5f50207f36c04", + "0x5eb6d26ad0d67a9af50cccb5e4d2e7c11e8d9e86fe51c61483cb62b84dd8e2bb", + "0xb600b487433b17d85b33ae7567e4558698afd3f72a8fa968985ac847055e09bc", + "0x002dd9d9fc69777dfac9ae0cae8d9b47ece05930f3dc971c23a3e7674629ce72", + "0x384b2c0059e7ecae49b44dfa6f5ed44fd9fac1dc0fab8c01d341cc886bd45789", + "0x403412968589902149efd2df44385afa00c4299c52aa83d64008bbee0c953d47", + "0xb6ef0c02e08374d3cea3eda42b8e08ed218033a70406712c9db64620ebe6ff62", + "0xca031374a4aa643a169e7edbfa8505b310b52f1559c49f7bb1acbcbd9281f8fe", + "0xeac0cf72d02033c8d24dd22ca23882773402f8791f57d9e3f161b1086cea39bf", + "0x7ac526702bccafe985f08a35ab96250066f230bfa4c589696d52f388dc28cd9b", + "0x7663feb1a75df42652c26c6c114d711956b03de8aada2493e8e858bc19163f18", + "0x7dd2137fdb2f69d3714bbd8cdc1be5ad0a4503ddfe19ffb8e752ee3537a6baab", + "0x88608458416217eb145836116357017d8ee7f0bff8f18e2a708b578645b115f7", + "0x03037c03f30232ed8b486ee3e43212f40d7e48317c733fad92034850420a29c6", + "0x96c58606a41010569c74160b3ff879948d4e254f305df63491dfb77637bb6fcb", + "0xc6391d3137b9937cc53e7044c7fde0e9e3d37ff3e2ce3e2c2daa40a1e855e8d6", + "0x126acf8dea4af4f8477d83fd40096277b8f46be7ce6f48c3f5ce12c73dbea9e2", + "0x5a3bb37a3859bfc316580c2c3016e0a602cc578e518fff5a1ca560cc3d457ff5", + "0x30c1bdd22384b8a1187dc5c30fe0aed454e1bbe724fad44e619fcf26287455a5", + "0xd664ff7bd195031873ab12bfddc3399bcab5a5e5e6b66e0ec9e7aca5eea533b9", + "0x52353a3786a5bc637d2a767d440a13ac426ae372301882a69cf99be5c08b9b34", + "0x8640c1cb3208b965e5405b952d4400f76ba5942640b6ff75559411d567c6624b", + "0xfc401c21638aeb2b853bb0e29bae2468fe6d757e76f455a0e00061301d243692", + "0xced23b981bc2fd12d5b45b8ae3f5b0effbb21cadc2d6431f677621ec8023ffc2", + "0x2b63a9e4d7d27a19ad8c84e2035b0bc5e1e2f61ceb53ad9fa7569f639bff78ec", + "0x9991c76fa2ba076162f0b8d21b9b2a6b2b9fe9dd5403dd6a4a05a72c85569a03", + "0x9a3a09b54dcae0cfe70d12a5d675f7e400d3f6d5c3b43ec018c7c1f587584ff4", + "0x848d7a6be7e269ee54437dc0272501e3aba635ad277903abafd75a21652ebde3", + "0xf4afe5774ac8d7196ad36103769ef606faa8a1c70284b609d5993db3c99773ee", + "0xdb2cc3a2dd936e22f3cccdacd3a95d6541070e2a0a9440b68d5b17036c791e25", + "0xdfc82c9edf56322fc2b2b42c49b4053fada87559d4269dc7f62df2043dff0391", + "0x6d4131a2c049efb6cbe31fcdc03aba6952875efbc8df336b915aea67a6d17cfa", + "0xc469810e7856cf8d1f748f2e5f8f80084253272019056b69474d0f10ff181ece", + "0x313e76bb4c1d58dd51df593e00369185d3612a660f67d5a3751bc341585b1eb4", + "0x6baf070c42ec0033ff0b0dec233c4ce7ab4f8b94369f67d02a6eb1a48ca6dff9", + "0x7544a200cb8855073410e2ef14666a2846f9e3c962fd68ab060bc63b2bf376f8", + "0xb6ca49f11c2be3541178e6896b98bf47b7c392e20c8c4c9e8dfc439ba7d34d37", + "0x5252bea73f0cb25d0096362e39faf73dd86eb1d1de8449bacf4aa7da96eaec4e", + "0x666875fa51d4cabf200b63db9b7c3110c593c60658f9ee174181ed7790a6f6de", + "0x68dd0295bf7d2f0d636ebc5d551db39132b3c8dc2374c1382a3a91d753cc93f7", + "0x4dbf6d86b0c8f87589b44fa8b8986684febb58815be0fb51bb5ab4904c3dd816", + "0xf5dac89d6f756e8e0728993f91420f883658306974b85df38d86dab3b1b66522", + "0x1929a2dd505f80e1d883eeaaccd09c3392e5d9ff0d42ebdf869bb413e72ae406", + "0x43c076bffb1b83e9208776bdc63b8e52ca2957c0f53966f0d388d97fe90ab84f", + "0x67abe41b249287654a1e34d15f386a11fb384dcb406ad179b7b6b6e2c66fbc58", + "0x8a8a45cea8595016bcad108c281ee8612cb0f6d4397d368315488feaa5f798d3", + "0x11592924727a9175d05e57635dc4b7eef9bebf67da90d590adeb3f2f27d3f4f4", + "0x8d816313b6dd7524ec3a22f82edee1aeb147a8468824c29bf48b53d2dc78a160", + "0x180de77173fd1e0a108a191f79edd955e35728d4dc17f00f3eb4f2a5aeb40d53", + "0x118f5228f1faf3c2301201d0451e578bae7bd7fae9c2aa860a85877fc94065d6", + "0xd23194a13c3302913bc044b8912f6361dfa997e667a8e00913e1349df04586a4", + "0x16395ca6eb8963ee04e3181c7233fa417678bc9446bd2602bf5f9b8eeb5b17c4", + "0x9d50f7dd271dff2451b4021ff75d0e581eae95d67260bc2ddf0c3e06d08b58f6", + "0xe342270887c85b5a5be6068ca116ebdf4a53ee29f5cbd0b1b6dd9b66f99699ec", + "0x74960a4a67cbf20e4e660747e16d9c82eff0b614baf34fc98dd125323555e319", + "0x0ba0a9eb5c3ba2700d70d1cb00dd1ba892205f47883690f5343f0d6e8a012110", + "0xbdc97aa06937fbb6227deaaf4242c4c136b03f7bf1c466b672c96b1e1994203b", + "0xccef5dd7738d65689ccfab4ce87431132dcff26c30f1337017c6f2cd2573f121", + "0xd4b7fa9c33c877ad0e0ca65caf27998e7d32bc3ef9cd351c2c318b294468c8ab", + "0x676858b075e31a88caf5d84bfb5e8bc8f1fda60c8b47ad6d1510e16025dab1b5", + "0x467afd1e746c073475d396198420fb504c330bc9759a9d49fb375c3831ccd863", + "0xc41560172f2c1e5880de04c06bc28872cf1aaf2bf5e86a42979b4ecfcd44d311", + "0xfc505c0a8009f008433aaf366e7a8a585f66336e77ab3066630552bb8c67a800", + "0x7454273c2845eea8611fecce8016bcbf7571959a1600c7ac97387ed3510e3582", + "0xdc856c8d91705f4b3d03964c8ad4befc3799a8849f2d527709432db45d3a388c", + "0x17d71b1691589e9597fc6d29d571be8d674f86538355806e697af188cb18eea9", + "0x5f0faee4777596897c3f8b7206ae31fe7ed5d3eb4718cdba07e1e743cda7cc1a", + "0x7c68af4b9e5c22ce5bcf74929a19180ad06125a80e9118128b653d0056260c58", + "0xe222040952e6f7fd617290b7b8904b00f81ef49e4fb37be040db1f66f1f4ddc8", + "0x1ad0b706c9a1d376cde377fb73395ecd5e0e55f428ad3299317806daef8de882", + "0x4f24aff0b5d7269902fef75cb69ba67aefd39f114f91b0d7a519e86e10d9c8b7", + "0x32e23029b54b3ffbc78c4e9f115a4cbefe65faf67ec295e2ad9a0603ed44d4de", + "0xfc424bbd777126fb913242238dafbacdd75344b6fd0f6d524d64f85b7420627d", + "0x2742143d7f34fa33714619ccf9c1f01f4f32a47ccbf69b6ecff00d398c483cf7", + "0x81d16e35c2f2372d18b2898778cd9f81eaa0a553b06bcc2620d69d2df39431ac", + "0x5ff48d7e61c45a9be174bf915f864318123dd16458550322b2fca85490a4c0f6", + "0xdfedd288385085f2f33a4235d9e65dffca463c555f3ef351f7ac6992360e6980", + "0xf8e19739eb8068854f9e6a2274a826228896d0e8c56b33ace69199a92385c6e4", + "0x72c03ec1db7496a464214c3c17c2303d55882ff873ddd42cd9aadd11d6cd4674", + "0xcd66de6e1ba35f34e0c1ae90d470abba0b39cb798909db5350aaa0414121cfa6", + "0x647544c734fff0189ab55e86e2a38c78d4764aea12ed0cd16c3dbee9aca5a4c9", + "0x2fd9010ba8d614a8492c02914bc5aa9504e588ce2b98b7c097eb78c02318f734", + "0xf9e4ae3673db5a8961fdbd3253643b2f09a475b76a2d3639671bb5b8d8df8599", + "0x269240fcb4257e6e0b2d970d8a08b06fd56226b0afbc3c41ae952cebd1d1e84d", + "0x2f9db6986f9d46736e6532030627e0be514e6e7c8d844e316ec589d3e0dbb573", + "0xeb32497fce6f101f55959ea2ac0b090a0b26032865c74e279754ba13384f2245", + "0x4257448420523d4320b38aee51ef17e72ad59b316c390267f524dcb51fa1f3e2", + "0x511ba0618f654bce433edc15ead66c282b9628049398b117c8dea68b5956484c", + "0xa5ab42e4353a63a1dbbb5fcd9827b0b5784468b4c71074ad5124eb84ea87b687", + "0x018b3ecb07b3487253f4c6f26c4a66518e5b4127433da45e10f88a458da19932", + "0x8d9c8a91a8ffb007f20622068d27b3d21e641cf4495bd7791f76eff22bbe3b5a", + "0xc65564c139b75062f4989cb2eed6c436e6036f281c8c5dfd811911b7575b03bb", + "0x1fa029e5ff784a280d1d3aa8a0738942ecea6f271d0b3cb852edd2233fbf807b", + "0x893eb054cc26a7f84904a4c038f8b5ab62b6fd97201526308699c6f750879cb8", + "0x52150a57b9f7e1b4cd27294a81a27966421a791b11238075818d70683fd716d1", + "0xb56f65e5aa53351984d177cb0e9099f386c10ad0989255b0dc2818982c08794e", + "0x2a2b18674d4e5955ead4f4c3ee115e26ccd4f5d16112fc8438ab4424f18ec9bc", + "0xb30bd6264b27feec0fb74dbf5c0dfbf0c2f6c4e7a69c0c265f3fad84f94f622d", + "0x30f32b6cefaba17d25b5a8c58cd42c60e19a7f0dd1f16251bfcede5bda55b7bc", + "0x48c3c9f6a2344284079d4ee6ffc186c5eb36a5a5a88c3c2e256690d6e5a9dc15", + "0x6a29c02a54d80de73c015bb4f769ec74fdb61e784b0ca07ecb5c88adc0554e4b", ], - "transactionsRoot": "0xc103e60e253c07da5e7666463768a0029d50721bfcc06ce51d868c07caf5f4cc", + "transactionsRoot": "0x5c41008fd93b95aff0a1a453b657539b7e43d67d20c196c87fe59f5f2f1dd214", "uncles": [], "withdrawals": [ { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12761ee", - "index": "0x4e822fb", - "validatorIndex": "0x2f2b3", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12380f1", + "index": "0x4fc875b", + "validatorIndex": "0xbee4f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127530f", - "index": "0x4e822fc", - "validatorIndex": "0x2f2b4", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3f62a7a", + "index": "0x4fc875c", + "validatorIndex": "0xbee50", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x127b3a1", - "index": "0x4e822fd", - "validatorIndex": "0x2f2b5", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1256773", + "index": "0x4fc875d", + "validatorIndex": "0xbee56", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126d432", - "index": "0x4e822fe", - "validatorIndex": "0x2f2b6", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x125b69c", + "index": "0x4fc875e", + "validatorIndex": "0xbee57", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a9d", - "index": "0x4e822ff", - "validatorIndex": "0x2f2b7", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e33e35", + "index": "0x4fc875f", + "validatorIndex": "0xbee58", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12704a9", - "index": "0x4e82300", - "validatorIndex": "0x2f2b8", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1266095", + "index": "0x4fc8760", + "validatorIndex": "0xbee59", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126c493", - "index": "0x4e82301", - "validatorIndex": "0x2f2b9", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1278100", + "index": "0x4fc8761", + "validatorIndex": "0xbee5a", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x12785a7", - "index": "0x4e82302", - "validatorIndex": "0x2f2ba", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127ad22", + "index": "0x4fc8762", + "validatorIndex": "0xbee5b", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1271a3d", - "index": "0x4e82303", - "validatorIndex": "0x2f2bb", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127d890", + "index": "0x4fc8763", + "validatorIndex": "0xbee5c", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1276002", - "index": "0x4e82304", - "validatorIndex": "0x2f2bc", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x12612df", + "index": "0x4fc8764", + "validatorIndex": "0xbee5d", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x126f825", - "index": "0x4e82305", - "validatorIndex": "0x2f2bd", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x3e39635", + "index": "0x4fc8765", + "validatorIndex": "0xbee5e", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1275945", - "index": "0x4e82306", - "validatorIndex": "0x2f2be", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x126c872", + "index": "0x4fc8766", + "validatorIndex": "0xbee5f", }, { - "address": "0xcaf3b970b4596391cf74a1fa833d0c9edd71470c", - "amount": "0x1270e42", - "index": "0x4e82307", - "validatorIndex": "0x2f2bf", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1268edf", + "index": "0x4fc8767", + "validatorIndex": "0xbee60", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1270989", - "index": "0x4e82308", - "validatorIndex": "0x2f2c0", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1267257", + "index": "0x4fc8768", + "validatorIndex": "0xbee61", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x12757f2", - "index": "0x4e82309", - "validatorIndex": "0x2f2c1", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x1269208", + "index": "0x4fc8769", + "validatorIndex": "0xbee62", }, { - "address": "0xa9290b61d99562a213428d2d972420acd0077c21", - "amount": "0x1276b9f", - "index": "0x4e8230a", - "validatorIndex": "0x2f2c2", + "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", + "amount": "0x127534c", + "index": "0x4fc876a", + "validatorIndex": "0xbee63", }, ], - "withdrawalsRoot": "0x33747cc6d2692bffa01c25aab8323b628778f1e9456cfacea32efb81a17c445a", + "withdrawalsRoot": "0x96c5c22e9b58cb7141b2aecf4250fc84b0486a00a78353cdcfc9d42c214b2127", }, } `) diff --git a/src/utils/signature/recoverAddress.ts b/src/utils/signature/recoverAddress.ts index f9f2136380..f2b0346a0a 100644 --- a/src/utils/signature/recoverAddress.ts +++ b/src/utils/signature/recoverAddress.ts @@ -19,5 +19,5 @@ export async function recoverAddress({ hash, signature, }: RecoverAddressParameters): Promise { - return publicKeyToAddress(await recoverPublicKey({ hash: hash, signature })) + return publicKeyToAddress(await recoverPublicKey({ hash, signature })) } diff --git a/src/utils/signature/recoverPublicKey.ts b/src/utils/signature/recoverPublicKey.ts index 452383fa7e..36e4dba144 100644 --- a/src/utils/signature/recoverPublicKey.ts +++ b/src/utils/signature/recoverPublicKey.ts @@ -1,6 +1,7 @@ import type { ErrorType } from '../../errors/utils.js' import type { ByteArray, Hex, Signature } from '../../types/misc.js' import { type IsHexErrorType, isHex } from '../data/isHex.js' +import { size } from '../data/size.js' import { type HexToNumberErrorType, hexToBigInt, @@ -41,6 +42,7 @@ export async function recoverPublicKey({ // typeof signature: `Hex | ByteArray` const signatureHex = isHex(signature) ? signature : toHex(signature) + if (size(signatureHex) !== 65) throw new Error('invalid signature length') const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`) const recoveryBit = toRecoveryBit(yParityOrV) return secp256k1.Signature.fromCompact( diff --git a/src/utils/signature/recoverTransactionAddress.test.ts b/src/utils/signature/recoverTransactionAddress.test.ts index 9e73e36c6d..c52ba7ca4e 100644 --- a/src/utils/signature/recoverTransactionAddress.test.ts +++ b/src/utils/signature/recoverTransactionAddress.test.ts @@ -125,7 +125,7 @@ test('via account `signTransaction`', async () => { test('via `getTransaction`', async () => { const transaction = await getTransaction(client, { - blockNumber: anvilMainnet.forkBlockNumber - 10n, + blockNumber: anvilMainnet.forkBlockNumber - 15n, index: 0, }) const serializedTransaction = serializeTransaction({ diff --git a/src/utils/signature/signatureToCompactSignature.test.ts b/src/utils/signature/signatureToCompactSignature.test.ts index f1e046716e..9d657f32a3 100644 --- a/src/utils/signature/signatureToCompactSignature.test.ts +++ b/src/utils/signature/signatureToCompactSignature.test.ts @@ -1,5 +1,5 @@ import { expect, test } from 'vitest' -import type { Signature } from '~viem/types/misc.js' +import type { Signature } from '~zkr-viem/types/misc.js' import { signatureToCompactSignature } from './signatureToCompactSignature.js' test('default', () => { diff --git a/src/utils/transaction/assertRequest.test.ts b/src/utils/transaction/assertRequest.test.ts index 6b0dc42106..5004f9e31d 100644 --- a/src/utils/transaction/assertRequest.test.ts +++ b/src/utils/transaction/assertRequest.test.ts @@ -2,7 +2,7 @@ import { expect, test } from 'vitest' import { parseGwei } from '../unit/parseGwei.js' -import { maxUint256 } from '~viem/constants/number.js' +import { maxUint256 } from '~zkr-viem/constants/number.js' import { assertRequest } from './assertRequest.js' test('invalid address', () => { diff --git a/src/utils/transaction/assertTransaction.test.ts b/src/utils/transaction/assertTransaction.test.ts index b8e540fa6a..7d9f1cd3dd 100644 --- a/src/utils/transaction/assertTransaction.test.ts +++ b/src/utils/transaction/assertTransaction.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test } from 'vitest' import { parseGwei } from '../unit/parseGwei.js' -import { maxUint256 } from '~viem/constants/number.js' +import { maxUint256 } from '~zkr-viem/constants/number.js' import { assertTransactionEIP1559, assertTransactionEIP2930, diff --git a/src/zksync/actions/deposit.test.ts b/src/zksync/actions/deposit.test.ts index 47f17ee10f..dcf5e00dc8 100644 --- a/src/zksync/actions/deposit.test.ts +++ b/src/zksync/actions/deposit.test.ts @@ -2,11 +2,11 @@ import { expect, test } from 'vitest' import { anvilMainnet, anvilZksync } from '~test/src/anvil.js' import { accounts } from '~test/src/constants.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import { publicActions } from '~viem/clients/decorators/public.js' -import type { EIP1193RequestFn } from '~viem/types/eip1193.js' -import { legacyEthAddress } from '~viem/zksync/constants/address.js' -import { publicActionsL2 } from '~viem/zksync/decorators/publicL2.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import { publicActions } from '~zkr-viem/clients/decorators/public.js' +import type { EIP1193RequestFn } from '~zkr-viem/types/eip1193.js' +import { legacyEthAddress } from '~zkr-viem/zksync/constants/address.js' +import { publicActionsL2 } from '~zkr-viem/zksync/decorators/publicL2.js' import { deposit } from './deposit.js' const request = (async ({ method, params }) => { diff --git a/src/zksync/actions/finalizeWithdrawal.test.ts b/src/zksync/actions/finalizeWithdrawal.test.ts index a74f9e2b49..688ed23902 100644 --- a/src/zksync/actions/finalizeWithdrawal.test.ts +++ b/src/zksync/actions/finalizeWithdrawal.test.ts @@ -3,9 +3,9 @@ import { expect, test } from 'vitest' import { anvilMainnet, anvilZksync } from '~test/src/anvil.js' import { accounts } from '~test/src/constants.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import { type EIP1193RequestFn, publicActions } from '~viem/index.js' -import { publicActionsL2 } from '~viem/zksync/decorators/publicL2.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import { type EIP1193RequestFn, publicActions } from '~zkr-viem/index.js' +import { publicActionsL2 } from '~zkr-viem/zksync/decorators/publicL2.js' import { finalizeWithdrawal } from './finalizeWithdrawal.js' const request = (async ({ method, params }) => { diff --git a/src/zksync/actions/getL1Allowance.test.ts b/src/zksync/actions/getL1Allowance.test.ts index c2f020e35f..b7be68a34b 100644 --- a/src/zksync/actions/getL1Allowance.test.ts +++ b/src/zksync/actions/getL1Allowance.test.ts @@ -3,8 +3,8 @@ import { afterAll, expect, test, vi } from 'vitest' import { accounts } from '~test/src/constants.js' import { privateKeyToAccount } from '../../accounts/privateKeyToAccount.js' -import { sepolia } from '~viem/chains/index.js' -import { erc20Abi } from '~viem/constants/abis.js' +import { sepolia } from '~zkr-viem/chains/index.js' +import { erc20Abi } from '~zkr-viem/constants/abis.js' import * as readContract from '../../actions/public/readContract.js' import { http, diff --git a/src/zksync/actions/requestExecute.test.ts b/src/zksync/actions/requestExecute.test.ts index 9e1b86f3ae..6fe520fd45 100644 --- a/src/zksync/actions/requestExecute.test.ts +++ b/src/zksync/actions/requestExecute.test.ts @@ -2,9 +2,9 @@ import { expect, test } from 'vitest' import { anvilMainnet, anvilZksync } from '~test/src/anvil.js' import { accounts } from '~test/src/constants.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import { type EIP1193RequestFn, publicActions } from '~viem/index.js' -import { publicActionsL2 } from '~viem/zksync/index.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import { type EIP1193RequestFn, publicActions } from '~zkr-viem/index.js' +import { publicActionsL2 } from '~zkr-viem/zksync/index.js' import { requestExecute } from './requestExecute.js' const request = (async ({ method, params }) => { diff --git a/src/zksync/actions/withdraw.test.ts b/src/zksync/actions/withdraw.test.ts index 6d442614d2..db338d7eba 100644 --- a/src/zksync/actions/withdraw.test.ts +++ b/src/zksync/actions/withdraw.test.ts @@ -3,9 +3,9 @@ import { expect, test } from 'vitest' import { anvilZksync } from '~test/src/anvil.js' import { accounts } from '~test/src/constants.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import type { EIP1193RequestFn } from '~viem/index.js' -import { legacyEthAddress, publicActionsL2 } from '~viem/zksync/index.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import type { EIP1193RequestFn } from '~zkr-viem/index.js' +import { legacyEthAddress, publicActionsL2 } from '~zkr-viem/zksync/index.js' import { withdraw } from './withdraw.js' const request = (async ({ method, params }) => { diff --git a/src/zksync/decorators/publicL1.test.ts b/src/zksync/decorators/publicL1.test.ts index f3bd294366..d0a5473d91 100644 --- a/src/zksync/decorators/publicL1.test.ts +++ b/src/zksync/decorators/publicL1.test.ts @@ -3,12 +3,12 @@ import { afterAll, expect, test, vi } from 'vitest' import { anvilMainnet, anvilZksync } from '~test/src/anvil.js' import { accounts } from '~test/src/constants.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import { sepolia } from '~viem/chains/index.js' -import { createPublicClient } from '~viem/clients/createPublicClient.js' -import { createWalletClient } from '~viem/clients/createWalletClient.js' -import { http } from '~viem/clients/transports/http.js' -import type { EIP1193RequestFn } from '~viem/types/eip1193.js' -import { publicActionsL2 } from '~viem/zksync/decorators/publicL2.js' +import { sepolia } from '~zkr-viem/chains/index.js' +import { createPublicClient } from '~zkr-viem/clients/createPublicClient.js' +import { createWalletClient } from '~zkr-viem/clients/createWalletClient.js' +import { http } from '~zkr-viem/clients/transports/http.js' +import type { EIP1193RequestFn } from '~zkr-viem/types/eip1193.js' +import { publicActionsL2 } from '~zkr-viem/zksync/decorators/publicL2.js' import { privateKeyToAccount } from '../../accounts/privateKeyToAccount.js' import * as readContract from '../../actions/public/readContract.js' import { publicActionsL1 } from './publicL1.js' diff --git a/src/zksync/decorators/publicL2.test.ts b/src/zksync/decorators/publicL2.test.ts index a2eb551025..e3e7de31f5 100644 --- a/src/zksync/decorators/publicL2.test.ts +++ b/src/zksync/decorators/publicL2.test.ts @@ -17,8 +17,8 @@ import { mockedGasEstimation, mockedL1BatchNumber, } from '~test/src/zksync.js' -import type { EIP1193RequestFn } from '~viem/types/eip1193.js' -import { padHex } from '~viem/utils/data/pad.js' +import type { EIP1193RequestFn } from '~zkr-viem/types/eip1193.js' +import { padHex } from '~zkr-viem/utils/data/pad.js' import { createPublicClient } from '../../clients/createPublicClient.js' import { custom } from '../../clients/transports/custom.js' import { estimateFee } from '../actions/estimateFee.js' diff --git a/src/zksync/decorators/walletL1.test.ts b/src/zksync/decorators/walletL1.test.ts index f967aeac4d..ba6c7b562c 100644 --- a/src/zksync/decorators/walletL1.test.ts +++ b/src/zksync/decorators/walletL1.test.ts @@ -1,13 +1,13 @@ import { expect, test } from 'vitest' import { anvilMainnet, anvilZksync } from '~test/src/anvil.js' import { accounts, mockRequestReturnData } from '~test/src/zksync.js' -import { privateKeyToAccount } from '~viem/accounts/privateKeyToAccount.js' -import type { EIP1193RequestFn } from '~viem/index.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import type { EIP1193RequestFn } from '~zkr-viem/index.js' import { legacyEthAddress, publicActionsL2, walletActionsL1, -} from '~viem/zksync/index.js' +} from '~zkr-viem/zksync/index.js' const baseClient = anvilMainnet.getClient({ batch: { multicall: false }, diff --git a/src/zksync/decorators/walletL2.test.ts b/src/zksync/decorators/walletL2.test.ts index edc8e29e1f..8cf5977929 100644 --- a/src/zksync/decorators/walletL2.test.ts +++ b/src/zksync/decorators/walletL2.test.ts @@ -2,8 +2,8 @@ import { expect, test } from 'vitest' import { anvilZksync } from '~test/src/anvil.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import type { EIP1193RequestFn } from '~viem/index.js' -import { legacyEthAddress } from '~viem/zksync/index.js' +import type { EIP1193RequestFn } from '~zkr-viem/index.js' +import { legacyEthAddress } from '~zkr-viem/zksync/index.js' import { walletActionsL2 } from './walletL2.js' const baseClient = anvilZksync.getClient({ diff --git a/src/zksync/errors/bridge.test.ts b/src/zksync/errors/bridge.test.ts index f22575084d..e3e0983b5e 100644 --- a/src/zksync/errors/bridge.test.ts +++ b/src/zksync/errors/bridge.test.ts @@ -3,7 +3,7 @@ import { BaseFeeHigherThanValueError, TxHashNotFoundInLogsError, WithdrawalLogNotFoundError, -} from '~viem/zksync/errors/bridge.js' +} from '~zkr-viem/zksync/errors/bridge.js' test('BaseFeeHigherThanValueError', () => { expect(new BaseFeeHigherThanValueError(100n, 90n)).toMatchInlineSnapshot(` diff --git a/src/zksync/utils/bridge/getL2HashFromPriorityOp.test.ts b/src/zksync/utils/bridge/getL2HashFromPriorityOp.test.ts index e13c418d57..610b232fe5 100644 --- a/src/zksync/utils/bridge/getL2HashFromPriorityOp.test.ts +++ b/src/zksync/utils/bridge/getL2HashFromPriorityOp.test.ts @@ -1,6 +1,6 @@ import { expect, test } from 'vitest' -import type { TransactionReceipt } from '~viem/types/transaction.js' -import { getL2HashFromPriorityOp } from '~viem/zksync/utils/bridge/getL2HashFromPriorityOp.js' +import type { TransactionReceipt } from '~zkr-viem/types/transaction.js' +import { getL2HashFromPriorityOp } from '~zkr-viem/zksync/utils/bridge/getL2HashFromPriorityOp.js' const receipt: TransactionReceipt = { transactionHash: diff --git a/src/zksync/utils/bridge/getWithdrawalL2ToL1Log.test.ts b/src/zksync/utils/bridge/getWithdrawalL2ToL1Log.test.ts index 89e0ae7a17..bde2806e8c 100644 --- a/src/zksync/utils/bridge/getWithdrawalL2ToL1Log.test.ts +++ b/src/zksync/utils/bridge/getWithdrawalL2ToL1Log.test.ts @@ -1,7 +1,7 @@ import { expect, test } from 'vitest' import { anvilZksync } from '~test/src/anvil.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import type { EIP1193RequestFn } from '~viem/types/eip1193.js' +import type { EIP1193RequestFn } from '~zkr-viem/types/eip1193.js' import { getWithdrawalL2ToL1Log } from './getWithdrawalL2ToL1Log.js' const client = anvilZksync.getClient({ batch: { multicall: false } }) diff --git a/src/zksync/utils/bridge/getWithdrawalLog.test.ts b/src/zksync/utils/bridge/getWithdrawalLog.test.ts index 732faab9ee..8e46896fdb 100644 --- a/src/zksync/utils/bridge/getWithdrawalLog.test.ts +++ b/src/zksync/utils/bridge/getWithdrawalLog.test.ts @@ -1,7 +1,7 @@ import { expect, test } from 'vitest' import { anvilZksync } from '~test/src/anvil.js' import { mockRequestReturnData } from '~test/src/zksync.js' -import type { EIP1193RequestFn } from '~viem/types/eip1193.js' +import type { EIP1193RequestFn } from '~zkr-viem/types/eip1193.js' import { getWithdrawalLog } from './getWithdrawalLog.js' const client = anvilZksync.getClient({ batch: { multicall: false } }) diff --git a/test/setup.ts b/test/setup.ts index 024946b7e7..8bcab71444 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,9 +1,12 @@ import { afterAll, beforeAll, beforeEach, vi } from 'vitest' -import { setIntervalMining } from '~viem/actions/test/setIntervalMining.js' -import { cleanupCache, listenersCache } from '~viem/utils/observe.js' -import { promiseCache, responseCache } from '~viem/utils/promise/withCache.js' -import { socketClientCache } from '~viem/utils/rpc/socket.js' +import { setIntervalMining } from '~zkr-viem/actions/test/setIntervalMining.js' +import { cleanupCache, listenersCache } from '~zkr-viem/utils/observe.js' +import { + promiseCache, + responseCache, +} from '~zkr-viem/utils/promise/withCache.js' +import { socketClientCache } from '~zkr-viem/utils/rpc/socket.js' import { setErrorConfig } from '../src/errors/base.js' import * as instances from './src/anvil.js' diff --git a/test/src/abis.ts b/test/src/abis.ts index 8a585bd5c5..7b704e78bd 100644 --- a/test/src/abis.ts +++ b/test/src/abis.ts @@ -1,4 +1,4 @@ -import { smartAccountAbi } from '~viem/constants/abis.js' +import { multicall3Abi, smartAccountAbi } from '~zkr-viem/constants/abis.js' export const erc20Abi = [ { @@ -1454,6 +1454,13 @@ export const wagmiContractConfig = { '0x608060405260006007553480156200001657600080fd5b50604051806040016040528060058152602001647761676d6960d81b815250604051806040016040528060058152602001645741474d4960d81b81525081600090805190602001906200006b9291906200008a565b508051620000819060019060208401906200008a565b5050506200016c565b828054620000989062000130565b90600052602060002090601f016020900481019282620000bc576000855562000107565b82601f10620000d757805160ff191683800117855562000107565b8280016001018555821562000107579182015b8281111562000107578251825591602001919060010190620000ea565b506200011592915062000119565b5090565b5b808211156200011557600081556001016200011a565b600181811c908216806200014557607f821691505b6020821081036200016657634e487b7160e01b600052602260045260246000fd5b50919050565b6128c2806200017c6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb46514610215578063b88d4fde14610228578063c87b56dd1461023b578063e985e9c51461024e57600080fd5b80636352211e146101d457806370a08231146101e757806395d89b41146101fa578063a0712d681461020257600080fd5b80631249c58b116100d35780631249c58b1461018f57806318160ddd1461019757806323b872dd146101ae57806342842e0e146101c157600080fd5b806301ffc9a71461010557806306fdde031461012d578063081812fc14610142578063095ea7b31461017a575b600080fd5b61011861011336600461178f565b610297565b60405190151581526020015b60405180910390f35b61013561037c565b6040516101249190611829565b61015561015036600461183c565b61040e565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b61018d61018836600461187e565b6104d3565b005b61018d61062b565b6101a060065481565b604051908152602001610124565b61018d6101bc3660046118a8565b61067d565b61018d6101cf3660046118a8565b610704565b6101556101e236600461183c565b61071f565b6101a06101f53660046118e4565b6107b7565b61013561086b565b61018d61021036600461183c565b61087a565b61018d6102233660046118ff565b610902565b61018d61023636600461196a565b610911565b61013561024936600461183c565b61099f565b61011861025c366004611a64565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061032a57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061037657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461038b90611a97565b80601f01602080910402602001604051908101604052809291908181526020018280546103b790611a97565b80156104045780601f106103d957610100808354040283529160200191610404565b820191906000526020600020905b8154815290600101906020018083116103e757829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff166104aa5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006104de8261071f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105815760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016104a1565b3373ffffffffffffffffffffffffffffffffffffffff821614806105aa57506105aa813361025c565b61061c5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000060648201526084016104a1565b6106268383610b07565b505050565b6007545b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156106615760010161062f565b61066b3382610ba7565b60068054600190810190915501600755565b6106873382610bc1565b6106f95760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104a1565b610626838383610d17565b61062683838360405180602001604052806000815250610911565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103765760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e000000000000000000000000000000000000000000000060648201526084016104a1565b600073ffffffffffffffffffffffffffffffffffffffff82166108425760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084016104a1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461038b90611a97565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156108ec5760405162461bcd60e51b815260206004820152601160248201527f546f6b656e2049442069732074616b656e00000000000000000000000000000060448201526064016104a1565b6108f63382610ba7565b50600680546001019055565b61090d338383610f4a565b5050565b61091b3383610bc1565b61098d5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f76656400000000000000000000000000000060648201526084016104a1565b6109998484848461105d565b50505050565b6040517f666f726567726f756e64000000000000000000000000000000000000000000006020820152602a810182905260609060009061016890604a016040516020818303038152906040528051906020012060001c6109ff9190611b19565b6040517f6261636b67726f756e64000000000000000000000000000000000000000000006020820152602a810185905290915060009061016890604a016040516020818303038152906040528051906020012060001c610a5f9190611b19565b90506000610aba610a6f866110e6565b610aa9610a7b866110e6565b610a84866110e6565b604051602001610a95929190611b2d565b60405160208183030381529060405261121b565b604051602001610a959291906125ba565b9050600081604051602001610acf919061268b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529695505050505050565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610b618261071f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61090d82826040518060200160405280600081525061136e565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16610c585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084016104a1565b6000610c638361071f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610cd1575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610d0f57508373ffffffffffffffffffffffffffffffffffffffff16610cf78461040e565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610d378261071f565b73ffffffffffffffffffffffffffffffffffffffff1614610dc05760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104a1565b73ffffffffffffffffffffffffffffffffffffffff8216610e485760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104a1565b610e53600082610b07565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120805460019290610e899084906126ff565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290610ec4908490612716565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fc55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104a1565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611068848484610d17565b611074848484846113f7565b6109995760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104a1565b60608160000361112957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611153578061113d8161272e565b915061114c9050600a83612766565b915061112d565b60008167ffffffffffffffff81111561116e5761116e61193b565b6040519080825280601f01601f191660200182016040528015611198576020820181803683370190505b5090505b8415610d0f576111ad6001836126ff565b91506111ba600a86611b19565b6111c5906030612716565b60f81b8183815181106111da576111da61277a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611214600a86612766565b945061119c565b6060815160000361123a57505060408051602081019091526000815290565b600060405180606001604052806040815260200161284d60409139905060006003845160026112699190612716565b6112739190612766565b61127e9060046127a9565b67ffffffffffffffff8111156112965761129661193b565b6040519080825280601f01601f1916602001820160405280156112c0576020820181803683370190505b509050600182016020820185865187015b8082101561132c576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506112d1565b5050600386510660018114611348576002811461135b57611363565b603d6001830353603d6002830353611363565b603d60018303535b509195945050505050565b61137883836115d0565b61138560008484846113f7565b6106265760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104a1565b600073ffffffffffffffffffffffffffffffffffffffff84163b156115c5576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061146e9033908990889088906004016127e6565b6020604051808303816000875af19250505080156114c7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526114c49181019061282f565b60015b61157a573d8080156114f5576040519150601f19603f3d011682016040523d82523d6000602084013e6114fa565b606091505b5080516000036115725760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104a1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610d0f565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166116335760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104a1565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156116a55760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016104a1565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906116db908490612716565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461178c57600080fd5b50565b6000602082840312156117a157600080fd5b81356117ac8161175e565b9392505050565b60005b838110156117ce5781810151838201526020016117b6565b838111156109995750506000910152565b600081518084526117f78160208601602086016117b3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117ac60208301846117df565b60006020828403121561184e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461187957600080fd5b919050565b6000806040838503121561189157600080fd5b61189a83611855565b946020939093013593505050565b6000806000606084860312156118bd57600080fd5b6118c684611855565b92506118d460208501611855565b9150604084013590509250925092565b6000602082840312156118f657600080fd5b6117ac82611855565b6000806040838503121561191257600080fd5b61191b83611855565b91506020830135801515811461193057600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561198057600080fd5b61198985611855565b935061199760208601611855565b925060408501359150606085013567ffffffffffffffff808211156119bb57600080fd5b818701915087601f8301126119cf57600080fd5b8135818111156119e1576119e161193b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611a2757611a2761193b565b816040528281528a6020848701011115611a4057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611a7757600080fd5b611a8083611855565b9150611a8e60208401611855565b90509250929050565b600181811c90821680611aab57607f821691505b602082108103611ae4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611b2857611b28611aea565b500690565b7f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323081527f30302f737667222077696474683d223130323422206865696768743d2231303260208201527f34222066696c6c3d226e6f6e65223e3c706174682066696c6c3d2268736c2800604082015260008351611bb181605f8501602088016117b3565b7f2c20313030252c20313025292220643d224d3020306831303234763130323448605f918401918201527f307a22202f3e3c672066696c6c3d2268736c2800000000000000000000000000607f8201528351611c148160928401602088016117b3565b7f2c20313030252c2039302529223e3c7061746820643d224d393033203433372e609292909101918201527f35633020392e3131332d372e3338382031362e352d31362e352031362e35732d60b28201527f31362e352d372e3338372d31362e352d31362e3520372e3338382d31362e352060d28201527f31362e352d31362e352031362e3520372e3338372031362e352031362e357a4d60f28201527f3639382e3532392035363663362e39323120302031322e35332d352e353936206101128201527f31322e35332d31322e35762d353063302d362e39303420352e3630392d31322e6101328201527f352031322e3532392d31322e356832352e30353963362e393220302031322e356101528201527f323920352e3539362031322e3532392031322e35763530633020362e393034206101728201527f352e3630392031322e352031322e35332031322e357331322e3532392d352e356101928201527f39362031322e3532392d31322e35762d353063302d362e39303420352e3630396101b28201527f2d31322e352031322e35332d31322e356832352e30353963362e3932203020316101d28201527f322e35323920352e3539362031322e3532392031322e35763530633020362e396101f28201527f303420352e3630392031322e352031322e3532392031322e356833372e3538396102128201527f63362e393220302031322e3532392d352e3539362031322e3532392d31322e356102328201527f762d373563302d362e3930342d352e3630392d31322e352d31322e3532392d316102528201527f322e35732d31322e353320352e3539362d31322e35332031322e357635362e326102728201527f3561362e32363420362e3236342030203120312d31322e3532392030563437386102928201527f2e3563302d362e3930342d352e3630392d31322e352d31322e35332d31322e356102b28201527f483639382e353239632d362e393220302d31322e35323920352e3539362d31326102d28201527f2e3532392031322e35763735633020362e39303420352e3630392031322e35206102f28201527f31322e3532392031322e357a22202f3e3c7061746820643d224d3135372e36356103128201527f3520353431632d362e39333220302d31322e3535322d352e3539362d31322e356103328201527f35322d31322e35762d353063302d362e3930342d352e3631392d31322e352d316103528201527f322e3535312d31322e3553313230203437312e35393620313230203437382e356103728201527f763735633020362e39303420352e36322031322e352031322e3535322031322e6103928201527f35683135302e363263362e39333320302031322e3535322d352e3539362031326103b28201527f2e3535322d31322e35762d353063302d362e39303420352e3631392d31322e356103d28201527f2031322e3535322d31322e35683134342e33343563332e343635203020362e326103f28201527f373620322e37393820362e32373620362e3235732d322e38313120362e32352d6104128201527f362e32373620362e3235483332302e383238632d362e39333320302d31322e356104328201527f353220352e3539362d31322e3535322031322e357633372e35633020362e39306104528201527f3420352e3631392031322e352031322e3535322031322e35683135302e3632636104728201527f362e39333320302031322e3535322d352e3539362031322e3535322d31322e356104928201527f762d373563302d362e3930342d352e3631392d31322e352d31322e3535322d316104b28201527f322e35483238332e313732632d362e39333220302d31322e35353120352e35396104d28201527f362d31322e3535312031322e35763530633020362e3930342d352e36313920316104f28201527f322e352d31322e3535322031322e35682d32352e313033632d362e39333320306105128201527f2d31322e3535322d352e3539362d31322e3535322d31322e35762d353063302d6105328201527f362e3930342d352e36322d31322e352d31322e3535322d31322e35732d31322e6105528201527f35353220352e3539362d31322e3535322031322e35763530633020362e3930346105728201527f2d352e3631392031322e352d31322e3535312031322e35682d32352e3130347a6105928201527f6d3330312e3234322d362e3235633020332e3435322d322e38313120362e32356105b28201527f2d362e32373620362e3235483333392e363535632d332e34363520302d362e326105d28201527f37362d322e3739382d362e3237362d362e323573322e3831312d362e323520366105f28201527f2e3237362d362e3235683131322e39363663332e343635203020362e323736206106128201527f322e37393820362e32373620362e32357a4d343937203535332e3831386330206106328201527f362e39323920352e3632382031322e3534362031322e3537312031322e3534366106528201527f6831333261362e323820362e323820302030203120362e32383620362e3237326106728201527f20362e323820362e32382030203020312d362e32383620362e323733682d31336106928201527f32632d362e39343320302d31322e35373120352e3631362d31322e35373120316106b28201527f322e3534364131322e35362031322e3536203020302030203530392e353731206106d28201527f363034683135302e38353863362e39343320302031322e3537312d352e3631366106f28201527f2031322e3537312d31322e353435762d3131322e393163302d362e3932382d356107128201527f2e3632382d31322e3534352d31322e3537312d31322e353435483530392e35376107328201527f31632d362e39343320302d31322e35373120352e3631372d31322e35373120316107528201527f322e3534357637352e3237337a6d33372e3731342d36322e373237632d362e396107728201527f343320302d31322e35373120352e3631372d31322e3537312031322e353435766107928201527f32352e303931633020362e39323920352e3632382031322e3534362031322e356107b28201527f37312031322e353436683130302e35373263362e39343320302031322e3537316107d28201527f2d352e3631372031322e3537312d31322e353436762d32352e30393163302d366107f28201527f2e3932382d352e3632382d31322e3534352d31322e3537312d31322e353435486108128201527f3533342e3731347a222066696c6c2d72756c653d226576656e6f646422202f3e6108328201527f3c2f673e3c2f7376673e0000000000000000000000000000000000000000000061085282015261085c01949350505050565b7f7b226e616d65223a20227761676d6920230000000000000000000000000000008152600083516125f28160118501602088016117b3565b7f222c2022696d616765223a2022646174613a696d6167652f7376672b786d6c3b6011918401918201527f6261736536342c00000000000000000000000000000000000000000000000000603182015283516126558160388401602088016117b3565b7f227d00000000000000000000000000000000000000000000000000000000000060389290910191820152603a01949350505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516126c381601d8501602087016117b3565b91909101601d0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612711576127116126d0565b500390565b60008219821115612729576127296126d0565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361275f5761275f6126d0565b5060010190565b60008261277557612775611aea565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127e1576127e16126d0565b500290565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261282560808301846117df565b9695505050505050565b60006020828403121561284157600080fd5b81516117ac8161175e56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212201665a4f9111990d7529375848d3fd02c0121091a940da59e763eba826e7b077064736f6c634300080d0033', } as const +export const multicall3ContractConfig = { + address: '0xcA11bde05977b3631167028862bE2a173976CA11', + abi: multicall3Abi, + bytecode: + '0x608060405234801561001057600080fd5b50610ee0806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033', +} as const + export const daiContractConfig = { address: '0x6b175474e89094c44da98b954eedeac495271d0f', abi: [ diff --git a/test/src/account-abstraction.ts b/test/src/account-abstraction.ts index 2ad34469cf..0abfa99820 100644 --- a/test/src/account-abstraction.ts +++ b/test/src/account-abstraction.ts @@ -1,9 +1,14 @@ -import { VerifyingPaymaster } from '../../contracts/generated.js' +import { privateKeyToAccount } from '~zkr-viem/accounts/privateKeyToAccount.js' +import { + VerifyingPaymaster_07, + VerifyingPaymaster_08, +} from '../../contracts/generated.js' import { entryPoint06Abi, entryPoint07Address, formatUserOperation, toPackedUserOperation, + toSimple7702SmartAccount, toSoladySmartAccount, } from '../../src/account-abstraction/index.js' import { @@ -13,7 +18,10 @@ import { signMessage, writeContract, } from '../../src/actions/index.js' -import { entryPoint06Address } from '../../src/constants/address.js' +import { + entryPoint06Address, + entryPoint08Address, +} from '../../src/constants/address.js' import { type Account, type Address, @@ -31,12 +39,40 @@ import { accounts } from './constants.js' import { createHttpServer, deploy, + deploySimple7702Account_08, deploySoladyAccount_06, deploySoladyAccount_07, } from './utils.js' const client = anvilMainnet.getClient({ account: true }) +export async function getSmartAccounts_08() { + const { implementationAddress } = await deploySimple7702Account_08() + + const accounts_ = [] + + for (const account of accounts) { + const owner = privateKeyToAccount(account.privateKey) + const account_ = await toSimple7702SmartAccount({ + client, + implementation: implementationAddress, + owner, + }) + await sendTransaction(client, { + account: accounts[9].address, + to: account_.address, + value: parseEther('100'), + }) + accounts_.push(account_) + } + + await mine(client, { + blocks: 1, + }) + + return accounts_ +} + export async function getSmartAccounts_07() { const { factoryAddress } = await deploySoladyAccount_07() @@ -118,16 +154,35 @@ export async function getSmartAccounts_06() { return accounts_ } +export async function getVerifyingPaymaster_08() { + const { contractAddress } = await deploy(client, { + abi: VerifyingPaymaster_08.abi, + bytecode: VerifyingPaymaster_08.bytecode.object, + args: [entryPoint08Address, client.account.address], + }) + + await writeContract(client, { + account: accounts[9].address, + abi: VerifyingPaymaster_08.abi, + address: contractAddress!, + functionName: 'deposit', + value: parseEther('100'), + }) + await mine(client, { blocks: 1 }) + + return contractAddress! +} + export async function getVerifyingPaymaster_07() { const { contractAddress } = await deploy(client, { - abi: VerifyingPaymaster.abi, - bytecode: VerifyingPaymaster.bytecode.object, + abi: VerifyingPaymaster_07.abi, + bytecode: VerifyingPaymaster_07.bytecode.object, args: [entryPoint07Address, client.account.address], }) await writeContract(client, { account: accounts[9].address, - abi: VerifyingPaymaster.abi, + abi: VerifyingPaymaster_07.abi, address: contractAddress!, functionName: 'deposit', value: parseEther('100'), @@ -139,14 +194,14 @@ export async function getVerifyingPaymaster_07() { export async function getVerifyingPaymaster_06() { const { contractAddress } = await deploy(client, { - abi: VerifyingPaymaster.abi, - bytecode: VerifyingPaymaster.bytecode.object, + abi: VerifyingPaymaster_07.abi, + bytecode: VerifyingPaymaster_07.bytecode.object, args: [entryPoint06Address, client.account.address], }) await writeContract(client, { account: accounts[9].address, - abi: VerifyingPaymaster.abi, + abi: VerifyingPaymaster_07.abi, address: contractAddress!, functionName: 'deposit', value: parseEther('100'), @@ -168,7 +223,7 @@ export async function createVerifyingPaymasterServer( const validAfter = context?.validAfter ?? 4660 const hash = await readContract(client, { - abi: VerifyingPaymaster.abi, + abi: VerifyingPaymaster_07.abi, address: paymaster, functionName: 'getHash', args: [ @@ -254,7 +309,8 @@ export async function createVerifyingPaymasterServer( }), ) } - } catch { + } catch (err) { + console.error(err) res.writeHead(500, { 'Content-Type': 'application/json', }) diff --git a/test/src/anvil.ts b/test/src/anvil.ts index 91b10fb7d2..a0cdab90a6 100644 --- a/test/src/anvil.ts +++ b/test/src/anvil.ts @@ -16,13 +16,14 @@ import { createClient, webSocket, } from '../../src/index.js' +import { createSiweMessage } from '../../src/siwe/index.js' import { ProviderRpcError } from '../../src/types/eip1193.js' import { accounts, poolId } from './constants.js' export const anvilMainnet = defineAnvil({ chain: mainnet, forkUrl: getEnv('VITE_ANVIL_FORK_URL', 'https://cloudflare-eth.com'), - forkBlockNumber: 22180097n, + forkBlockNumber: 22263623n, noMining: true, port: 8545, }) @@ -200,6 +201,57 @@ function defineAnvil( if (method === 'wallet_sendTransaction') { method = 'eth_sendTransaction' } + if (method === 'wallet_connect') { + const capabilities = params[0].capabilities + ? { + ...(params[0].capabilities?.signInWithEthereum + ? { + signInWithEthereum: { + message: createSiweMessage({ + ...params[0].capabilities?.signInWithEthereum, + address: accounts[0].address, + chainId: Number(chain.id), + domain: 'example.com', + issuedAt: new Date('2024-01-01T00:00:00.000Z'), + expirationTime: new Date( + '2024-01-01T00:00:00.000Z', + ), + notBefore: new Date('2024-01-01T00:00:00.000Z'), + uri: 'https://example.com', + version: '1', + }), + signature: + '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef', + }, + } + : {}), + ...(params[0].capabilities?.addSubAccount + ? { + subAccounts: [ + { + address: accounts[1].address, + }, + ], + } + : {}), + } + : {} + return { + accounts: [ + { + address: accounts[0].address, + capabilities, + }, + ], + } as any + } + if (method === 'wallet_disconnect') { + return null + } + if (method === 'wallet_addSubAccount') + return { + address: accounts[1].address, + } as any return request({ method, params }, opts) }, diff --git a/test/src/bundler.ts b/test/src/bundler.ts index 95f5a81c6e..277c263050 100644 --- a/test/src/bundler.ts +++ b/test/src/bundler.ts @@ -105,16 +105,13 @@ function defineBundler({ instance: (key) => alto({ enableDebugEndpoints: true, - // @ts-expect-error: TODO: add to prool. - deploySimulationsContract: false, entrypoints: [ '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789', '0x0000000071727De22E5E9d8BAf0edAc6f37da032', + '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108', ], - entrypointSimulationContractV7: - '0x0bFA466336b65eEf256ceCfDA1Fb717b8f1B453d', - executorPrivateKeys: [accounts[0].privateKey], - utilityPrivateKey: accounts[0].privateKey, + executorPrivateKeys: [accounts[3].privateKey], + utilityPrivateKey: accounts[3].privateKey, rpcUrl: rpcUrl(key), safeMode: false, }), diff --git a/test/src/ccip.ts b/test/src/ccip.ts index 4ea7e38a57..caca42689f 100644 --- a/test/src/ccip.ts +++ b/test/src/ccip.ts @@ -1,11 +1,11 @@ -import { sign } from '~viem/accounts/utils/sign.js' -import { parseAbiParameters } from '~viem/index.js' -import type { Hex } from '~viem/types/misc.js' -import { decodeAbiParameters } from '~viem/utils/abi/decodeAbiParameters.js' -import { encodeAbiParameters } from '~viem/utils/abi/encodeAbiParameters.js' -import { stringToHex } from '~viem/utils/encoding/toHex.js' -import { keccak256 } from '~viem/utils/hash/keccak256.js' -import { serializeSignature } from '~viem/utils/signature/serializeSignature.js' +import { sign } from '~zkr-viem/accounts/utils/sign.js' +import { parseAbiParameters } from '~zkr-viem/index.js' +import type { Hex } from '~zkr-viem/types/misc.js' +import { decodeAbiParameters } from '~zkr-viem/utils/abi/decodeAbiParameters.js' +import { encodeAbiParameters } from '~zkr-viem/utils/abi/encodeAbiParameters.js' +import { stringToHex } from '~zkr-viem/utils/encoding/toHex.js' +import { keccak256 } from '~zkr-viem/utils/hash/keccak256.js' +import { serializeSignature } from '~zkr-viem/utils/signature/serializeSignature.js' import { accounts } from './constants.js' import { createHttpServer } from './utils.js' diff --git a/test/src/utils.ts b/test/src/utils.ts index 15b2902cc9..b8969a91cf 100644 --- a/test/src/utils.ts +++ b/test/src/utils.ts @@ -1,17 +1,17 @@ /* c8 ignore start */ -import { getTransactionReceipt } from '~viem/actions/public/getTransactionReceipt.js' -import { impersonateAccount } from '~viem/actions/test/impersonateAccount.js' -import { mine } from '~viem/actions/test/mine.js' -import { stopImpersonatingAccount } from '~viem/actions/test/stopImpersonatingAccount.js' +import { getTransactionReceipt } from '~zkr-viem/actions/public/getTransactionReceipt.js' +import { impersonateAccount } from '~zkr-viem/actions/test/impersonateAccount.js' +import { mine } from '~zkr-viem/actions/test/mine.js' +import { stopImpersonatingAccount } from '~zkr-viem/actions/test/stopImpersonatingAccount.js' import { type DeployContractParameters, deployContract, -} from '~viem/actions/wallet/deployContract.js' -import { writeContract } from '~viem/actions/wallet/writeContract.js' -import { holesky, mainnet } from '~viem/chains/index.js' -import { createClient } from '~viem/clients/createClient.js' -import { http } from '~viem/clients/transports/http.js' -import { namehash } from '~viem/utils/ens/namehash.js' +} from '~zkr-viem/actions/wallet/deployContract.js' +import { writeContract } from '~zkr-viem/actions/wallet/writeContract.js' +import { holesky, mainnet } from '~zkr-viem/chains/index.js' +import { createClient } from '~zkr-viem/clients/createClient.js' +import { http } from '~zkr-viem/clients/transports/http.js' +import { namehash } from '~zkr-viem/utils/ens/namehash.js' import type { TestClientMode } from '../../src/clients/createTestClient.js' import { type Abi, @@ -30,6 +30,7 @@ import { ErrorsExample, OffchainLookupExample, Payable, + Simple7702Account, SoladyAccount06, SoladyAccount07, SoladyAccountFactory06, @@ -140,6 +141,16 @@ export async function deployPayable() { }) } +export async function deploySimple7702Account_08() { + const { contractAddress: implementationAddress } = await deploy(client, { + abi: Simple7702Account.abi, + bytecode: Simple7702Account.bytecode.object, + }) + return { + implementationAddress: implementationAddress!, + } +} + export async function deploySoladyAccount_07() { const { contractAddress: implementationAddress } = await deploy(client, { abi: SoladyAccount07.abi, diff --git a/test/src/zksync.ts b/test/src/zksync.ts index 0b5cc0d374..88aae5ed0c 100644 --- a/test/src/zksync.ts +++ b/test/src/zksync.ts @@ -1,7 +1,7 @@ -import { zksyncLocalNode } from '~viem/chains/index.js' -import { createClient } from '~viem/clients/createClient.js' -import { http } from '~viem/index.js' -import type { ZksyncTransactionReceipt } from '~viem/zksync/index.js' +import { zksyncLocalNode } from '~zkr-viem/chains/index.js' +import { createClient } from '~zkr-viem/clients/createClient.js' +import { http } from '~zkr-viem/index.js' +import type { ZksyncTransactionReceipt } from '~zkr-viem/zksync/index.js' import { accounts as acc } from './constants.js' export const zksyncClientLocalNode = createClient({ diff --git a/test/tsconfig.json b/test/tsconfig.json index 4f3076c60a..e0a46ea03a 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -7,7 +7,7 @@ "types": ["@types/bun"], "baseUrl": ".", "paths": { - "~viem/*": ["../src/*"] + "~zkr-viem/*": ["../src/*"] } } } diff --git a/test/vitest.config.ts b/test/vitest.config.ts index b59cc750df..a9b63275b4 100644 --- a/test/vitest.config.ts +++ b/test/vitest.config.ts @@ -5,7 +5,7 @@ export default defineConfig({ test: { alias: { '~contracts': join(__dirname, '../contracts'), - '~viem': join(__dirname, '../src'), + '~zkr-viem': join(__dirname, '../src'), '~test': join(__dirname, '.'), }, benchmark: {